diff --git a/erb/v1/cpp03_define_array.hpp.erb b/erb/v1/cpp03_define_array.hpp.erb index cd25214e9..6e3c3c0fe 100644 --- a/erb/v1/cpp03_define_array.hpp.erb +++ b/erb/v1/cpp03_define_array.hpp.erb @@ -75,7 +75,7 @@ struct define_array, A<%=j%><%}%>> { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*<%=i+1%>)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*<%=i+1%>, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = <%=i+1%>; <%0.upto(i) {|j|%> o->via.array.ptr[<%=j%>] = msgpack::object(a<%=j%>, z);<%}%> diff --git a/erb/v1/cpp03_define_map.hpp.erb b/erb/v1/cpp03_define_map.hpp.erb index f7460554d..1440406eb 100644 --- a/erb/v1/cpp03_define_map.hpp.erb +++ b/erb/v1/cpp03_define_map.hpp.erb @@ -82,7 +82,7 @@ struct define_map, A<%=j%><%}%>> { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*<%=(i+1)/2%>)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*<%=(i+1)/2%>, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = <%=(i+1)/2%>; <%0.step(i,2) {|j|%> o->via.map.ptr[<%=j/2%>].key = msgpack::object(a<%=j%>, z); diff --git a/erb/v1/cpp03_msgpack_tuple.hpp.erb b/erb/v1/cpp03_msgpack_tuple.hpp.erb index 3cf624b7f..c4b4a9f72 100644 --- a/erb/v1/cpp03_msgpack_tuple.hpp.erb +++ b/erb/v1/cpp03_msgpack_tuple.hpp.erb @@ -207,7 +207,7 @@ struct object_with_zone, A<%=j%><%}%>> > { msgpack::object::with_zone& o, const type::tuple, A<%=j%><%}%>>& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*<%=i+1%>)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*<%=i+1%>, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = <%=i+1%>; <%0.upto(i) {|j|%> o.via.array.ptr[<%=j%>] = msgpack::object(v.template get<<%=j%>>(), o.zone);<%}%> diff --git a/erb/v1/cpp03_zone.hpp.erb b/erb/v1/cpp03_zone.hpp.erb index ad74b7d6e..f4f85c9be 100644 --- a/erb/v1/cpp03_zone.hpp.erb +++ b/erb/v1/cpp03_zone.hpp.erb @@ -300,7 +300,7 @@ inline std::size_t aligned_size( template , typename A<%=j%><%}%>> T* zone::allocate(<%=(1..i).map{|j|"A#{j} a#{j}"}.join(', ')%>) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { diff --git a/example/cpp03/class_non_intrusive.cpp b/example/cpp03/class_non_intrusive.cpp index c5ada1069..8226f845f 100644 --- a/example/cpp03/class_non_intrusive.cpp +++ b/example/cpp03/class_non_intrusive.cpp @@ -69,7 +69,7 @@ struct object_with_zone { o.type = type::ARRAY; o.via.array.size = 2; o.via.array.ptr = static_cast( - o.zone.allocate_align(sizeof(msgpack::object) * o.via.array.size)); + o.zone.allocate_align(sizeof(msgpack::object) * o.via.array.size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.ptr[0] = msgpack::object(v.get_name(), o.zone); o.via.array.ptr[1] = msgpack::object(v.get_age(), o.zone); } diff --git a/include/msgpack/adaptor/tr1/unordered_map.hpp b/include/msgpack/adaptor/tr1/unordered_map.hpp index 62e77c11f..9c8190e85 100644 --- a/include/msgpack/adaptor/tr1/unordered_map.hpp +++ b/include/msgpack/adaptor/tr1/unordered_map.hpp @@ -84,7 +84,7 @@ struct object_with_zone o.via.map.size = 0; } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size)); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); msgpack::object_kv* const pend = p + size; o.via.map.ptr = p; o.via.map.size = size; @@ -141,7 +141,7 @@ struct object_with_zone(o.zone.allocate_align(sizeof(msgpack::object_kv)*size)); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); msgpack::object_kv* const pend = p + size; o.via.map.ptr = p; o.via.map.size = size; diff --git a/include/msgpack/adaptor/tr1/unordered_set.hpp b/include/msgpack/adaptor/tr1/unordered_set.hpp index fcc76f3f0..dd6c0448f 100644 --- a/include/msgpack/adaptor/tr1/unordered_set.hpp +++ b/include/msgpack/adaptor/tr1/unordered_set.hpp @@ -82,7 +82,7 @@ struct object_with_zone o.via.array.size = 0; } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); msgpack::object* const pend = p + size; o.via.array.ptr = p; o.via.array.size = size; @@ -136,7 +136,7 @@ struct object_with_zone(o.zone.allocate_align(sizeof(msgpack::object)*size)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); msgpack::object* const pend = p + size; o.via.array.ptr = p; o.via.array.size = size; diff --git a/include/msgpack/v1/adaptor/array_ref.hpp b/include/msgpack/v1/adaptor/array_ref.hpp index b5d7304f1..f81df47c0 100644 --- a/include/msgpack/v1/adaptor/array_ref.hpp +++ b/include/msgpack/v1/adaptor/array_ref.hpp @@ -253,7 +253,7 @@ struct object_with_zone > { } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); msgpack::object* const pend = p + size; o.via.array.ptr = p; o.via.array.size = size; @@ -280,7 +280,7 @@ struct object_with_zone > { if (!v.data) { throw msgpack::type_error(); } o.type = msgpack::type::ARRAY; uint32_t size = checked_get_container_size(v.size()); - msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); msgpack::object* const pend = p + size; o.via.array.ptr = p; o.via.array.size = size; diff --git a/include/msgpack/v1/adaptor/boost/fusion.hpp b/include/msgpack/v1/adaptor/boost/fusion.hpp index 29c288ba5..9e46b1abc 100644 --- a/include/msgpack/v1/adaptor/boost/fusion.hpp +++ b/include/msgpack/v1/adaptor/boost/fusion.hpp @@ -132,7 +132,7 @@ struct object_with_zone(o.zone.allocate_align(sizeof(msgpack::object)*size)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = size; uint32_t count = 0; boost::fusion::for_each(v, with_zone_imp(o, count)); diff --git a/include/msgpack/v1/adaptor/carray.hpp b/include/msgpack/v1/adaptor/carray.hpp index c023233b8..323ece009 100644 --- a/include/msgpack/v1/adaptor/carray.hpp +++ b/include/msgpack/v1/adaptor/carray.hpp @@ -151,7 +151,7 @@ struct object_with_zone { void operator()(msgpack::object::with_zone& o, const T(&v)[N]) const { uint32_t size = checked_get_container_size(N); o.type = msgpack::type::ARRAY; - msgpack::object* ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object) * size)); + msgpack::object* ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object) * size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.ptr = ptr; o.via.array.size = size; const T* pv = v; diff --git a/include/msgpack/v1/adaptor/cpp11/array.hpp b/include/msgpack/v1/adaptor/cpp11/array.hpp index 1c01e3e09..1a5ba36bb 100644 --- a/include/msgpack/v1/adaptor/cpp11/array.hpp +++ b/include/msgpack/v1/adaptor/cpp11/array.hpp @@ -119,7 +119,7 @@ struct object_with_zone> { o.via.array.size = 0; } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = size; o.via.array.ptr = p; for (auto const& e : v) *p++ = msgpack::object(e, o.zone); diff --git a/include/msgpack/v1/adaptor/cpp11/forward_list.hpp b/include/msgpack/v1/adaptor/cpp11/forward_list.hpp index 395a1ff1f..c207c0472 100644 --- a/include/msgpack/v1/adaptor/cpp11/forward_list.hpp +++ b/include/msgpack/v1/adaptor/cpp11/forward_list.hpp @@ -76,7 +76,7 @@ struct object_with_zone> { uint32_t size = checked_get_container_size(std::distance(v.begin(), v.end())); o.via.array.size = size; msgpack::object* p = static_cast( - o.zone.allocate_align(sizeof(msgpack::object)*size)); + o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.ptr = p; for(auto const& e : v) *p++ = msgpack::object(e, o.zone); } diff --git a/include/msgpack/v1/adaptor/cpp11/tuple.hpp b/include/msgpack/v1/adaptor/cpp11/tuple.hpp index 5fad147b1..08b14f5c4 100644 --- a/include/msgpack/v1/adaptor/cpp11/tuple.hpp +++ b/include/msgpack/v1/adaptor/cpp11/tuple.hpp @@ -158,7 +158,7 @@ struct object_with_zone> { std::tuple const& v) const { uint32_t size = checked_get_container_size(sizeof...(Args)); o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = size; StdTupleToObjectWithZone::convert(o, v); } diff --git a/include/msgpack/v1/adaptor/cpp11/unordered_map.hpp b/include/msgpack/v1/adaptor/cpp11/unordered_map.hpp index b4de2df5b..bcd8fddc9 100644 --- a/include/msgpack/v1/adaptor/cpp11/unordered_map.hpp +++ b/include/msgpack/v1/adaptor/cpp11/unordered_map.hpp @@ -81,7 +81,7 @@ struct object_with_zone> { o.via.map.size = 0; } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size)); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); msgpack::object_kv* const pend = p + size; o.via.map.ptr = p; o.via.map.size = size; @@ -155,7 +155,7 @@ struct object_with_zone> { o.via.map.size = 0; } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size)); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); msgpack::object_kv* const pend = p + size; o.via.map.ptr = p; o.via.map.size = size; diff --git a/include/msgpack/v1/adaptor/cpp11/unordered_set.hpp b/include/msgpack/v1/adaptor/cpp11/unordered_set.hpp index 3e1da7662..44a3cc3b6 100644 --- a/include/msgpack/v1/adaptor/cpp11/unordered_set.hpp +++ b/include/msgpack/v1/adaptor/cpp11/unordered_set.hpp @@ -78,7 +78,7 @@ struct object_with_zone> { o.via.array.size = 0; } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); msgpack::object* const pend = p + size; o.via.array.ptr = p; o.via.array.size = size; @@ -147,7 +147,7 @@ struct object_with_zone> { o.via.array.size = 0; } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); msgpack::object* const pend = p + size; o.via.array.ptr = p; o.via.array.size = size; diff --git a/include/msgpack/v1/adaptor/deque.hpp b/include/msgpack/v1/adaptor/deque.hpp index 6d42d6d88..41a0bef69 100644 --- a/include/msgpack/v1/adaptor/deque.hpp +++ b/include/msgpack/v1/adaptor/deque.hpp @@ -83,7 +83,7 @@ struct object_with_zone > { o.via.array.size = 0; } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); msgpack::object* const pend = p + size; o.via.array.ptr = p; o.via.array.size = size; diff --git a/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp b/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp index 66e2aa637..c81582926 100644 --- a/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp +++ b/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp @@ -75,7 +75,7 @@ struct define_array { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*1)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*1, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 1; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -118,7 +118,7 @@ struct define_array { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*2)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*2, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 2; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -167,7 +167,7 @@ struct define_array { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*3)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*3, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 3; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -222,7 +222,7 @@ struct define_array { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*4)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*4, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 4; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -283,7 +283,7 @@ struct define_array { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*5)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*5, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 5; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -350,7 +350,7 @@ struct define_array { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*6)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*6, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 6; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -423,7 +423,7 @@ struct define_array { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*7)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*7, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 7; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -502,7 +502,7 @@ struct define_array { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*8)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*8, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 8; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -587,7 +587,7 @@ struct define_array { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*9)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*9, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 9; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -678,7 +678,7 @@ struct define_array { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*10)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*10, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 10; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -775,7 +775,7 @@ struct define_array { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*11)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*11, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 11; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -878,7 +878,7 @@ struct define_array { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*12)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*12, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 12; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -987,7 +987,7 @@ struct define_array { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*13)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*13, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 13; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -1102,7 +1102,7 @@ struct define_array void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*14)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*14, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 14; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -1223,7 +1223,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*15)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*15, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 15; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -1350,7 +1350,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*16)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*16, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 16; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -1483,7 +1483,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*17)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*17, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 17; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -1622,7 +1622,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*18)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*18, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 18; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -1767,7 +1767,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*19)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*19, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 19; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -1918,7 +1918,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*20)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*20, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 20; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -2075,7 +2075,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*21)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*21, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 21; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -2238,7 +2238,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*22)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*22, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 22; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -2407,7 +2407,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*23)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*23, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 23; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -2582,7 +2582,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*24)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*24, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 24; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -2763,7 +2763,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*25)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*25, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 25; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -2950,7 +2950,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*26)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*26, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 26; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -3143,7 +3143,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*27)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*27, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 27; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -3342,7 +3342,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*28)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*28, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 28; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -3547,7 +3547,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*29)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*29, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 29; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -3758,7 +3758,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*30)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*30, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 30; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -3975,7 +3975,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*31)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*31, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 31; o->via.array.ptr[0] = msgpack::object(a0, z); @@ -4198,7 +4198,7 @@ struct define_arraytype = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*32)); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*32, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = 32; o->via.array.ptr[0] = msgpack::object(a0, z); diff --git a/include/msgpack/v1/adaptor/detail/cpp03_define_map.hpp b/include/msgpack/v1/adaptor/detail/cpp03_define_map.hpp index 9e0acddd5..69f347e07 100644 --- a/include/msgpack/v1/adaptor/detail/cpp03_define_map.hpp +++ b/include/msgpack/v1/adaptor/detail/cpp03_define_map.hpp @@ -83,7 +83,7 @@ struct define_map { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*1)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*1, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 1; o->via.map.ptr[0].key = msgpack::object(a0, z); @@ -142,7 +142,7 @@ struct define_map { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*2)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*2, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 2; o->via.map.ptr[0].key = msgpack::object(a0, z); @@ -215,7 +215,7 @@ struct define_map { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*3)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*3, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 3; o->via.map.ptr[0].key = msgpack::object(a0, z); @@ -302,7 +302,7 @@ struct define_map { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*4)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*4, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 4; o->via.map.ptr[0].key = msgpack::object(a0, z); @@ -403,7 +403,7 @@ struct define_map { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*5)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*5, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 5; o->via.map.ptr[0].key = msgpack::object(a0, z); @@ -518,7 +518,7 @@ struct define_map { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*6)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*6, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 6; o->via.map.ptr[0].key = msgpack::object(a0, z); @@ -647,7 +647,7 @@ struct define_map { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*7)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*7, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 7; o->via.map.ptr[0].key = msgpack::object(a0, z); @@ -790,7 +790,7 @@ struct define_maptype = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*8)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*8, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 8; o->via.map.ptr[0].key = msgpack::object(a0, z); @@ -947,7 +947,7 @@ struct define_maptype = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*9)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*9, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 9; o->via.map.ptr[0].key = msgpack::object(a0, z); @@ -1118,7 +1118,7 @@ struct define_maptype = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*10)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*10, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 10; o->via.map.ptr[0].key = msgpack::object(a0, z); @@ -1303,7 +1303,7 @@ struct define_maptype = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*11)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*11, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 11; o->via.map.ptr[0].key = msgpack::object(a0, z); @@ -1502,7 +1502,7 @@ struct define_maptype = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*12)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*12, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 12; o->via.map.ptr[0].key = msgpack::object(a0, z); @@ -1715,7 +1715,7 @@ struct define_maptype = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*13)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*13, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 13; o->via.map.ptr[0].key = msgpack::object(a0, z); @@ -1942,7 +1942,7 @@ struct define_maptype = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*14)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*14, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 14; o->via.map.ptr[0].key = msgpack::object(a0, z); @@ -2183,7 +2183,7 @@ struct define_maptype = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*15)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*15, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 15; o->via.map.ptr[0].key = msgpack::object(a0, z); @@ -2438,7 +2438,7 @@ struct define_maptype = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*16)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*16, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = 16; o->via.map.ptr[0].key = msgpack::object(a0, z); diff --git a/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp b/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp index f10a2d77c..88a0b3b55 100644 --- a/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp +++ b/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp @@ -13506,7 +13506,7 @@ struct object_with_zone > { msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*1)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*1, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 1; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13519,7 +13519,7 @@ struct object_with_zone > { msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*2)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*2, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 2; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13533,7 +13533,7 @@ struct object_with_zone > { msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*3)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*3, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 3; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13548,7 +13548,7 @@ struct object_with_zone > { msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*4)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*4, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 4; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13564,7 +13564,7 @@ struct object_with_zone > { msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*5)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*5, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 5; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13581,7 +13581,7 @@ struct object_with_zone > { msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*6)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*6, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 6; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13599,7 +13599,7 @@ struct object_with_zone > { msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*7)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*7, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 7; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13618,7 +13618,7 @@ struct object_with_zone > { msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*8)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*8, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 8; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13638,7 +13638,7 @@ struct object_with_zone > { msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*9)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*9, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 9; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13659,7 +13659,7 @@ struct object_with_zone > { msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*10)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*10, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 10; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13681,7 +13681,7 @@ struct object_with_zone msgpack::object::with_zone& o, const type::tuple& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*11)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*11, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 11; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13704,7 +13704,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*12)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*12, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 12; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13728,7 +13728,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*13)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*13, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 13; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13753,7 +13753,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*14)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*14, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 14; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13779,7 +13779,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*15)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*15, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 15; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13806,7 +13806,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*16)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*16, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 16; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13834,7 +13834,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*17)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*17, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 17; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13863,7 +13863,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*18)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*18, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 18; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13893,7 +13893,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*19)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*19, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 19; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13924,7 +13924,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*20)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*20, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 20; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13956,7 +13956,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*21)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*21, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 21; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -13989,7 +13989,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*22)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*22, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 22; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -14023,7 +14023,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*23)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*23, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 23; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -14058,7 +14058,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*24)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*24, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 24; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -14094,7 +14094,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*25)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*25, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 25; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -14131,7 +14131,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*26)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*26, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 26; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -14169,7 +14169,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*27)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*27, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 27; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -14208,7 +14208,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*28)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*28, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 28; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -14248,7 +14248,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*29)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*29, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 29; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -14289,7 +14289,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*30)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*30, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 30; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -14331,7 +14331,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*31)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*31, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 31; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); @@ -14374,7 +14374,7 @@ struct object_with_zone& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*32)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*32, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = 32; o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone); diff --git a/include/msgpack/v1/adaptor/detail/cpp11_define_array.hpp b/include/msgpack/v1/adaptor/detail/cpp11_define_array.hpp index b51a4f6d6..702fea455 100644 --- a/include/msgpack/v1/adaptor/detail/cpp11_define_array.hpp +++ b/include/msgpack/v1/adaptor/detail/cpp11_define_array.hpp @@ -77,7 +77,7 @@ struct define_array { void msgpack_object(msgpack::object* o, msgpack::zone& z) const { o->type = msgpack::type::ARRAY; - o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*sizeof...(Args))); + o->via.array.ptr = static_cast(z.allocate_align(sizeof(msgpack::object)*sizeof...(Args), MSGPACK_ZONE_ALIGNOF(msgpack::object))); o->via.array.size = sizeof...(Args); define_array_imp, sizeof...(Args)>::object(o, z, a); diff --git a/include/msgpack/v1/adaptor/detail/cpp11_define_map.hpp b/include/msgpack/v1/adaptor/detail/cpp11_define_map.hpp index 022b8ad6e..0fca1d870 100644 --- a/include/msgpack/v1/adaptor/detail/cpp11_define_map.hpp +++ b/include/msgpack/v1/adaptor/detail/cpp11_define_map.hpp @@ -83,7 +83,7 @@ struct define_map { { static_assert(sizeof...(Args) % 2 == 0, ""); o->type = msgpack::type::MAP; - o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*sizeof...(Args)/2)); + o->via.map.ptr = static_cast(z.allocate_align(sizeof(msgpack::object_kv)*sizeof...(Args)/2, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); o->via.map.size = sizeof...(Args) / 2; define_map_imp, sizeof...(Args)>::object(o, z, a); diff --git a/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp b/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp index 1a0a3760f..9aa0c31a4 100644 --- a/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp +++ b/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp @@ -203,7 +203,7 @@ template msgpack::object::with_zone& o, msgpack::type::tuple const& v) const { o.type = msgpack::type::ARRAY; - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*sizeof...(Args))); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*sizeof...(Args), MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = sizeof...(Args); MsgpackTupleToObjectWithZone::convert(o, v); } diff --git a/include/msgpack/v1/adaptor/list.hpp b/include/msgpack/v1/adaptor/list.hpp index 4d68065c5..d16c8d219 100644 --- a/include/msgpack/v1/adaptor/list.hpp +++ b/include/msgpack/v1/adaptor/list.hpp @@ -81,7 +81,7 @@ struct object_with_zone > { } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); msgpack::object* const pend = p + size; o.via.array.ptr = p; o.via.array.size = size; diff --git a/include/msgpack/v1/adaptor/map.hpp b/include/msgpack/v1/adaptor/map.hpp index 97dd5c09c..2c1793e16 100644 --- a/include/msgpack/v1/adaptor/map.hpp +++ b/include/msgpack/v1/adaptor/map.hpp @@ -109,7 +109,7 @@ struct object_with_zone > { } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size)); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); msgpack::object_kv* const pend = p + size; o.via.map.ptr = p; o.via.map.size = size; @@ -195,7 +195,7 @@ struct object_with_zone > { else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size)); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); msgpack::object_kv* const pend = p + size; o.via.map.ptr = p; o.via.map.size = size; @@ -288,7 +288,7 @@ struct object_with_zone > { } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size)); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); msgpack::object_kv* const pend = p + size; o.via.map.ptr = p; o.via.map.size = size; diff --git a/include/msgpack/v1/adaptor/pair.hpp b/include/msgpack/v1/adaptor/pair.hpp index 700a93b04..890abc2b8 100644 --- a/include/msgpack/v1/adaptor/pair.hpp +++ b/include/msgpack/v1/adaptor/pair.hpp @@ -64,7 +64,7 @@ template struct object_with_zone > { void operator()(msgpack::object::with_zone& o, const std::pair& v) const { o.type = msgpack::type::ARRAY; - msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*2)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*2, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.ptr = p; o.via.array.size = 2; p[0] = msgpack::object(v.first, o.zone); diff --git a/include/msgpack/v1/adaptor/set.hpp b/include/msgpack/v1/adaptor/set.hpp index fb98f8000..96abe25f0 100644 --- a/include/msgpack/v1/adaptor/set.hpp +++ b/include/msgpack/v1/adaptor/set.hpp @@ -87,7 +87,7 @@ struct object_with_zone > { } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); msgpack::object* const pend = p + size; o.via.array.ptr = p; o.via.array.size = size; @@ -163,7 +163,7 @@ struct object_with_zone > { o.via.array.size = 0; } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); msgpack::object* const pend = p + size; o.via.array.ptr = p; o.via.array.size = size; diff --git a/include/msgpack/v1/adaptor/tr1/unordered_map.hpp b/include/msgpack/v1/adaptor/tr1/unordered_map.hpp index 62e77c11f..9c8190e85 100644 --- a/include/msgpack/v1/adaptor/tr1/unordered_map.hpp +++ b/include/msgpack/v1/adaptor/tr1/unordered_map.hpp @@ -84,7 +84,7 @@ struct object_with_zone o.via.map.size = 0; } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size)); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); msgpack::object_kv* const pend = p + size; o.via.map.ptr = p; o.via.map.size = size; @@ -141,7 +141,7 @@ struct object_with_zone(o.zone.allocate_align(sizeof(msgpack::object_kv)*size)); + msgpack::object_kv* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); msgpack::object_kv* const pend = p + size; o.via.map.ptr = p; o.via.map.size = size; diff --git a/include/msgpack/v1/adaptor/tr1/unordered_set.hpp b/include/msgpack/v1/adaptor/tr1/unordered_set.hpp index fcc76f3f0..dd6c0448f 100644 --- a/include/msgpack/v1/adaptor/tr1/unordered_set.hpp +++ b/include/msgpack/v1/adaptor/tr1/unordered_set.hpp @@ -82,7 +82,7 @@ struct object_with_zone o.via.array.size = 0; } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); msgpack::object* const pend = p + size; o.via.array.ptr = p; o.via.array.size = size; @@ -136,7 +136,7 @@ struct object_with_zone(o.zone.allocate_align(sizeof(msgpack::object)*size)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); msgpack::object* const pend = p + size; o.via.array.ptr = p; o.via.array.size = size; diff --git a/include/msgpack/v1/adaptor/vector.hpp b/include/msgpack/v1/adaptor/vector.hpp index b23a18c17..2a0345b12 100644 --- a/include/msgpack/v1/adaptor/vector.hpp +++ b/include/msgpack/v1/adaptor/vector.hpp @@ -89,7 +89,7 @@ struct object_with_zone > { } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); msgpack::object* const pend = p + size; o.via.array.ptr = p; o.via.array.size = size; diff --git a/include/msgpack/v1/adaptor/vector_bool.hpp b/include/msgpack/v1/adaptor/vector_bool.hpp index d1b213612..d6ec24592 100644 --- a/include/msgpack/v1/adaptor/vector_bool.hpp +++ b/include/msgpack/v1/adaptor/vector_bool.hpp @@ -65,7 +65,7 @@ struct object_with_zone > { o.via.array.size = 0; } else { uint32_t size = checked_get_container_size(v.size()); - msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size)); + msgpack::object* p = static_cast(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); msgpack::object* const pend = p + size; o.via.array.ptr = p; o.via.array.size = size; diff --git a/include/msgpack/v1/detail/cpp03_zone.hpp b/include/msgpack/v1/detail/cpp03_zone.hpp index 17bff2e2b..3b0bd238e 100644 --- a/include/msgpack/v1/detail/cpp03_zone.hpp +++ b/include/msgpack/v1/detail/cpp03_zone.hpp @@ -345,7 +345,7 @@ inline std::size_t aligned_size( template T* zone::allocate() { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { @@ -364,7 +364,7 @@ T* zone::allocate() template T* zone::allocate(A1 a1) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { @@ -383,7 +383,7 @@ T* zone::allocate(A1 a1) template T* zone::allocate(A1 a1, A2 a2) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { @@ -402,7 +402,7 @@ T* zone::allocate(A1 a1, A2 a2) template T* zone::allocate(A1 a1, A2 a2, A3 a3) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { @@ -421,7 +421,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3) template T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { @@ -440,7 +440,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4) template T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { @@ -459,7 +459,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) template T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { @@ -478,7 +478,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) template T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { @@ -497,7 +497,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) template T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { @@ -516,7 +516,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) template T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { @@ -535,7 +535,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) template T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { @@ -554,7 +554,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, template T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { @@ -573,7 +573,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, template T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { @@ -592,7 +592,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, template T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { @@ -611,7 +611,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, template T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { @@ -630,7 +630,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, template T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14, A15 a15) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { diff --git a/include/msgpack/v1/detail/cpp03_zone_decl.hpp b/include/msgpack/v1/detail/cpp03_zone_decl.hpp index fd087ffa7..81825d0ec 100644 --- a/include/msgpack/v1/detail/cpp03_zone_decl.hpp +++ b/include/msgpack/v1/detail/cpp03_zone_decl.hpp @@ -24,6 +24,11 @@ #define MSGPACK_ZONE_ALIGN sizeof(void*) #endif +#if defined(_MSC_VER) +#define MSGPACK_ZONE_ALIGNOF(type) __alignof(type) +#else +#define MSGPACK_ZONE_ALIGNOF(type) __alignof__(type) +#endif namespace msgpack { diff --git a/include/msgpack/v1/detail/cpp11_zone.hpp b/include/msgpack/v1/detail/cpp11_zone.hpp index 377e90726..84dfea540 100644 --- a/include/msgpack/v1/detail/cpp11_zone.hpp +++ b/include/msgpack/v1/detail/cpp11_zone.hpp @@ -184,7 +184,6 @@ class zone { void swap(zone& o); - static void* operator new(std::size_t size) { void* p = ::malloc(size); @@ -329,7 +328,7 @@ inline void zone::undo_allocate(size_t size) template T* zone::allocate(Args... args) { - void* x = allocate_align(sizeof(T)); + void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T)); try { m_finalizer_array.push(&zone::object_destruct, x); } catch (...) { diff --git a/include/msgpack/v1/detail/cpp11_zone_decl.hpp b/include/msgpack/v1/detail/cpp11_zone_decl.hpp index c2614e577..532c0a6ff 100644 --- a/include/msgpack/v1/detail/cpp11_zone_decl.hpp +++ b/include/msgpack/v1/detail/cpp11_zone_decl.hpp @@ -26,6 +26,12 @@ #define MSGPACK_ZONE_ALIGN sizeof(void*) #endif +#if defined(_MSC_VER) +#define MSGPACK_ZONE_ALIGNOF(type) __alignof(type) +#else +#define MSGPACK_ZONE_ALIGNOF(type) __alignof__(type) +#endif + namespace msgpack { /// @cond diff --git a/include/msgpack/v1/object.hpp b/include/msgpack/v1/object.hpp index 1dd14d19b..a04059feb 100644 --- a/include/msgpack/v1/object.hpp +++ b/include/msgpack/v1/object.hpp @@ -154,13 +154,14 @@ inline std::size_t aligned_zone_size(msgpack::object const& obj) { break; case msgpack::type::EXT: s += msgpack::aligned_size( - detail::add_ext_type_size(obj.via.ext.size)); + detail::add_ext_type_size(obj.via.ext.size), + MSGPACK_ZONE_ALIGNOF(msgpack::object)); break; case msgpack::type::STR: - s += msgpack::aligned_size(obj.via.str.size); + s += msgpack::aligned_size(obj.via.str.size, MSGPACK_ZONE_ALIGNOF(msgpack::object)); break; case msgpack::type::BIN: - s += msgpack::aligned_size(obj.via.bin.size); + s += msgpack::aligned_size(obj.via.bin.size, MSGPACK_ZONE_ALIGNOF(msgpack::object)); break; default: break; @@ -344,7 +345,7 @@ struct object_with_zone { } case msgpack::type::ARRAY: - o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object) * v.via.array.size)); + o.via.array.ptr = static_cast(o.zone.allocate_align(sizeof(msgpack::object) * v.via.array.size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); o.via.array.size = v.via.array.size; for (msgpack::object * po(o.via.array.ptr), @@ -357,7 +358,7 @@ struct object_with_zone { return; case msgpack::type::MAP: - o.via.map.ptr = (msgpack::object_kv*)o.zone.allocate_align(sizeof(msgpack::object_kv) * v.via.map.size); + o.via.map.ptr = (msgpack::object_kv*)o.zone.allocate_align(sizeof(msgpack::object_kv) * v.via.map.size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)); o.via.map.size = v.via.map.size; for(msgpack::object_kv * po(o.via.map.ptr), diff --git a/include/msgpack/v1/unpack.hpp b/include/msgpack/v1/unpack.hpp index 1eb558204..c7bf59969 100644 --- a/include/msgpack/v1/unpack.hpp +++ b/include/msgpack/v1/unpack.hpp @@ -117,7 +117,7 @@ struct unpack_array { if (size / sizeof(msgpack::object) != n) { throw msgpack::array_size_overflow("array size overflow"); } - o.via.array.ptr = static_cast(u.zone().allocate_align(size)); + o.via.array.ptr = static_cast(u.zone().allocate_align(size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); } }; @@ -139,7 +139,7 @@ struct unpack_map { if (size / sizeof(msgpack::object_kv) != n) { throw msgpack::map_size_overflow("map size overflow"); } - o.via.map.ptr = static_cast(u.zone().allocate_align(size)); + o.via.map.ptr = static_cast(u.zone().allocate_align(size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); } }; @@ -164,7 +164,7 @@ inline void unpack_str(unpack_user& u, const char* p, uint32_t l, msgpack::objec } else { if (l > u.limit().str()) throw msgpack::str_size_overflow("str size overflow"); - char* tmp = static_cast(u.zone().allocate_align(l)); + char* tmp = static_cast(u.zone().allocate_align(l, MSGPACK_ZONE_ALIGNOF(char))); std::memcpy(tmp, p, l); o.via.str.ptr = tmp; } @@ -180,7 +180,7 @@ inline void unpack_bin(unpack_user& u, const char* p, uint32_t l, msgpack::objec } else { if (l > u.limit().bin()) throw msgpack::bin_size_overflow("bin size overflow"); - char* tmp = static_cast(u.zone().allocate_align(l)); + char* tmp = static_cast(u.zone().allocate_align(l, MSGPACK_ZONE_ALIGNOF(char))); std::memcpy(tmp, p, l); o.via.bin.ptr = tmp; } @@ -196,7 +196,7 @@ inline void unpack_ext(unpack_user& u, const char* p, std::size_t l, msgpack::ob } else { if (l > u.limit().ext()) throw msgpack::ext_size_overflow("ext size overflow"); - char* tmp = static_cast(u.zone().allocate_align(l)); + char* tmp = static_cast(u.zone().allocate_align(l, MSGPACK_ZONE_ALIGNOF(char))); std::memcpy(tmp, p, l); o.via.ext.ptr = tmp; } diff --git a/include/msgpack/v2/create_object_visitor.hpp b/include/msgpack/v2/create_object_visitor.hpp index 2c11cf2fd..9868a994d 100644 --- a/include/msgpack/v2/create_object_visitor.hpp +++ b/include/msgpack/v2/create_object_visitor.hpp @@ -113,7 +113,7 @@ class create_object_visitor : public msgpack::v2::null_visitor { set_referenced(true); } else { - char* tmp = static_cast(zone().allocate_align(size)); + char* tmp = static_cast(zone().allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); std::memcpy(tmp, v, size); obj->via.str.ptr = tmp; } @@ -129,7 +129,7 @@ class create_object_visitor : public msgpack::v2::null_visitor { set_referenced(true); } else { - char* tmp = static_cast(zone().allocate_align(size)); + char* tmp = static_cast(zone().allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); std::memcpy(tmp, v, size); obj->via.bin.ptr = tmp; } @@ -145,7 +145,7 @@ class create_object_visitor : public msgpack::v2::null_visitor { set_referenced(true); } else { - char* tmp = static_cast(zone().allocate_align(size)); + char* tmp = static_cast(zone().allocate_align(size, MSGPACK_ZONE_ALIGNOF(char))); std::memcpy(tmp, v, size); obj->via.ext.ptr = tmp; } @@ -167,7 +167,7 @@ class create_object_visitor : public msgpack::v2::null_visitor { throw msgpack::array_size_overflow("array size overflow"); } obj->via.array.ptr = - static_cast(m_zone->allocate_align(size)); + static_cast(m_zone->allocate_align(size, MSGPACK_ZONE_ALIGNOF(msgpack::object))); } m_stack.push_back(obj->via.array.ptr); return true; @@ -198,7 +198,7 @@ class create_object_visitor : public msgpack::v2::null_visitor { throw msgpack::map_size_overflow("map size overflow"); } obj->via.map.ptr = - static_cast(m_zone->allocate_align(size)); + static_cast(m_zone->allocate_align(size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv))); } m_stack.push_back(reinterpret_cast(obj->via.map.ptr)); return true; diff --git a/include/msgpack/v2/unpack.hpp b/include/msgpack/v2/unpack.hpp index c28200798..56560c5b2 100644 --- a/include/msgpack/v2/unpack.hpp +++ b/include/msgpack/v2/unpack.hpp @@ -20,6 +20,7 @@ namespace msgpack { MSGPACK_API_VERSION_NAMESPACE(v2) { /// @endcond + struct zone_push_finalizer { zone_push_finalizer(msgpack::zone& z):m_z(&z) {} void set_zone(msgpack::zone& z) { m_z = &z; } diff --git a/test/object.cpp b/test/object.cpp index 4bb4b8bd4..1fd19451b 100644 --- a/test/object.cpp +++ b/test/object.cpp @@ -181,7 +181,7 @@ TEST(object, cross_zone_copy_ext) msgpack::object::with_zone obj1(z1); obj1.type = msgpack::type::EXT; - char* ptr = static_cast(obj1.zone.allocate_align(2)); + char* ptr = static_cast(obj1.zone.allocate_align(2, MSGPACK_ZONE_ALIGNOF(char))); ptr[0] = 1; ptr[1] = 2; obj1.via.ext.ptr = ptr; @@ -204,7 +204,7 @@ TEST(object, cross_zone_copy_construct_ext) msgpack::object::with_zone obj1(z1); obj1.type = msgpack::type::EXT; - char* ptr = static_cast(obj1.zone.allocate_align(2)); + char* ptr = static_cast(obj1.zone.allocate_align(2, MSGPACK_ZONE_ALIGNOF(char))); ptr[0] = 1; ptr[1] = 2; obj1.via.ext.ptr = ptr;