From d1fde60e2814ba1d8013c48983bc206c1112cb98 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson Date: Thu, 27 Mar 2014 17:13:43 +0100 Subject: erts: Adjust is_external_header() for new map tag to not mistake a map for an external term (pid, port or ref). --- erts/emulator/beam/erl_term.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'erts/emulator') diff --git a/erts/emulator/beam/erl_term.h b/erts/emulator/beam/erl_term.h index 982e63ee31..37014ccf94 100644 --- a/erts/emulator/beam/erl_term.h +++ b/erts/emulator/beam/erl_term.h @@ -893,7 +893,8 @@ typedef struct external_thing_ { (((x) & _TAG_HEADER_MASK) == _TAG_HEADER_EXTERNAL_REF) #define is_external_header(x) \ - (((x) & (_TAG_HEADER_MASK-_BINARY_XXX_MASK)) == _TAG_HEADER_EXTERNAL_PID) + (((x) & (_TAG_HEADER_MASK-_BINARY_XXX_MASK)) == _TAG_HEADER_EXTERNAL_PID \ + && ((x) & _TAG_HEADER_MASK) != _TAG_HEADER_MAP) #define is_external(x) (is_boxed((x)) && is_external_header(*boxed_val((x)))) -- cgit v1.2.3