aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/beam_emu.c
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2016-06-19 22:52:30 +0200
committerLukas Larsson <[email protected]>2016-07-14 16:00:40 +0200
commit80b628bb624101e1a4aaee0ddeb0274ee2aac455 (patch)
tree61db27e4976632fd0dda6a009fa5c2ba260a11c0 /erts/emulator/beam/beam_emu.c
parentcb5fca03189deb691b9bc2f1f8bd65033bd99320 (diff)
downloadotp-80b628bb624101e1a4aaee0ddeb0274ee2aac455.tar.gz
otp-80b628bb624101e1a4aaee0ddeb0274ee2aac455.tar.bz2
otp-80b628bb624101e1a4aaee0ddeb0274ee2aac455.zip
erts: Add erts_map_from_ks_and_vs
Diffstat (limited to 'erts/emulator/beam/beam_emu.c')
-rw-r--r--erts/emulator/beam/beam_emu.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/erts/emulator/beam/beam_emu.c b/erts/emulator/beam/beam_emu.c
index 4716460a6b..797880d452 100644
--- a/erts/emulator/beam/beam_emu.c
+++ b/erts/emulator/beam/beam_emu.c
@@ -7017,7 +7017,11 @@ update_map_assoc(Process* p, Eterm* reg, Eterm map, BeamInstr* I)
/* The expensive case, need to build a hashmap */
if (n > MAP_SMALL_MAP_LIMIT) {
- res = erts_hashmap_from_ks_and_vs(p,flatmap_get_keys(mp),flatmap_get_values(mp),n);
+ ErtsHeapFactory factory;
+ erts_factory_proc_init(&factory, p);
+ res = erts_hashmap_from_ks_and_vs(&factory,flatmap_get_keys(mp),
+ flatmap_get_values(mp),n);
+ erts_factory_close(&factory);
}
return res;
}