aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_map.c
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2015-03-03 17:16:51 +0100
committerBjörn-Egil Dahlberg <[email protected]>2015-03-12 19:15:31 +0100
commit3697ee925251edfe7a7ac2ed483039f414830012 (patch)
tree9148ec5edd135b936955f3da2150ad9df53a6282 /erts/emulator/beam/erl_map.c
parentde95f407aba2c8b7bf2a5827842722581aacfd6a (diff)
downloadotp-3697ee925251edfe7a7ac2ed483039f414830012.tar.gz
otp-3697ee925251edfe7a7ac2ed483039f414830012.tar.bz2
otp-3697ee925251edfe7a7ac2ed483039f414830012.zip
erts: Fix instruction new_map
Diffstat (limited to 'erts/emulator/beam/erl_map.c')
-rw-r--r--erts/emulator/beam/erl_map.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/erts/emulator/beam/erl_map.c b/erts/emulator/beam/erl_map.c
index 97f94d90ac..ea041e2303 100644
--- a/erts/emulator/beam/erl_map.c
+++ b/erts/emulator/beam/erl_map.c
@@ -426,7 +426,6 @@ static Eterm hashmap_from_validated_list(Process *p, Eterm list, Uint size) {
}
Eterm erts_hashmap_from_array(Process *p, Eterm *leafs, Uint n) {
- Eterm tmp[2];
Uint32 sw, hx;
Uint ix;
hxnode_t *hxns;
@@ -436,12 +435,13 @@ Eterm erts_hashmap_from_array(Process *p, Eterm *leafs, Uint n) {
hxns = (hxnode_t *)erts_alloc(ERTS_ALC_T_TMP, n * sizeof(hxnode_t));
for (ix = 0; ix < n; ix++) {
- hx = hashmap_restore_hash(tmp,0,CAR(list_val(leafs[ix])));
+ hx = hashmap_make_hash(*leafs);
swizzle32(sw,hx);
hxns[ix].hx = sw;
- hxns[ix].val = leafs[ix];
+ hxns[ix].val = make_list(leafs);
hxns[ix].skip = 1;
hxns[ix].i = ix;
+ leafs += 2;
}
res = hashmap_from_unsorted_array(p, hxns, n);