aboutsummaryrefslogtreecommitdiffstats
path: root/lib/erl_interface/src/misc/show_msg.c
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2019-04-17 19:09:57 +0200
committerSverker Eriksson <[email protected]>2019-04-17 19:09:57 +0200
commit236cb4b5eb3b89c837324a5ae7a11117d671d717 (patch)
tree41a090786155ab22d5c7a883c275c59d059a4ea0 /lib/erl_interface/src/misc/show_msg.c
parentdbe9bbfb801bcd92cc54c73ce96203b3a04c5517 (diff)
parent6a0deeae54ee18aa2028e994c33d633bb41021ed (diff)
downloadotp-236cb4b5eb3b89c837324a5ae7a11117d671d717.tar.gz
otp-236cb4b5eb3b89c837324a5ae7a11117d671d717.tar.bz2
otp-236cb4b5eb3b89c837324a5ae7a11117d671d717.zip
Merge branch 'sverker/bit-binary-ext/OTP-15712'
* sverker/bit-binary-ext/OTP-15712: jinterface: Add dist flag for export funs erl_interface: Add bitstring and export fun support erl_interface: Remove old r9 pid and port compatibility erl_interface: Refactor ei_decode_SUITE erl_interface: Fix maps arity from ei_get_type() erl_interface: Remove ei_get_type_internal() erl_interface: Deprecate ei_encode_term and ei_decode_term
Diffstat (limited to 'lib/erl_interface/src/misc/show_msg.c')
-rw-r--r--lib/erl_interface/src/misc/show_msg.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/erl_interface/src/misc/show_msg.c b/lib/erl_interface/src/misc/show_msg.c
index 5868cccba6..2d49eb6449 100644
--- a/lib/erl_interface/src/misc/show_msg.c
+++ b/lib/erl_interface/src/misc/show_msg.c
@@ -24,6 +24,13 @@
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+
+#ifndef SIZE_MAX
+# define SIZE_MAX (~((size_t)0))
+#endif
#include <sys/types.h>
@@ -342,7 +349,7 @@ static void show_term(const char *termbuf, int *index, FILE *stream)
int i, len;
char *s;
- ei_get_type_internal(termbuf,index,&type,&len);
+ ei_get_type(termbuf,index,&type,&len);
switch (type) {
case ERL_VERSION_MAGIC:
@@ -455,6 +462,12 @@ static void show_term(const char *termbuf, int *index, FILE *stream)
fprintf(stream,"#Bin<%ld>",num);
break;
+ case ERL_BIT_BINARY_EXT: {
+ size_t bits;
+ ei_decode_bitstring(termbuf, index, NULL, SIZE_MAX, &bits);
+ fprintf(stream, "#Bits<%lu>", (unsigned long)bits);
+ break;
+ }
case ERL_LARGE_BIG_EXT:
/* doesn't actually decode - just skip over it */
/* FIXME if GMP, what to do here?? */