aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/src/asn1ct_func.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2013-04-15 18:02:45 +0200
committerBjörn Gustavsson <[email protected]>2013-08-30 10:13:18 +0200
commiteb49ee71f0751cf54bc39f9971f389c92525b0a4 (patch)
tree0d101faccacba14653cc5472b47fbe510a7a38d6 /lib/asn1/src/asn1ct_func.erl
parentc6ba0f6aa81c2b9ce9b348106bffb808b385bd18 (diff)
downloadotp-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.erl12
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) ->