diff options
author | Sverker Eriksson <[email protected]> | 2012-01-18 17:23:52 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2012-02-21 12:22:58 +0100 |
commit | 5ed73504d7409a449ec4e0c0de421a93c4570e3b (patch) | |
tree | f4112eb5bb8b0616d3207635fcc0c55e9ae05c31 /erts/emulator/beam/beam_bif_load.c | |
parent | 90209e4d57dd9b5ff27729b582f02c3d9e383f72 (diff) | |
download | otp-5ed73504d7409a449ec4e0c0de421a93c4570e3b.tar.gz otp-5ed73504d7409a449ec4e0c0de421a93c4570e3b.tar.bz2 otp-5ed73504d7409a449ec4e0c0de421a93c4570e3b.zip |
erts: Use several addresses in each Export
Diffstat (limited to 'erts/emulator/beam/beam_bif_load.c')
-rw-r--r-- | erts/emulator/beam/beam_bif_load.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/erts/emulator/beam/beam_bif_load.c b/erts/emulator/beam/beam_bif_load.c index 4858859c2d..346b64033b 100644 --- a/erts/emulator/beam/beam_bif_load.c +++ b/erts/emulator/beam/beam_bif_load.c @@ -366,7 +366,7 @@ BIF_RETTYPE finish_after_on_load_2(BIF_ALIST_2) if (ep != NULL && ep->code[0] == BIF_ARG_1 && ep->code[4] != 0) { - ep->address = (void *) ep->code[4]; + ep->addressv[code_ix] = (void *) ep->code[4]; ep->code[4] = 0; } } @@ -779,11 +779,11 @@ delete_export_references(Eterm module) for (i = 0; i < export_list_size(code_ix); i++) { Export *ep = export_list(i, code_ix); if (ep != NULL && (ep->code[0] == module)) { - if (ep->address == ep->code+3 && + if (ep->addressv[code_ix] == ep->code+3 && (ep->code[3] == (BeamInstr) em_apply_bif)) { continue; } - ep->address = ep->code+3; + ep->addressv[code_ix] = ep->code+3; ep->code[3] = (BeamInstr) em_call_error_handler; ep->code[4] = 0; MatchSetUnref(ep->match_prog_set); |