diff options
author | Sverker Eriksson <[email protected]> | 2014-03-14 16:07:38 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2014-03-14 16:07:38 +0100 |
commit | 237264bc018b0cc17afeac5d3f6030073f314f9d (patch) | |
tree | 8817ef7e7e3cf6bb59d95907016ada4f96f34e86 /lib/erl_interface/src/decode/decode_tuple_header.c | |
parent | f076fc4126dd597d8681b18c23d2c76fbd4b9672 (diff) | |
parent | a996e168bfebe599cfe393cd132a87984d905d84 (diff) | |
download | otp-237264bc018b0cc17afeac5d3f6030073f314f9d.tar.gz otp-237264bc018b0cc17afeac5d3f6030073f314f9d.tar.bz2 otp-237264bc018b0cc17afeac5d3f6030073f314f9d.zip |
Merge branch 'sverk/maps-erl_interface'
* sverk/maps-erl_interface:
erts: Add distribution capability flag for maps DFLAG_MAP_TAG
erts: Change external format for maps
erts: Document external format for maps (MAP_EXT)
erl_interface: Add test for ei_skip_term of container terms
erl_interface: Add map support in ei_skip_term
erl_interface: Fix mem leak in ei_decode_encode_test
erl_interface: test decode/encode of maps
erl_interface: Add ei encode/decode for maps
erl_interface: test decode_encode of tuples and lists
erl_interface: refactor ei_decode_encode_test.c
Diffstat (limited to 'lib/erl_interface/src/decode/decode_tuple_header.c')
-rw-r--r-- | lib/erl_interface/src/decode/decode_tuple_header.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/lib/erl_interface/src/decode/decode_tuple_header.c b/lib/erl_interface/src/decode/decode_tuple_header.c index c0ba14ea47..698be1b97a 100644 --- a/lib/erl_interface/src/decode/decode_tuple_header.c +++ b/lib/erl_interface/src/decode/decode_tuple_header.c @@ -1,7 +1,7 @@ /* * %CopyrightBegin% * - * Copyright Ericsson AB 1998-2009. All Rights Reserved. + * Copyright Ericsson AB 1998-2014. All Rights Reserved. * * The contents of this file are subject to the Erlang Public License, * Version 1.1, (the "License"); you may not use this file except in @@ -45,3 +45,24 @@ int ei_decode_tuple_header(const char *buf, int *index, int *arity) return 0; } + +int ei_decode_map_header(const char *buf, int *index, int *arity) +{ + const char *s = buf + *index; + const char *s0 = s; + int i; + + switch ((i=get8(s))) { + case ERL_MAP_EXT: + if (arity) *arity = get32be(s); + else s += 4; + break; + + default: + return -1; + } + + *index += s-s0; + + return 0; +} |