diff options
author | Sverker Eriksson <[email protected]> | 2015-03-25 11:44:03 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2015-03-25 11:44:03 +0100 |
commit | 1f3869b308af19fb9cf471a12b8a1fdeab9da290 (patch) | |
tree | c90715cb9fc6c26ac0f68db052d744db22b54ec0 /erts/emulator/beam/external.c | |
parent | 7379c418ce610f3cd5a69fd4260efbc0246b994a (diff) | |
parent | 8d31ecea8b68ef6e16d7d77c0160e36f078b98de (diff) | |
download | otp-1f3869b308af19fb9cf471a12b8a1fdeab9da290.tar.gz otp-1f3869b308af19fb9cf471a12b8a1fdeab9da290.tar.bz2 otp-1f3869b308af19fb9cf471a12b8a1fdeab9da290.zip |
Merge branch 'sverk/hamt-term2bin-bug/OTP-12585'
* sverk/hamt-term2bin-bug/OTP-12585:
erts: Optimize hashmap_get
erts: Remove HAMT_SUBTAG_NODE_ARRAY
erts: Fix bug in binary_to_term for hamt when yielding
erts: Rename to flatmap_from_validated_list
Diffstat (limited to 'erts/emulator/beam/external.c')
-rw-r--r-- | erts/emulator/beam/external.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/erts/emulator/beam/external.c b/erts/emulator/beam/external.c index 82c60840e5..b0b232f185 100644 --- a/erts/emulator/beam/external.c +++ b/erts/emulator/beam/external.c @@ -2633,8 +2633,6 @@ enc_term_int(TTBEncodeContext* ctx, ErtsAtomCacheMap *acmp, Eterm obj, byte* ep, *ep++ = MAP_EXT; ptr++; put_int32(*ptr, ep); ep += 4; - /*fall through*/ - case HAMT_SUBTAG_NODE_ARRAY: node_sz = 16; break; case HAMT_SUBTAG_HEAD_BITMAP: @@ -3878,6 +3876,7 @@ dec_term_atom_common: ctx->u.dc.next = next; ctx->u.dc.hp = hp; ctx->u.dc.maps_list = maps_list; + ctx->u.dc.hamt_list = hamt_list; ctx->reds = 0; return NULL; } @@ -4171,8 +4170,8 @@ encode_size_struct_int(TTBSizeContext* ctx, ErtsAtomCacheMap *acmp, Eterm obj, hdr = *ptr; ASSERT(is_header(hdr)); switch(hdr & _HEADER_MAP_SUBTAG_MASK) { - case HAMT_SUBTAG_HEAD_ARRAY: ptr++; - case HAMT_SUBTAG_NODE_ARRAY: + case HAMT_SUBTAG_HEAD_ARRAY: + ptr++; node_sz = 16; break; case HAMT_SUBTAG_HEAD_BITMAP: ptr++; |