diff options
| -rw-r--r-- | erts/emulator/beam/erl_db_util.c | 5 | 
1 files changed, 5 insertions, 0 deletions
| diff --git a/erts/emulator/beam/erl_db_util.c b/erts/emulator/beam/erl_db_util.c index be988f0621..a75267ca97 100644 --- a/erts/emulator/beam/erl_db_util.c +++ b/erts/emulator/beam/erl_db_util.c @@ -3411,6 +3411,11 @@ int db_has_variable(Eterm node) {                  while (size--) {                      ESTACK_PUSH(s, *(values++));                  } +            } else if (is_map(node)) { /* other map-nodes or map-heads */ +                Eterm *ptr = hashmap_val(node); +                int i = hashmap_bitcount(MAP_HEADER_VAL(*ptr)); +                ptr += MAP_HEADER_ARITY(*ptr); +                while(i--) { ESTACK_PUSH(s, *++ptr); }              }  	    break;  	case TAG_PRIMARY_IMMED1: | 
