Modified zone* to zone&.

This commit is contained in:
Takatoshi Kondo
2013-09-04 16:00:36 +09:00
parent 72b3064a67
commit bad3801eae
5 changed files with 44 additions and 43 deletions

View File

@@ -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;
} }

View File

@@ -50,8 +50,9 @@ namespace detail {
class unpack_user { class unpack_user {
public: public:
zone* z() const { return z_; } zone const& z() const { return *z_; }
void set_z(zone* z) { z_ = z; } zone& z() { return *z_; }
void set_z(zone& z) { z_ = &z; }
bool referenced() const { return referenced_; } bool referenced() const { return referenced_; }
void set_referenced(bool referenced) { referenced_ = referenced; } void set_referenced(bool referenced) { referenced_ = referenced; }
private: private:
@@ -109,7 +110,7 @@ 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;
} }
@@ -121,7 +122,7 @@ 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;
} }
@@ -684,7 +685,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
@@ -719,7 +720,7 @@ inline unpacker::unpacker(size_t initial_buffer_size)
detail::init_count(buffer_); detail::init_count(buffer_);
ctx_.init(); ctx_.init();
ctx_.user().set_z(z_); ctx_.user().set_z(*z_);
ctx_.user().set_referenced(false); ctx_.user().set_referenced(false);
} }
@@ -876,7 +877,7 @@ inline zone* unpacker::release_zone()
zone* old = z_; zone* old = z_;
z_ = r; z_ = r;
ctx_.user().set_z(z_); ctx_.user().set_z(*z_);
return old; return old;
} }
@@ -943,7 +944,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; }
@@ -988,7 +989,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, obj);
switch(ret) { switch(ret) {
@@ -1014,7 +1015,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 +1026,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;

View File

@@ -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); \

View File

@@ -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>());

View File

@@ -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>());