diff options
author | Björn Gustavsson <[email protected]> | 2014-06-16 12:03:08 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2014-06-16 12:03:08 +0200 |
commit | 26e63b26e605a74ba0a0a58c1fb1cb0ba358efed (patch) | |
tree | 30b4f613f1d24c5db5d3827d48b74c6220a5cd03 /lib/asn1/src/asn1rtt_per_common.erl | |
parent | 5a2aedb547c7e878d3694e8695a7985192a0a4d7 (diff) | |
parent | 0db2668288bf399983e0f6daac85b00d68ab0360 (diff) | |
download | otp-26e63b26e605a74ba0a0a58c1fb1cb0ba358efed.tar.gz otp-26e63b26e605a74ba0a0a58c1fb1cb0ba358efed.tar.bz2 otp-26e63b26e605a74ba0a0a58c1fb1cb0ba358efed.zip |
Merge branch 'bjorn/asn1/dialyzer-warnings/OTP-11372' into maint
* bjorn/asn1/dialyzer-warnings/OTP-11372: (23 commits)
BER: Eliminate dialyzer warnings for specialized decode functions
BER: Eliminate dialyzer warning for encoding of BIT STRINGs
BER: Optimize encoding of ENUMERATED
BER: Remove a redundant clause in encoding of open types
(U)PER: Fix decoding of named INTEGER
(U)PER: Fix encoding of a semi-constrained, named INTEGER
(U)PER: Optimize handling of named BIT STRING with a lower zero bound
PER: Optimize encoding of character strings with simple ranges
PER: Remove unnecessary clause for handling DEFAULT
(U)PER: Suppress dialyzer warnings for complete/1
Test suites: Add support for running Dialyzer on generated code
Improve tests of DEFAULT values
Correct OCTET STRING default when legacy_erlang_types is active
Remove old DEFAULT-checking code made obsolete in the previous commit
Rewrite the code for testing DEFAULT for DER
Test DEFAULT more thoroughly
Set.py: Correct illegal DEFAULT value
BER: Optimize decoding of ENUMERATED
BER: Suppress dialyzer warnings for encode_bit_string/4
BER: Inline testing of constraints when decoding
...
Diffstat (limited to 'lib/asn1/src/asn1rtt_per_common.erl')
-rw-r--r-- | lib/asn1/src/asn1rtt_per_common.erl | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/asn1/src/asn1rtt_per_common.erl b/lib/asn1/src/asn1rtt_per_common.erl index 71fec411a0..0290c75a28 100644 --- a/lib/asn1/src/asn1rtt_per_common.erl +++ b/lib/asn1/src/asn1rtt_per_common.erl @@ -30,6 +30,7 @@ decode_big_chars/2, decode_oid/1,decode_relative_oid/1, encode_chars/2,encode_chars/3, + encode_chars_compact_map/3, encode_chars_16bit/1,encode_big_chars/1, encode_fragmented/2, encode_oid/1,encode_relative_oid/1, @@ -108,6 +109,9 @@ encode_chars(Val, NumBits) -> encode_chars(Val, NumBits, {Lb,Tab}) -> << <<(enc_char(C, Lb, Tab)):NumBits>> || C <- Val >>. +encode_chars_compact_map(Val, NumBits, {Lb,Limit}) -> + << <<(enc_char_cm(C, Lb, Limit)):NumBits>> || C <- Val >>. + encode_chars_16bit(Val) -> L = [case C of {0,0,A,B} -> [A,B]; @@ -383,6 +387,15 @@ enc_char(C0, Lb, Tab) -> illegal_char_error() end. +enc_char_cm(C0, Lb, Limit) -> + C = C0 - Lb, + if + 0 =< C, C < Limit -> + C; + true -> + illegal_char_error() + end. + illegal_char_error() -> error({error,{asn1,"value forbidden by FROM constraint"}}). |