aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2014-06-17 10:40:17 +0200
committerBjörn Gustavsson <[email protected]>2014-06-17 10:40:17 +0200
commit43285542322eccebb8f337610b6a48ddc9c87ca3 (patch)
tree162450a40d79171d012902fea9b2f4a777bfd29e
parentae0628f46f634e486ee2b19a1f318a7fbb9130fe (diff)
parentab8c6675511cb1968c57fab3dd8e47cc48037c06 (diff)
downloadotp-43285542322eccebb8f337610b6a48ddc9c87ca3.tar.gz
otp-43285542322eccebb8f337610b6a48ddc9c87ca3.tar.bz2
otp-43285542322eccebb8f337610b6a48ddc9c87ca3.zip
Merge branch 'bjorn/erts/fix-prim_eval' into maint
* bjorn/erts/fix-prim_eval: add_abstract_code: Remove 'from_asm' option
-rw-r--r--erts/preloaded/src/add_abstract_code14
1 files changed, 12 insertions, 2 deletions
diff --git a/erts/preloaded/src/add_abstract_code b/erts/preloaded/src/add_abstract_code
index e670156d21..211a60c930 100644
--- a/erts/preloaded/src/add_abstract_code
+++ b/erts/preloaded/src/add_abstract_code
@@ -27,8 +27,18 @@
main([BeamFile,AbstrFile]) ->
{ok,_,Chunks0} = beam_lib:all_chunks(BeamFile),
{ok,Abstr} = file:consult(AbstrFile),
- Chunks = lists:keyreplace("Abst", 1, Chunks0,
- {"Abst",term_to_binary({raw_abstract_v1,Abstr})}),
+ Chunks1 = lists:keyreplace("Abst", 1, Chunks0,
+ {"Abst",term_to_binary({raw_abstract_v1,Abstr})}),
+ {"CInf",CInf0} = lists:keyfind("CInf", 1, Chunks1),
+ CInf = fix_options(CInf0),
+ Chunks = lists:keyreplace("CInf", 1, Chunks1, {"CInf",CInf}),
{ok,Module} = beam_lib:build_module(Chunks),
ok = file:write_file(BeamFile, Module),
init:stop().
+
+fix_options(CInf0) ->
+ CInf1 = binary_to_term(CInf0),
+ {options,Opts0} = lists:keyfind(options, 1, CInf1),
+ Opts = Opts0 -- [from_asm],
+ CInf = lists:keyreplace(options, 1, CInf1, {options,Opts}),
+ term_to_binary(CInf).