mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-05-02 07:31:38 +02:00
Modified passed by value of object to const reference of object.
Modified object pointers to object references. This modification has increased unpack speed.
This commit is contained in:
parent
f8561fbfd5
commit
56b0ad6809
@ -31,7 +31,7 @@ void test_map_pack_unpack() {
|
|||||||
std::cout << "Start unpacking..." << std::endl;
|
std::cout << "Start unpacking..." << std::endl;
|
||||||
{
|
{
|
||||||
boost::timer::cpu_timer timer;
|
boost::timer::cpu_timer timer;
|
||||||
msgpack::unpack(str.data(), str.size(), NULL, &mempool, &deserialized);
|
msgpack::unpack(str.data(), str.size(), NULL, &mempool, deserialized);
|
||||||
std::string result = timer.format();
|
std::string result = timer.format();
|
||||||
std::cout << result << std::endl;
|
std::cout << result << std::endl;
|
||||||
}
|
}
|
||||||
|
@ -62,83 +62,83 @@ private:
|
|||||||
static inline object template_callback_root(unpack_user* u)
|
static inline object template_callback_root(unpack_user* u)
|
||||||
{ object o; return o; }
|
{ object o; return o; }
|
||||||
|
|
||||||
static inline int template_callback_uint8(unpack_user* u, uint8_t d, object* o)
|
inline int template_callback_uint8(unpack_user* u, uint8_t d, object& o)
|
||||||
{ o->type = type::POSITIVE_INTEGER; o->via.u64 = d; return 0; }
|
{ o.type = type::POSITIVE_INTEGER; o.via.u64 = d; return 0; }
|
||||||
|
|
||||||
static inline int template_callback_uint16(unpack_user* u, uint16_t d, object* o)
|
inline int template_callback_uint16(unpack_user* u, uint16_t d, object& o)
|
||||||
{ o->type = type::POSITIVE_INTEGER; o->via.u64 = d; return 0; }
|
{ o.type = type::POSITIVE_INTEGER; o.via.u64 = d; return 0; }
|
||||||
|
|
||||||
static inline int template_callback_uint32(unpack_user* u, uint32_t d, object* o)
|
inline int template_callback_uint32(unpack_user* u, uint32_t d, object& o)
|
||||||
{ o->type = type::POSITIVE_INTEGER; o->via.u64 = d; return 0; }
|
{ o.type = type::POSITIVE_INTEGER; o.via.u64 = d; return 0; }
|
||||||
|
|
||||||
static inline int template_callback_uint64(unpack_user* u, uint64_t d, object* o)
|
inline int template_callback_uint64(unpack_user* u, uint64_t d, object& o)
|
||||||
{ o->type = type::POSITIVE_INTEGER; o->via.u64 = d; return 0; }
|
{ o.type = type::POSITIVE_INTEGER; o.via.u64 = d; return 0; }
|
||||||
|
|
||||||
static inline int template_callback_int8(unpack_user* u, int8_t d, object* o)
|
inline int template_callback_int8(unpack_user* u, int8_t d, object& o)
|
||||||
{ if(d >= 0) { o->type = type::POSITIVE_INTEGER; o->via.u64 = d; return 0; }
|
{ if(d >= 0) { o.type = type::POSITIVE_INTEGER; o.via.u64 = d; return 0; }
|
||||||
else { o->type = type::NEGATIVE_INTEGER; o->via.i64 = d; return 0; } }
|
else { o.type = type::NEGATIVE_INTEGER; o.via.i64 = d; return 0; } }
|
||||||
|
|
||||||
static inline int template_callback_int16(unpack_user* u, int16_t d, object* o)
|
inline int template_callback_int16(unpack_user* u, int16_t d, object& o)
|
||||||
{ if(d >= 0) { o->type = type::POSITIVE_INTEGER; o->via.u64 = d; return 0; }
|
{ if(d >= 0) { o.type = type::POSITIVE_INTEGER; o.via.u64 = d; return 0; }
|
||||||
else { o->type = type::NEGATIVE_INTEGER; o->via.i64 = d; return 0; } }
|
else { o.type = type::NEGATIVE_INTEGER; o.via.i64 = d; return 0; } }
|
||||||
|
|
||||||
static inline int template_callback_int32(unpack_user* u, int32_t d, object* o)
|
inline int template_callback_int32(unpack_user* u, int32_t d, object& o)
|
||||||
{ if(d >= 0) { o->type = type::POSITIVE_INTEGER; o->via.u64 = d; return 0; }
|
{ if(d >= 0) { o.type = type::POSITIVE_INTEGER; o.via.u64 = d; return 0; }
|
||||||
else { o->type = type::NEGATIVE_INTEGER; o->via.i64 = d; return 0; } }
|
else { o.type = type::NEGATIVE_INTEGER; o.via.i64 = d; return 0; } }
|
||||||
|
|
||||||
static inline int template_callback_int64(unpack_user* u, int64_t d, object* o)
|
inline int template_callback_int64(unpack_user* u, int64_t d, object& o)
|
||||||
{ if(d >= 0) { o->type = type::POSITIVE_INTEGER; o->via.u64 = d; return 0; }
|
{ if(d >= 0) { o.type = type::POSITIVE_INTEGER; o.via.u64 = d; return 0; }
|
||||||
else { o->type = type::NEGATIVE_INTEGER; o->via.i64 = d; return 0; } }
|
else { o.type = type::NEGATIVE_INTEGER; o.via.i64 = d; return 0; } }
|
||||||
|
|
||||||
static inline int template_callback_float(unpack_user* u, float d, object* o)
|
inline int template_callback_float(unpack_user* u, float d, object& o)
|
||||||
{ o->type = type::DOUBLE; o->via.dec = d; return 0; }
|
{ o.type = type::DOUBLE; o.via.dec = d; return 0; }
|
||||||
|
|
||||||
static inline int template_callback_double(unpack_user* u, double d, object* o)
|
inline int template_callback_double(unpack_user* u, double d, object& o)
|
||||||
{ o->type = type::DOUBLE; o->via.dec = d; return 0; }
|
{ o.type = type::DOUBLE; o.via.dec = d; return 0; }
|
||||||
|
|
||||||
static inline int template_callback_nil(unpack_user* u, object* o)
|
inline int template_callback_nil(unpack_user* u, object& o)
|
||||||
{ o->type = type::NIL; return 0; }
|
{ o.type = type::NIL; return 0; }
|
||||||
|
|
||||||
static inline int template_callback_true(unpack_user* u, object* o)
|
inline int template_callback_true(unpack_user* u, object& o)
|
||||||
{ o->type = type::BOOLEAN; o->via.boolean = true; return 0; }
|
{ o.type = type::BOOLEAN; o.via.boolean = true; return 0; }
|
||||||
|
|
||||||
static inline int template_callback_false(unpack_user* u, object* o)
|
inline int template_callback_false(unpack_user* u, object& o)
|
||||||
{ o->type = type::BOOLEAN; o->via.boolean = false; return 0; }
|
{ o.type = type::BOOLEAN; o.via.boolean = false; return 0; }
|
||||||
|
|
||||||
static inline int template_callback_array(unpack_user* u, unsigned int n, object* o)
|
inline int template_callback_array(unpack_user* u, unsigned int n, object& o)
|
||||||
{
|
{
|
||||||
o->type = type::ARRAY;
|
o.type = type::ARRAY;
|
||||||
o->via.array.size = 0;
|
o.via.array.size = 0;
|
||||||
o->via.array.ptr = (object*)u->z()->malloc(n*sizeof(object));
|
o.via.array.ptr = (object*)u->z()->malloc(n*sizeof(object));
|
||||||
if(o->via.array.ptr == NULL) { return -1; }
|
if(o.via.array.ptr == NULL) { return -1; }
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int template_callback_array_item(unpack_user* u, object* c, object o)
|
inline int template_callback_array_item(unpack_user* u, object& c, object const& o)
|
||||||
{ c->via.array.ptr[c->via.array.size++] = o; return 0; }
|
{ c.via.array.ptr[c.via.array.size++] = o; return 0; }
|
||||||
|
|
||||||
static inline int template_callback_map(unpack_user* u, unsigned int n, object* o)
|
inline int template_callback_map(unpack_user* u, unsigned int n, object& o)
|
||||||
{
|
{
|
||||||
o->type = type::MAP;
|
o.type = type::MAP;
|
||||||
o->via.map.size = 0;
|
o.via.map.size = 0;
|
||||||
o->via.map.ptr = (object_kv*)u->z()->malloc(n*sizeof(object_kv));
|
o.via.map.ptr = (object_kv*)u->z()->malloc(n*sizeof(object_kv));
|
||||||
if(o->via.map.ptr == NULL) { return -1; }
|
if(o.via.map.ptr == NULL) { return -1; }
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int template_callback_map_item(unpack_user* u, object* c, object k, object v)
|
inline int template_callback_map_item(unpack_user* u, object& c, object const& k, object const& v)
|
||||||
{
|
{
|
||||||
c->via.map.ptr[c->via.map.size].key = k;
|
c.via.map.ptr[c.via.map.size].key = k;
|
||||||
c->via.map.ptr[c->via.map.size].val = v;
|
c.via.map.ptr[c.via.map.size].val = v;
|
||||||
++c->via.map.size;
|
++c.via.map.size;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int template_callback_raw(unpack_user* u, const char* b, const char* p, unsigned int l, object* o)
|
inline int template_callback_raw(unpack_user* u, const char* b, const char* p, unsigned int l, object& o)
|
||||||
{
|
{
|
||||||
o->type = type::RAW;
|
o.type = type::RAW;
|
||||||
o->via.raw.ptr = p;
|
o.via.raw.ptr = p;
|
||||||
o->via.raw.size = l;
|
o.via.raw.size = l;
|
||||||
u->set_referenced(true);
|
u->set_referenced(true);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -146,16 +146,16 @@ static inline int template_callback_raw(unpack_user* u, const char* b, const cha
|
|||||||
|
|
||||||
class template_unpack_stack {
|
class template_unpack_stack {
|
||||||
public:
|
public:
|
||||||
object obj() const { return obj_; }
|
object const& obj() const { return obj_; }
|
||||||
object& obj() { return obj_; }
|
object& obj() { return obj_; }
|
||||||
void setObj(object obj) { obj_ = obj; }
|
void setObj(object const& obj) { obj_ = obj; }
|
||||||
size_t count() const { return count_; }
|
size_t count() const { return count_; }
|
||||||
void set_count(size_t count) { count_ = count; }
|
void set_count(size_t count) { count_ = count; }
|
||||||
size_t decl_count() { return --count_; }
|
size_t decl_count() { return --count_; }
|
||||||
unsigned int ct() const { return ct_; }
|
unsigned int ct() const { return ct_; }
|
||||||
void set_ct(unsigned int ct) { ct_ = ct; }
|
void set_ct(unsigned int ct) { ct_ = ct; }
|
||||||
object map_key() const { return map_key_; }
|
object const& map_key() const { return map_key_; }
|
||||||
void set_map_key(object map_key) { map_key_ = map_key; }
|
void set_map_key(object const& map_key) { map_key_ = map_key; }
|
||||||
private:
|
private:
|
||||||
object obj_;
|
object obj_;
|
||||||
size_t count_;
|
size_t count_;
|
||||||
@ -202,7 +202,7 @@ public:
|
|||||||
stack_[0].setObj(template_callback_root(&user_));
|
stack_[0].setObj(template_callback_root(&user_));
|
||||||
}
|
}
|
||||||
|
|
||||||
object data() const
|
object const& data() const
|
||||||
{
|
{
|
||||||
return stack_[0].obj();
|
return stack_[0].obj();
|
||||||
}
|
}
|
||||||
@ -243,23 +243,23 @@ public:
|
|||||||
case CS_HEADER:
|
case CS_HEADER:
|
||||||
if (0) {
|
if (0) {
|
||||||
} else if(0x00 <= *p && *p <= 0x7f) { // Positive Fixnum
|
} else if(0x00 <= *p && *p <= 0x7f) { // Positive Fixnum
|
||||||
if(template_callback_uint8(user, *(uint8_t*)p, &obj) < 0) { goto _failed; }
|
if(template_callback_uint8(user, *(uint8_t*)p, obj) < 0) { goto _failed; }
|
||||||
goto _push;
|
goto _push;
|
||||||
} else if(0xe0 <= *p && *p <= 0xff) { // Negative Fixnum
|
} else if(0xe0 <= *p && *p <= 0xff) { // Negative Fixnum
|
||||||
if(template_callback_int8(user, *(int8_t*)p, &obj) < 0) { goto _failed; }
|
if(template_callback_int8(user, *(int8_t*)p, obj) < 0) { goto _failed; }
|
||||||
goto _push;
|
goto _push;
|
||||||
} else if(0xc0 <= *p && *p <= 0xdf) { // Variable
|
} else if(0xc0 <= *p && *p <= 0xdf) { // Variable
|
||||||
switch(*p) {
|
switch(*p) {
|
||||||
case 0xc0: // nil
|
case 0xc0: // nil
|
||||||
if(template_callback_nil(user, &obj) < 0) { goto _failed; }
|
if(template_callback_nil(user, obj) < 0) { goto _failed; }
|
||||||
goto _push;
|
goto _push;
|
||||||
//case 0xc1: // string
|
//case 0xc1: // string
|
||||||
// again_terminal_trail(next_cs(p), p+1);
|
// again_terminal_trail(next_cs(p), p+1);
|
||||||
case 0xc2: // false
|
case 0xc2: // false
|
||||||
if(template_callback_false(user, &obj) < 0) { goto _failed; }
|
if(template_callback_false(user, obj) < 0) { goto _failed; }
|
||||||
goto _push;
|
goto _push;
|
||||||
case 0xc3: // true
|
case 0xc3: // true
|
||||||
if(template_callback_true(user, &obj) < 0) { goto _failed; }
|
if(template_callback_true(user, obj) < 0) { goto _failed; }
|
||||||
goto _push;
|
goto _push;
|
||||||
case 0xc4: // bin 8
|
case 0xc4: // bin 8
|
||||||
case 0xc5: // bin 16
|
case 0xc5: // bin 16
|
||||||
@ -313,7 +313,7 @@ public:
|
|||||||
|
|
||||||
} else if(0x90 <= *p && *p <= 0x9f) { // FixArray
|
} else if(0x90 <= *p && *p <= 0x9f) { // FixArray
|
||||||
if(top >= MSGPACK_EMBED_STACK_SIZE) { goto _failed; } /* FIXME */
|
if(top >= MSGPACK_EMBED_STACK_SIZE) { goto _failed; } /* FIXME */
|
||||||
if(template_callback_array(user, ((unsigned int)*p) & 0x0f, &stack[top].obj()) < 0) { goto _failed; }
|
if(template_callback_array(user, ((unsigned int)*p) & 0x0f, stack[top].obj()) < 0) { goto _failed; }
|
||||||
if((((unsigned int)*p) & 0x0f) == 0) { obj = stack[top].obj(); goto _push; }
|
if((((unsigned int)*p) & 0x0f) == 0) { obj = stack[top].obj(); goto _push; }
|
||||||
stack[top].set_ct(CT_ARRAY_ITEM);
|
stack[top].set_ct(CT_ARRAY_ITEM);
|
||||||
stack[top].set_count(((unsigned int)*p) & 0x0f);
|
stack[top].set_count(((unsigned int)*p) & 0x0f);
|
||||||
@ -322,7 +322,7 @@ public:
|
|||||||
|
|
||||||
} else if(0x80 <= *p && *p <= 0x8f) { // FixMap
|
} else if(0x80 <= *p && *p <= 0x8f) { // FixMap
|
||||||
if(top >= MSGPACK_EMBED_STACK_SIZE) { goto _failed; } /* FIXME */
|
if(top >= MSGPACK_EMBED_STACK_SIZE) { goto _failed; } /* FIXME */
|
||||||
if(template_callback_map(user, ((unsigned int)*p) & 0x0f, &stack[top].obj()) < 0) { goto _failed; }
|
if(template_callback_map(user, ((unsigned int)*p) & 0x0f, stack[top].obj()) < 0) { goto _failed; }
|
||||||
if((((unsigned int)*p) & 0x0f) == 0) { obj = stack[top].obj(); goto _push; }
|
if((((unsigned int)*p) & 0x0f) == 0) { obj = stack[top].obj(); goto _push; }
|
||||||
stack[top].set_ct(CT_MAP_KEY);
|
stack[top].set_ct(CT_MAP_KEY);
|
||||||
stack[top].set_count(((unsigned int)*p) & 0x0f);
|
stack[top].set_count(((unsigned int)*p) & 0x0f);
|
||||||
@ -347,7 +347,7 @@ _fixed_trail_again:
|
|||||||
case CS_FLOAT: {
|
case CS_FLOAT: {
|
||||||
union { uint32_t i; float f; } mem;
|
union { uint32_t i; float f; } mem;
|
||||||
mem.i = _msgpack_load32(uint32_t,n);
|
mem.i = _msgpack_load32(uint32_t,n);
|
||||||
if(template_callback_float(user, mem.f, &obj) < 0) { goto _failed; }
|
if(template_callback_float(user, mem.f, obj) < 0) { goto _failed; }
|
||||||
goto _push; }
|
goto _push; }
|
||||||
case CS_DOUBLE: {
|
case CS_DOUBLE: {
|
||||||
union { uint64_t i; double f; } mem;
|
union { uint64_t i; double f; } mem;
|
||||||
@ -356,32 +356,32 @@ _fixed_trail_again:
|
|||||||
// https://github.com/msgpack/msgpack-perl/pull/1
|
// https://github.com/msgpack/msgpack-perl/pull/1
|
||||||
mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL);
|
mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL);
|
||||||
#endif
|
#endif
|
||||||
if(template_callback_double(user, mem.f, &obj) < 0) { goto _failed; }
|
if(template_callback_double(user, mem.f, obj) < 0) { goto _failed; }
|
||||||
goto _push; }
|
goto _push; }
|
||||||
case CS_UINT_8:
|
case CS_UINT_8:
|
||||||
if(template_callback_uint8(user, *(uint8_t*)n, &obj) < 0) { goto _failed; }
|
if(template_callback_uint8(user, *(uint8_t*)n, obj) < 0) { goto _failed; }
|
||||||
goto _push;
|
goto _push;
|
||||||
case CS_UINT_16:
|
case CS_UINT_16:
|
||||||
if(template_callback_uint16(user, _msgpack_load16(uint16_t,n), &obj) < 0) { goto _failed; }
|
if(template_callback_uint16(user, _msgpack_load16(uint16_t,n), obj) < 0) { goto _failed; }
|
||||||
goto _push;
|
goto _push;
|
||||||
case CS_UINT_32:
|
case CS_UINT_32:
|
||||||
if(template_callback_uint32(user, _msgpack_load32(uint32_t,n), &obj) < 0) { goto _failed; }
|
if(template_callback_uint32(user, _msgpack_load32(uint32_t,n), obj) < 0) { goto _failed; }
|
||||||
goto _push;
|
goto _push;
|
||||||
case CS_UINT_64:
|
case CS_UINT_64:
|
||||||
if(template_callback_uint64(user, _msgpack_load64(uint64_t,n), &obj) < 0) { goto _failed; }
|
if(template_callback_uint64(user, _msgpack_load64(uint64_t,n), obj) < 0) { goto _failed; }
|
||||||
goto _push;
|
goto _push;
|
||||||
|
|
||||||
case CS_INT_8:
|
case CS_INT_8:
|
||||||
if(template_callback_int8(user, *(int8_t*)n, &obj) < 0) { goto _failed; }
|
if(template_callback_int8(user, *(int8_t*)n, obj) < 0) { goto _failed; }
|
||||||
goto _push;
|
goto _push;
|
||||||
case CS_INT_16:
|
case CS_INT_16:
|
||||||
if(template_callback_int16(user, _msgpack_load16(int16_t,n), &obj) < 0) { goto _failed; }
|
if(template_callback_int16(user, _msgpack_load16(int16_t,n), obj) < 0) { goto _failed; }
|
||||||
goto _push;
|
goto _push;
|
||||||
case CS_INT_32:
|
case CS_INT_32:
|
||||||
if(template_callback_int32(user, _msgpack_load32(int32_t,n), &obj) < 0) { goto _failed; }
|
if(template_callback_int32(user, _msgpack_load32(int32_t,n), obj) < 0) { goto _failed; }
|
||||||
goto _push;
|
goto _push;
|
||||||
case CS_INT_64:
|
case CS_INT_64:
|
||||||
if(template_callback_int64(user, _msgpack_load64(int64_t,n), &obj) < 0) { goto _failed; }
|
if(template_callback_int64(user, _msgpack_load64(int64_t,n), obj) < 0) { goto _failed; }
|
||||||
goto _push;
|
goto _push;
|
||||||
|
|
||||||
case CS_BIN_8:
|
case CS_BIN_8:
|
||||||
@ -404,11 +404,11 @@ _fixed_trail_again:
|
|||||||
goto _fixed_trail_again;
|
goto _fixed_trail_again;
|
||||||
case ACS_RAW_VALUE:
|
case ACS_RAW_VALUE:
|
||||||
_raw_zero:
|
_raw_zero:
|
||||||
if(template_callback_raw(user, (const char*)data, (const char*)n, trail, &obj) < 0) { goto _failed; }
|
if(template_callback_raw(user, (const char*)data, (const char*)n, trail, obj) < 0) { goto _failed; }
|
||||||
goto _push;
|
goto _push;
|
||||||
case CS_ARRAY_16:
|
case CS_ARRAY_16:
|
||||||
if(top >= MSGPACK_EMBED_STACK_SIZE) { goto _failed; } /* FIXME */
|
if(top >= MSGPACK_EMBED_STACK_SIZE) { goto _failed; } /* FIXME */
|
||||||
if(template_callback_array(user, _msgpack_load16(uint16_t, n), &stack[top].obj()) < 0) { goto _failed; }
|
if(template_callback_array(user, _msgpack_load16(uint16_t, n), stack[top].obj()) < 0) { goto _failed; }
|
||||||
if(_msgpack_load16(uint16_t, n) == 0) { obj = stack[top].obj(); goto _push; }
|
if(_msgpack_load16(uint16_t, n) == 0) { obj = stack[top].obj(); goto _push; }
|
||||||
stack[top].set_ct(CT_ARRAY_ITEM);
|
stack[top].set_ct(CT_ARRAY_ITEM);
|
||||||
stack[top].set_count(_msgpack_load16(uint16_t, n));
|
stack[top].set_count(_msgpack_load16(uint16_t, n));
|
||||||
@ -417,7 +417,7 @@ _raw_zero:
|
|||||||
case CS_ARRAY_32:
|
case CS_ARRAY_32:
|
||||||
/* FIXME security guard */
|
/* FIXME security guard */
|
||||||
if(top >= MSGPACK_EMBED_STACK_SIZE) { goto _failed; } /* FIXME */
|
if(top >= MSGPACK_EMBED_STACK_SIZE) { goto _failed; } /* FIXME */
|
||||||
if(template_callback_array(user, _msgpack_load32(uint32_t, n), &stack[top].obj()) < 0) { goto _failed; }
|
if(template_callback_array(user, _msgpack_load32(uint32_t, n), stack[top].obj()) < 0) { goto _failed; }
|
||||||
if(_msgpack_load32(uint32_t, n) == 0) { obj = stack[top].obj(); goto _push; }
|
if(_msgpack_load32(uint32_t, n) == 0) { obj = stack[top].obj(); goto _push; }
|
||||||
stack[top].set_ct(CT_ARRAY_ITEM);
|
stack[top].set_ct(CT_ARRAY_ITEM);
|
||||||
stack[top].set_count(_msgpack_load32(uint32_t, n));
|
stack[top].set_count(_msgpack_load32(uint32_t, n));
|
||||||
@ -426,7 +426,7 @@ _raw_zero:
|
|||||||
|
|
||||||
case CS_MAP_16:
|
case CS_MAP_16:
|
||||||
if(top >= MSGPACK_EMBED_STACK_SIZE) { goto _failed; } /* FIXME */
|
if(top >= MSGPACK_EMBED_STACK_SIZE) { goto _failed; } /* FIXME */
|
||||||
if(template_callback_map(user, _msgpack_load16(uint16_t, n), &stack[top].obj()) < 0) { goto _failed; }
|
if(template_callback_map(user, _msgpack_load16(uint16_t, n), stack[top].obj()) < 0) { goto _failed; }
|
||||||
if(_msgpack_load16(uint16_t, n) == 0) { obj = stack[top].obj(); goto _push; }
|
if(_msgpack_load16(uint16_t, n) == 0) { obj = stack[top].obj(); goto _push; }
|
||||||
stack[top].set_ct(CT_MAP_KEY);
|
stack[top].set_ct(CT_MAP_KEY);
|
||||||
stack[top].set_count(_msgpack_load16(uint16_t, n));
|
stack[top].set_count(_msgpack_load16(uint16_t, n));
|
||||||
@ -435,7 +435,7 @@ _raw_zero:
|
|||||||
case CS_MAP_32:
|
case CS_MAP_32:
|
||||||
/* FIXME security guard */
|
/* FIXME security guard */
|
||||||
if(top >= MSGPACK_EMBED_STACK_SIZE) { goto _failed; } /* FIXME */
|
if(top >= MSGPACK_EMBED_STACK_SIZE) { goto _failed; } /* FIXME */
|
||||||
if(template_callback_map(user, _msgpack_load32(uint32_t, n), &stack[top].obj()) < 0) { goto _failed; }
|
if(template_callback_map(user, _msgpack_load32(uint32_t, n), stack[top].obj()) < 0) { goto _failed; }
|
||||||
if(_msgpack_load32(uint32_t, n) == 0) { obj = stack[top].obj(); goto _push; }
|
if(_msgpack_load32(uint32_t, n) == 0) { obj = stack[top].obj(); goto _push; }
|
||||||
stack[top].set_ct(CT_MAP_KEY);
|
stack[top].set_ct(CT_MAP_KEY);
|
||||||
stack[top].set_count(_msgpack_load32(uint32_t, n));
|
stack[top].set_count(_msgpack_load32(uint32_t, n));
|
||||||
@ -452,7 +452,7 @@ _push:
|
|||||||
c = &stack[top-1];
|
c = &stack[top-1];
|
||||||
switch(c->ct()) {
|
switch(c->ct()) {
|
||||||
case CT_ARRAY_ITEM:
|
case CT_ARRAY_ITEM:
|
||||||
if(template_callback_array_item(user, &c->obj(), obj) < 0) { goto _failed; }
|
if(template_callback_array_item(user, c->obj(), obj) < 0) { goto _failed; }
|
||||||
if(c->decl_count() == 0) {
|
if(c->decl_count() == 0) {
|
||||||
obj = c->obj();
|
obj = c->obj();
|
||||||
--top;
|
--top;
|
||||||
@ -465,7 +465,7 @@ _push:
|
|||||||
c->set_ct(CT_MAP_VALUE);
|
c->set_ct(CT_MAP_VALUE);
|
||||||
goto _header_again;
|
goto _header_again;
|
||||||
case CT_MAP_VALUE:
|
case CT_MAP_VALUE:
|
||||||
if(template_callback_map_item(user, &c->obj(), c->map_key(), obj) < 0) { goto _failed; }
|
if(template_callback_map_item(user, c->obj(), c->map_key(), obj) < 0) { goto _failed; }
|
||||||
if(c->decl_count() == 0) {
|
if(c->decl_count() == 0) {
|
||||||
obj = c->obj();
|
obj = c->obj();
|
||||||
--top;
|
--top;
|
||||||
@ -539,7 +539,7 @@ class unpacked {
|
|||||||
public:
|
public:
|
||||||
unpacked() { }
|
unpacked() { }
|
||||||
|
|
||||||
unpacked(object obj, msgpack::unique_ptr<msgpack::zone> z) :
|
unpacked(object const& obj, msgpack::unique_ptr<msgpack::zone> z) :
|
||||||
m_obj(obj), m_zone(msgpack::move(z)) { }
|
m_obj(obj), m_zone(msgpack::move(z)) { }
|
||||||
|
|
||||||
object& get()
|
object& get()
|
||||||
@ -622,7 +622,7 @@ public:
|
|||||||
bool execute();
|
bool execute();
|
||||||
|
|
||||||
/*! for backward compatibility */
|
/*! for backward compatibility */
|
||||||
object data();
|
object const& data();
|
||||||
|
|
||||||
/*! for backward compatibility */
|
/*! for backward compatibility */
|
||||||
zone* release_zone();
|
zone* release_zone();
|
||||||
@ -684,7 +684,7 @@ typedef enum {
|
|||||||
|
|
||||||
// obsolete
|
// obsolete
|
||||||
static unpack_return unpack(const char* data, size_t len, size_t* off,
|
static unpack_return unpack(const char* data, size_t len, size_t* off,
|
||||||
zone* z, object* result);
|
zone* z, object& result);
|
||||||
|
|
||||||
|
|
||||||
// obsolete
|
// obsolete
|
||||||
@ -858,7 +858,7 @@ inline int unpacker::execute_imp()
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline object unpacker::data()
|
inline object const& unpacker::data()
|
||||||
{
|
{
|
||||||
return ctx_.data();
|
return ctx_.data();
|
||||||
}
|
}
|
||||||
@ -943,7 +943,7 @@ namespace detail {
|
|||||||
|
|
||||||
inline unpack_return
|
inline unpack_return
|
||||||
unpack_imp(const char* data, size_t len, size_t* off,
|
unpack_imp(const char* data, size_t len, size_t* off,
|
||||||
zone* result_zone, object* result)
|
zone* result_zone, object& result)
|
||||||
{
|
{
|
||||||
size_t noff = 0;
|
size_t noff = 0;
|
||||||
if(off != NULL) { noff = *off; }
|
if(off != NULL) { noff = *off; }
|
||||||
@ -970,7 +970,7 @@ unpack_imp(const char* data, size_t len, size_t* off,
|
|||||||
return UNPACK_CONTINUE;
|
return UNPACK_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
*result = ctx.data();
|
result = ctx.data();
|
||||||
|
|
||||||
if(noff < len) {
|
if(noff < len) {
|
||||||
return UNPACK_EXTRA_BYTES;
|
return UNPACK_EXTRA_BYTES;
|
||||||
@ -988,7 +988,7 @@ inline void unpack(unpacked* result,
|
|||||||
msgpack::unique_ptr<zone> z(new zone());
|
msgpack::unique_ptr<zone> z(new zone());
|
||||||
|
|
||||||
unpack_return ret = detail::unpack_imp(
|
unpack_return ret = detail::unpack_imp(
|
||||||
data, len, offset, z.get(), &obj);
|
data, len, offset, z.get(), obj);
|
||||||
|
|
||||||
|
|
||||||
switch(ret) {
|
switch(ret) {
|
||||||
@ -1014,7 +1014,7 @@ inline void unpack(unpacked* result,
|
|||||||
|
|
||||||
// obsolete
|
// obsolete
|
||||||
inline unpack_return unpack(const char* data, size_t len, size_t* off,
|
inline unpack_return unpack(const char* data, size_t len, size_t* off,
|
||||||
zone* z, object* result)
|
zone* z, object& result)
|
||||||
{
|
{
|
||||||
return detail::unpack_imp(data, len, off,
|
return detail::unpack_imp(data, len, off,
|
||||||
z, result);
|
z, result);
|
||||||
@ -1025,7 +1025,7 @@ inline object unpack(const char* data, size_t len, zone& z, size_t* off)
|
|||||||
{
|
{
|
||||||
object result;
|
object result;
|
||||||
|
|
||||||
switch( unpack(data, len, off, &z, &result) ) {
|
switch( unpack(data, len, off, &z, result) ) {
|
||||||
case UNPACK_SUCCESS:
|
case UNPACK_SUCCESS:
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ const double kEPS = 1e-10;
|
|||||||
msgpack::zone z; \
|
msgpack::zone z; \
|
||||||
msgpack::object obj; \
|
msgpack::object obj; \
|
||||||
msgpack::unpack_return ret = \
|
msgpack::unpack_return ret = \
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj); \
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj); \
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret); \
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret); \
|
||||||
test_type val2; \
|
test_type val2; \
|
||||||
obj.convert(&val2); \
|
obj.convert(&val2); \
|
||||||
@ -165,7 +165,7 @@ TEST(MSGPACK, simple_buffer_float)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
float val2;
|
float val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -255,7 +255,7 @@ TEST(MSGPACK, simple_buffer_double)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
double val2;
|
double val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -277,7 +277,7 @@ TEST(MSGPACK, simple_buffer_true)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
bool val2;
|
bool val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -292,7 +292,7 @@ TEST(MSGPACK, simple_buffer_false)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
bool val2;
|
bool val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -314,7 +314,7 @@ TEST(MSGPACK_STL, simple_buffer_string)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
string val2;
|
string val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -334,7 +334,7 @@ TEST(MSGPACK_STL, simple_buffer_vector)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
vector<int> val2;
|
vector<int> val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -354,7 +354,7 @@ TEST(MSGPACK_STL, simple_buffer_map)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
map<int, int> val2;
|
map<int, int> val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -374,7 +374,7 @@ TEST(MSGPACK_STL, simple_buffer_deque)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
deque<int> val2;
|
deque<int> val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -394,7 +394,7 @@ TEST(MSGPACK_STL, simple_buffer_list)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
list<int> val2;
|
list<int> val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -414,7 +414,7 @@ TEST(MSGPACK_STL, simple_buffer_set)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
set<int> val2;
|
set<int> val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -432,7 +432,7 @@ TEST(MSGPACK_STL, simple_buffer_pair)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
pair<int, int> val2;
|
pair<int, int> val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -455,7 +455,7 @@ TEST(MSGPACK_STL, simple_buffer_multimap)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
multimap<int, int> val2;
|
multimap<int, int> val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -485,7 +485,7 @@ TEST(MSGPACK_STL, simple_buffer_multiset)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
multiset<int> val2;
|
multiset<int> val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -520,7 +520,7 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_map)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
tr1::unordered_map<int, int> val2;
|
tr1::unordered_map<int, int> val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -547,7 +547,7 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_multimap)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
tr1::unordered_multimap<int, int> val2;
|
tr1::unordered_multimap<int, int> val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -581,7 +581,7 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_set)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
tr1::unordered_set<int> val2;
|
tr1::unordered_set<int> val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -603,7 +603,7 @@ TEST(MSGPACK_TR1, simple_buffer_tr1_unordered_multiset)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
tr1::unordered_multiset<int> val2;
|
tr1::unordered_multiset<int> val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -760,7 +760,7 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_class)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
TestClass val2;
|
TestClass val2;
|
||||||
val2.i = -1;
|
val2.i = -1;
|
||||||
@ -793,7 +793,7 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_class_old_to_new)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
TestClass2 val2;
|
TestClass2 val2;
|
||||||
val2.i = -1;
|
val2.i = -1;
|
||||||
@ -815,7 +815,7 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_class_new_to_old)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
TestClass val2;
|
TestClass val2;
|
||||||
val2.i = -1;
|
val2.i = -1;
|
||||||
@ -856,7 +856,7 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_enum_member)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
TestEnumMemberClass val2;
|
TestEnumMemberClass val2;
|
||||||
val2.t1 = TestEnumMemberClass::STATE_INVALID;
|
val2.t1 = TestEnumMemberClass::STATE_INVALID;
|
||||||
@ -919,7 +919,7 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_union_member)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
TestUnionMemberClass val2;
|
TestUnionMemberClass val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -934,7 +934,7 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_union_member)
|
|||||||
msgpack::zone z;
|
msgpack::zone z;
|
||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret);
|
||||||
TestUnionMemberClass val2;
|
TestUnionMemberClass val2;
|
||||||
obj.convert(&val2);
|
obj.convert(&val2);
|
||||||
@ -962,7 +962,7 @@ TEST(MSGPACK_USER_DEFINED, simple_buffer_union_member)
|
|||||||
msgpack::zone z; \
|
msgpack::zone z; \
|
||||||
msgpack::object obj; \
|
msgpack::object obj; \
|
||||||
msgpack::unpack_return ret = \
|
msgpack::unpack_return ret = \
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj); \
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj); \
|
||||||
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret); \
|
EXPECT_EQ(msgpack::UNPACK_SUCCESS, ret); \
|
||||||
test_type val2; \
|
test_type val2; \
|
||||||
obj.convert(&val2); \
|
obj.convert(&val2); \
|
||||||
|
@ -37,7 +37,7 @@ TEST(object, convert)
|
|||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
|
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(ret, msgpack::UNPACK_SUCCESS);
|
EXPECT_EQ(ret, msgpack::UNPACK_SUCCESS);
|
||||||
|
|
||||||
myclass m2;
|
myclass m2;
|
||||||
@ -58,7 +58,7 @@ TEST(object, as)
|
|||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
|
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
EXPECT_EQ(ret, msgpack::UNPACK_SUCCESS);
|
EXPECT_EQ(ret, msgpack::UNPACK_SUCCESS);
|
||||||
|
|
||||||
EXPECT_EQ(m1, obj.as<myclass>());
|
EXPECT_EQ(m1, obj.as<myclass>());
|
||||||
|
@ -60,7 +60,7 @@ TEST(unpack, myclass)
|
|||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
|
|
||||||
msgpack::unpack_return ret =
|
msgpack::unpack_return ret =
|
||||||
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, &obj);
|
msgpack::unpack(sbuf.data(), sbuf.size(), NULL, &z, obj);
|
||||||
|
|
||||||
EXPECT_EQ(ret, msgpack::UNPACK_SUCCESS);
|
EXPECT_EQ(ret, msgpack::UNPACK_SUCCESS);
|
||||||
|
|
||||||
@ -105,17 +105,17 @@ TEST(unpack, sequence_compat)
|
|||||||
msgpack::object obj;
|
msgpack::object obj;
|
||||||
msgpack::unpack_return ret;
|
msgpack::unpack_return ret;
|
||||||
|
|
||||||
ret = msgpack::unpack(sbuf.data(), sbuf.size(), &offset, &z, &obj);
|
ret = msgpack::unpack(sbuf.data(), sbuf.size(), &offset, &z, obj);
|
||||||
EXPECT_TRUE(ret >= 0);
|
EXPECT_TRUE(ret >= 0);
|
||||||
EXPECT_EQ(ret, msgpack::UNPACK_EXTRA_BYTES);
|
EXPECT_EQ(ret, msgpack::UNPACK_EXTRA_BYTES);
|
||||||
EXPECT_EQ(1, obj.as<int>());
|
EXPECT_EQ(1, obj.as<int>());
|
||||||
|
|
||||||
ret = msgpack::unpack(sbuf.data(), sbuf.size(), &offset, &z, &obj);
|
ret = msgpack::unpack(sbuf.data(), sbuf.size(), &offset, &z, obj);
|
||||||
EXPECT_TRUE(ret >= 0);
|
EXPECT_TRUE(ret >= 0);
|
||||||
EXPECT_EQ(ret, msgpack::UNPACK_EXTRA_BYTES);
|
EXPECT_EQ(ret, msgpack::UNPACK_EXTRA_BYTES);
|
||||||
EXPECT_EQ(2, obj.as<int>());
|
EXPECT_EQ(2, obj.as<int>());
|
||||||
|
|
||||||
ret = msgpack::unpack(sbuf.data(), sbuf.size(), &offset, &z, &obj);
|
ret = msgpack::unpack(sbuf.data(), sbuf.size(), &offset, &z, obj);
|
||||||
EXPECT_TRUE(ret >= 0);
|
EXPECT_TRUE(ret >= 0);
|
||||||
EXPECT_EQ(ret, msgpack::UNPACK_SUCCESS);
|
EXPECT_EQ(ret, msgpack::UNPACK_SUCCESS);
|
||||||
EXPECT_EQ(3, obj.as<int>());
|
EXPECT_EQ(3, obj.as<int>());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user