mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-10-15 23:20:08 +02:00
Replaced zone* member variable in object with zone&.
Added msgpack::object::with_zone tests. Added tuples operator<<'s parameter to const. Fixed array object::with_zone pointer and size unset problem. Fixed forward_list object::with_zone pointer and size unset problem.
This commit is contained in:
@@ -112,6 +112,10 @@ struct object {
|
||||
template <typename T>
|
||||
explicit object(const T& v);
|
||||
|
||||
template <typename T>
|
||||
object(const T& v, zone& z);
|
||||
|
||||
// obsolete
|
||||
template <typename T>
|
||||
object(const T& v, zone* z);
|
||||
|
||||
@@ -135,8 +139,8 @@ struct object_kv {
|
||||
};
|
||||
|
||||
struct object::with_zone : object {
|
||||
with_zone(msgpack::zone* zone) : zone(zone) { }
|
||||
msgpack::zone* zone;
|
||||
with_zone(msgpack::zone& zone) : zone(zone) { }
|
||||
msgpack::zone& zone;
|
||||
private:
|
||||
with_zone();
|
||||
};
|
||||
@@ -367,7 +371,7 @@ inline object& object::operator=(const T& v)
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
object::object(const T& v, zone* z)
|
||||
object::object(const T& v, zone& z)
|
||||
{
|
||||
with_zone oz(z);
|
||||
oz << v;
|
||||
@@ -375,6 +379,15 @@ object::object(const T& v, zone* z)
|
||||
via = oz.via;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
object::object(const T& v, zone* z)
|
||||
{
|
||||
with_zone oz(*z);
|
||||
oz << v;
|
||||
type = oz.type;
|
||||
via = oz.via;
|
||||
}
|
||||
|
||||
|
||||
inline object::object(msgpack_object o)
|
||||
{
|
||||
|
Reference in New Issue
Block a user