aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/src/asn1ct_gen_per.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2014-01-22 16:19:10 +0100
committerBjörn Gustavsson <[email protected]>2014-01-22 16:19:10 +0100
commit990b655c92f889d2c45e6f43ee6fdae29ffc8464 (patch)
tree5e1fb70caadb1374130b86989537c9e024ffb8dd /lib/asn1/src/asn1ct_gen_per.erl
parentd203887853971d58a4054400a88f91bbf73b19c8 (diff)
parent7699312823b259c3735d7045b4224a50d1256ec5 (diff)
downloadotp-990b655c92f889d2c45e6f43ee6fdae29ffc8464.tar.gz
otp-990b655c92f889d2c45e6f43ee6fdae29ffc8464.tar.bz2
otp-990b655c92f889d2c45e6f43ee6fdae29ffc8464.zip
Merge branch 'bjorn/asn1/optimizations/OTP-11573'
* bjorn/asn1/optimizations/OTP-11573: Optimize code surrounding calls to complete/1 asn1ct_imm: Add the intermediate instruction {list,List,Dst} Generate intermediate code that is easier to optimize asn1ct_imm: Add the {set,{var,Src},{var,Dst}} instruction Keep type information in the apply intermediate instruction asn1ct_imm: Add a field for intermediate code for call_gen Introduce asn1ct_gen:open_output_file/1 Factor out printing of verbose messages Improve optimization of alignment for encoding Improve construction of {cons,H,T} instructions Teach asn1ct_func:call_gen/4 to quote the generated function name Test open types that may need more than 128 bytes
Diffstat (limited to 'lib/asn1/src/asn1ct_gen_per.erl')
-rw-r--r--lib/asn1/src/asn1ct_gen_per.erl6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/asn1/src/asn1ct_gen_per.erl b/lib/asn1/src/asn1ct_gen_per.erl
index 8b999ddbf0..7ba649c874 100644
--- a/lib/asn1/src/asn1ct_gen_per.erl
+++ b/lib/asn1/src/asn1ct_gen_per.erl
@@ -99,7 +99,7 @@ gen_encode_user(Erules,D) when is_record(D,typedef) ->
gen_encode_prim(Erules, D) ->
- Value = asn1ct_gen:mk_var(asn1ct_name:curr(val)),
+ Value = {var,atom_to_list(asn1ct_gen:mk_var(asn1ct_name:curr(val)))},
gen_encode_prim(Erules, D, Value).
gen_encode_prim(Erules, #type{}=D, Value) ->
@@ -149,10 +149,10 @@ gen_encode_prim_imm(Val, #type{def=Type0,constraint=Constraint}, Aligned) ->
case Constraint of
[#'Externaltypereference'{type=Tname}] ->
EncFunc = enc_func(Tname),
- Imm = [{apply,EncFunc,[{expr,Val}]}],
+ Imm = [{apply,{local,EncFunc,[]},[Val]}],
asn1ct_imm:per_enc_open_type(Imm, Aligned);
[] ->
- Imm = [{call,erlang,iolist_to_binary,[{expr,Val}]}],
+ Imm = [{call,erlang,iolist_to_binary,[Val]}],
asn1ct_imm:per_enc_open_type(Imm, Aligned)
end
end.