aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/module.c
diff options
context:
space:
mode:
authorMagnus Lång <margnus1@telia.com>2016-05-19 17:38:54 +0200
committerSverker Eriksson <sverker@erlang.org>2016-10-14 14:29:15 +0200
commit39072836944d00c288beebfd98b14593f9609006 (patch)
treea1907dcf1915016488b28e65a2f0bae0d993136c /erts/emulator/beam/module.c
parent4d96d297044274c46deda1adfc567297449a9ba9 (diff)
downloadotp-39072836944d00c288beebfd98b14593f9609006.tar.gz
otp-39072836944d00c288beebfd98b14593f9609006.tar.bz2
otp-39072836944d00c288beebfd98b14593f9609006.zip
Add a loader state for HiPE code loading
Just like the BEAM loader state (as returned by erlang:prepare_loading/2), the HiPE loader state is contained in a magic binary. Eventually, we will separate HiPE loading into a prepare and a finalise phase, like the BEAM loader, where the prepare phase will be implemented by hipe_unified_loader and the finalise phase be implemented in C by hipe_load.c and beam_load.c, making prepare side-effect free and finalise atomic. The finalise phase will be exposed through the erlang:finish_loading/1 API, just like the BEAM loader, as this will allow HiPE and BEAM modules to be mixed in the same atomic "commit". The usage of a loader state makes it easier to keep track of all resources allocated during loading, and will not only make it easy to prevent leaks when hipe_unified_loader crashes, but also paves the way for proper, leak-free, unloading of HiPE modules.
Diffstat (limited to 'erts/emulator/beam/module.c')
-rw-r--r--erts/emulator/beam/module.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/erts/emulator/beam/module.c b/erts/emulator/beam/module.c
index 93ce8fcf9f..5c56ad20df 100644
--- a/erts/emulator/beam/module.c
+++ b/erts/emulator/beam/module.c
@@ -79,10 +79,7 @@ void erts_module_instance_init(struct erl_module_instance* modi)
#ifdef HIPE
modi->first_hipe_ref = NULL;
modi->first_hipe_sdesc = NULL;
- modi->hipe_code_start = NULL;
-# ifdef DEBUG
- modi->hipe_code_size = 0;
-# endif
+ modi->hipe_code = NULL;
#endif
}