diff options
author | Björn Gustavsson <[email protected]> | 2019-06-17 12:58:57 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2019-06-17 12:58:57 +0200 |
commit | 0a63f32c0cf828d07c33e4dd68ae561571279fe7 (patch) | |
tree | 9482190f7a64c42e4731149066c7ac8e06b16ca9 /erts/emulator/beam/utils.c | |
parent | d3f4351b6fc846f55fae221760da9b4c04560007 (diff) | |
parent | fccac1598cc13fcd9a3d7e85e2c4cae722f1bfc4 (diff) | |
download | otp-0a63f32c0cf828d07c33e4dd68ae561571279fe7.tar.gz otp-0a63f32c0cf828d07c33e4dd68ae561571279fe7.tar.bz2 otp-0a63f32c0cf828d07c33e4dd68ae561571279fe7.zip |
Merge branch 'bjorn/better-fun-info/OTP-15837'
* bjorn/better-fun-info/OTP-15837:
Create a shared wrapper function for all occurrences of 'fun F/A'
Support sharing of fun entries in the runtime system
erl_fun.c: Remove unused struct definition
hipe: Use the new index when translating funs
Stop supporting decoding of old funs in the external term format
genop.tab: Insert an "OTP 23" comment for clarity
Diffstat (limited to 'erts/emulator/beam/utils.c')
-rw-r--r-- | erts/emulator/beam/utils.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/erts/emulator/beam/utils.c b/erts/emulator/beam/utils.c index 88cdcc2675..ad71828d72 100644 --- a/erts/emulator/beam/utils.c +++ b/erts/emulator/beam/utils.c @@ -907,7 +907,7 @@ tail_recur: hash = hash * FUNNY_NUMBER10 + num_free; hash = hash*FUNNY_NUMBER1 + (atom_tab(atom_val(funp->fe->module))->slot.bucket.hvalue); - hash = hash*FUNNY_NUMBER2 + funp->fe->old_index; + hash = hash*FUNNY_NUMBER2 + funp->fe->index; hash = hash*FUNNY_NUMBER2 + funp->fe->old_uniq; if (num_free > 0) { if (num_free > 1) { @@ -1636,7 +1636,7 @@ make_hash2_helper(Eterm term_param, const int can_trap, Eterm* state_mref_write_ atom_tab(atom_val(funp->fe->module))->slot.bucket.hvalue, HCONST); UINT32_HASH_2 - (funp->fe->old_index, funp->fe->old_uniq, HCONST); + (funp->fe->index, funp->fe->old_uniq, HCONST); if (ctx.num_free == 0) { goto hash2_common; } else { @@ -2160,7 +2160,7 @@ make_internal_hash(Eterm term, Uint32 salt) ErlFunThing* funp = (ErlFunThing *) fun_val(term); Uint num_free = funp->num_free; UINT32_HASH_2(num_free, funp->fe->module, HCONST_20); - UINT32_HASH_2(funp->fe->old_index, funp->fe->old_uniq, HCONST_21); + UINT32_HASH_2(funp->fe->index, funp->fe->old_uniq, HCONST_21); if (num_free == 0) { goto pop_next; } else { @@ -2810,7 +2810,7 @@ tailrecur_ne: f1 = (ErlFunThing *) fun_val(a); f2 = (ErlFunThing *) fun_val(b); if (f1->fe->module != f2->fe->module || - f1->fe->old_index != f2->fe->old_index || + f1->fe->index != f2->fe->index || f1->fe->old_uniq != f2->fe->old_uniq || f1->num_free != f2->num_free) { goto not_equal; @@ -3405,7 +3405,7 @@ tailrecur_ne: if (diff != 0) { RETURN_NEQ(diff); } - diff = f1->fe->old_index - f2->fe->old_index; + diff = f1->fe->index - f2->fe->index; if (diff != 0) { RETURN_NEQ(diff); } |