diff options
author | Sverker Eriksson <[email protected]> | 2016-09-29 17:38:54 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2016-10-14 14:29:16 +0200 |
commit | 870d49f0f8d383e62ea231700089933c4cf8fe2a (patch) | |
tree | 0f6076b91cff9b43db4964a7cff537f5e443177b /erts/emulator/beam/external.c | |
parent | e77d7a8417368617c4c228af9556a7f6a8f3e84c (diff) | |
download | otp-870d49f0f8d383e62ea231700089933c4cf8fe2a.tar.gz otp-870d49f0f8d383e62ea231700089933c4cf8fe2a.tar.bz2 otp-870d49f0f8d383e62ea231700089933c4cf8fe2a.zip |
hipe,erts: Remove cached fun 'native_address'
Did not work with purge and made worse by new purge strategy.
Did yield terrible performance when fun thing is created *before*
fun code is loaded. Like when receiving not yet loaded fun
from other node. The cached 'native_address' in ErlFunThing
will not be updated leading to mode switch and error_handler
being called for every call to the fun from native code.
Diffstat (limited to 'erts/emulator/beam/external.c')
-rw-r--r-- | erts/emulator/beam/external.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/erts/emulator/beam/external.c b/erts/emulator/beam/external.c index beed847578..ca79f83184 100644 --- a/erts/emulator/beam/external.c +++ b/erts/emulator/beam/external.c @@ -3749,7 +3749,6 @@ dec_term_atom_common: if (funp->fe->native_address == NULL) { hipe_set_closure_stub(funp->fe, num_free); } - funp->native_address = funp->fe->native_address; #endif hp = factory->hp; @@ -3821,9 +3820,6 @@ dec_term_atom_common: funp->fe = erts_put_fun_entry(module, old_uniq, old_index); funp->arity = funp->fe->address[-1] - num_free; -#ifdef HIPE - funp->native_address = funp->fe->native_address; -#endif hp = factory->hp; /* Environment */ |