From: José Fonseca Date: Sat, 17 Mar 2012 16:12:22 +0000 (+0000) Subject: Pickle blobs as bytearrays. X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=eba2deca7aa16097bdefabd039fbbbc02b3f5672;p=apitrace Pickle blobs as bytearrays. --- diff --git a/cli/cli_pickle.cpp b/cli/cli_pickle.cpp index e3222db..9145f44 100644 --- a/cli/cli_pickle.cpp +++ b/cli/cli_pickle.cpp @@ -145,7 +145,7 @@ public: } void visit(Blob *node) { - writer.writeString((const char *)node->buf, node->size); + writer.writeByteArray(node->buf, node->size); } void visit(Pointer *node) { diff --git a/common/pickle.hpp b/common/pickle.hpp index 736025b..60694fa 100644 --- a/common/pickle.hpp +++ b/common/pickle.hpp @@ -268,6 +268,16 @@ public: os.put(u.c[0]); } + inline void writeByteArray(const void *buf, size_t length) { + os.put(GLOBAL); + os << "__builtin__\nbytearray\n"; + os.put(BINPUT); + os.put(1); + writeString(static_cast(buf), length); + os.put(TUPLE1); + os.put(REDUCE); + } + protected: inline void putInt16(uint16_t i) { os.put( i & 0xff);