diff options
author | Björn Gustavsson <[email protected]> | 2013-04-15 18:02:45 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2013-08-30 10:13:18 +0200 |
commit | eb49ee71f0751cf54bc39f9971f389c92525b0a4 (patch) | |
tree | 0d101faccacba14653cc5472b47fbe510a7a38d6 /lib/asn1/src/asn1ct_func.erl | |
parent | c6ba0f6aa81c2b9ce9b348106bffb808b385bd18 (diff) | |
download | otp-eb49ee71f0751cf54bc39f9971f389c92525b0a4.tar.gz otp-eb49ee71f0751cf54bc39f9971f389c92525b0a4.tar.bz2 otp-eb49ee71f0751cf54bc39f9971f389c92525b0a4.zip |
PER, UPER: Optimize encoding using an intermediate format
There are some minor incompatibilities for BIT STRING:
{bit,Position} is now only only supported for a named
BIT STRING type.
Values longer than the maximum size for the BIT STRING type
would be truncated silently - they now cause an exception.
Diffstat (limited to 'lib/asn1/src/asn1ct_func.erl')
-rw-r--r-- | lib/asn1/src/asn1ct_func.erl | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/asn1/src/asn1ct_func.erl b/lib/asn1/src/asn1ct_func.erl index 2948269bfc..dbadedb683 100644 --- a/lib/asn1/src/asn1ct_func.erl +++ b/lib/asn1/src/asn1ct_func.erl @@ -28,10 +28,18 @@ start_link() -> ok. call(M, F, Args) -> - MFA = {M,F,length(Args)}, + A = length(Args), + MFA = {M,F,A}, need(MFA), - asn1ct_gen:emit([F,"(",call_args(Args, ""),")"]). + case M of + binary -> + asn1ct_gen:emit(["binary:",F,"(",call_args(Args, ""),")"]); + _ -> + asn1ct_gen:emit([F,"(",call_args(Args, ""),")"]) + end. +need({binary,_,_}) -> + ok; need({erlang,_,_}) -> ok; need(MFA) -> |