mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-10-21 07:45:02 +02:00
Compare commits
22 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
fd4e28f23d | ||
![]() |
2098062613 | ||
![]() |
22bc707035 | ||
![]() |
7ad743f2da | ||
![]() |
315bbd4b40 | ||
![]() |
288a6b2e31 | ||
![]() |
a0e4294b5a | ||
![]() |
64baa15f8e | ||
![]() |
354ee5b9a3 | ||
![]() |
2ddd79499c | ||
![]() |
7f0614e998 | ||
![]() |
150d74508e | ||
![]() |
8674c821c4 | ||
![]() |
10be66712d | ||
![]() |
2698cfc254 | ||
![]() |
333ee98ab2 | ||
![]() |
156e315394 | ||
![]() |
01fedf847b | ||
![]() |
56db4475f2 | ||
![]() |
f065c2a447 | ||
![]() |
ba4d8df63e | ||
![]() |
b4786711df |
@@ -1,3 +1,11 @@
|
|||||||
|
# 2017-08-03 version 2.1.4
|
||||||
|
* Add boost asio examples (including zlib) (#610)
|
||||||
|
* Remove some warnings (#611)
|
||||||
|
* Fix unpack visitor to treat float32/64 correctly (#613)
|
||||||
|
* Improve documents (#616)
|
||||||
|
* Fix alignment problem on some platform (#617, #518)
|
||||||
|
* Fix conflict std::tuple, std::pair, and boost::fusion::sequence problem (#619)
|
||||||
|
|
||||||
# 2017-06-15 version 2.1.3
|
# 2017-06-15 version 2.1.3
|
||||||
* Improve build system (#603)
|
* Improve build system (#603)
|
||||||
* Add C++17 adaptors `std::optional` and `std::string_view`. (#607, #608)
|
* Add C++17 adaptors `std::optional` and `std::string_view`. (#607, #608)
|
||||||
|
@@ -259,7 +259,12 @@ ENDIF ()
|
|||||||
|
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC90" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC10")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC90" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC10")
|
||||||
SET_SOURCE_FILES_PROPERTIES(${msgpackc_SOURCES} PROPERTIES LANGUAGE CXX)
|
SET_SOURCE_FILES_PROPERTIES(${msgpackc_SOURCES} PROPERTIES LANGUAGE CXX)
|
||||||
ENDIF()
|
ENDIF ()
|
||||||
|
|
||||||
|
IF ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "sparc")
|
||||||
|
SET (CMAKE_C_FLAGS "-DMSGPACK_ZONE_ALIGN=8 ${CMAKE_C_FLAGS}")
|
||||||
|
SET (CMAKE_CXX_FLAGS "-DMSGPACK_ZONE_ALIGN=8 ${CMAKE_CXX_FLAGS}")
|
||||||
|
ENDIF ()
|
||||||
|
|
||||||
IF (NOT DEFINED CMAKE_INSTALL_BINDIR)
|
IF (NOT DEFINED CMAKE_INSTALL_BINDIR)
|
||||||
SET(CMAKE_INSTALL_BINDIR bin)
|
SET(CMAKE_INSTALL_BINDIR bin)
|
||||||
|
@@ -96,7 +96,7 @@ int main(void) {
|
|||||||
/* deserializes it. */
|
/* deserializes it. */
|
||||||
msgpack_unpacked msg;
|
msgpack_unpacked msg;
|
||||||
msgpack_unpacked_init(&msg);
|
msgpack_unpacked_init(&msg);
|
||||||
bool success = msgpack_unpack_next(&msg, buffer->data, buffer->size, NULL);
|
msgpack_unpack_return ret = msgpack_unpack_next(&msg, buffer->data, buffer->size, NULL);
|
||||||
|
|
||||||
/* prints the deserialized object. */
|
/* prints the deserialized object. */
|
||||||
msgpack_object obj = msg.data;
|
msgpack_object obj = msg.data;
|
||||||
@@ -137,7 +137,7 @@ int main(void) {
|
|||||||
/* deserializes it. */
|
/* deserializes it. */
|
||||||
msgpack_unpacked msg;
|
msgpack_unpacked msg;
|
||||||
msgpack_unpacked_init(&msg);
|
msgpack_unpacked_init(&msg);
|
||||||
bool success = msgpack_unpack_next(&msg, buffer->data, buffer->size, NULL);
|
msgpack_unpack_return ret = msgpack_unpack_next(&msg, buffer->data, buffer->size, NULL);
|
||||||
|
|
||||||
/* prints the deserialized object. */
|
/* prints the deserialized object. */
|
||||||
msgpack_object obj = msg.data;
|
msgpack_object obj = msg.data;
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
version: 2.1.3.{build}
|
version: 2.1.4.{build}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
- Visual Studio 2015
|
- Visual Studio 2015
|
||||||
|
@@ -75,7 +75,7 @@ struct define_array<A0<%1.upto(i) {|j|%>, A<%=j%><%}%>> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*<%=i+1%>));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*<%=i+1%>, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = <%=i+1%>;
|
o->via.array.size = <%=i+1%>;
|
||||||
<%0.upto(i) {|j|%>
|
<%0.upto(i) {|j|%>
|
||||||
o->via.array.ptr[<%=j%>] = msgpack::object(a<%=j%>, z);<%}%>
|
o->via.array.ptr[<%=j%>] = msgpack::object(a<%=j%>, z);<%}%>
|
||||||
|
@@ -82,7 +82,7 @@ struct define_map<A0<%1.upto(i) {|j|%>, A<%=j%><%}%>> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*<%=(i+1)/2%>));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*<%=(i+1)/2%>, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = <%=(i+1)/2%>;
|
o->via.map.size = <%=(i+1)/2%>;
|
||||||
<%0.step(i,2) {|j|%>
|
<%0.step(i,2) {|j|%>
|
||||||
o->via.map.ptr[<%=j/2%>].key = msgpack::object(a<%=j%>, z);
|
o->via.map.ptr[<%=j/2%>].key = msgpack::object(a<%=j%>, z);
|
||||||
|
@@ -207,7 +207,7 @@ struct object_with_zone<type::tuple<A0<%1.upto(i) {|j|%>, A<%=j%><%}%>> > {
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0<%1.upto(i) {|j|%>, A<%=j%><%}%>>& v) const {
|
const type::tuple<A0<%1.upto(i) {|j|%>, A<%=j%><%}%>>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*<%=i+1%>));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*<%=i+1%>, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = <%=i+1%>;
|
o.via.array.size = <%=i+1%>;
|
||||||
<%0.upto(i) {|j|%>
|
<%0.upto(i) {|j|%>
|
||||||
o.via.array.ptr[<%=j%>] = msgpack::object(v.template get<<%=j%>>(), o.zone);<%}%>
|
o.via.array.ptr[<%=j%>] = msgpack::object(v.template get<<%=j%>>(), o.zone);<%}%>
|
||||||
|
@@ -178,7 +178,9 @@ private:
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
static void object_delete(void* obj);
|
static void object_delete(void* obj);
|
||||||
|
|
||||||
void* allocate_expand(size_t size);
|
static char* get_aligned(char* ptr, size_t align);
|
||||||
|
|
||||||
|
char* allocate_expand(size_t size);
|
||||||
private:
|
private:
|
||||||
zone(const zone&);
|
zone(const zone&);
|
||||||
zone& operator=(const zone&);
|
zone& operator=(const zone&);
|
||||||
@@ -188,37 +190,42 @@ inline zone::zone(size_t chunk_size) /* throw() */ :m_chunk_size(chunk_size), m_
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void* zone::allocate_align(size_t size, size_t align)
|
inline char* zone::get_aligned(char* ptr, size_t align)
|
||||||
{
|
{
|
||||||
char* aligned =
|
return
|
||||||
reinterpret_cast<char*>(
|
reinterpret_cast<char*>(
|
||||||
reinterpret_cast<size_t>(
|
reinterpret_cast<size_t>(
|
||||||
(m_chunk_list.m_ptr + (align - 1))) / align * align);
|
(ptr + (align - 1))) / align * align);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void* zone::allocate_align(size_t size, size_t align)
|
||||||
|
{
|
||||||
|
char* aligned = get_aligned(m_chunk_list.m_ptr, align);
|
||||||
size_t adjusted_size = size + (aligned - m_chunk_list.m_ptr);
|
size_t adjusted_size = size + (aligned - m_chunk_list.m_ptr);
|
||||||
if(m_chunk_list.m_free >= adjusted_size) {
|
if (m_chunk_list.m_free < adjusted_size) {
|
||||||
m_chunk_list.m_free -= adjusted_size;
|
size_t enough_size = size + align - 1;
|
||||||
m_chunk_list.m_ptr += adjusted_size;
|
char* ptr = allocate_expand(enough_size);
|
||||||
return aligned;
|
aligned = get_aligned(ptr, align);
|
||||||
|
adjusted_size = size + (aligned - m_chunk_list.m_ptr);
|
||||||
}
|
}
|
||||||
return reinterpret_cast<char*>(
|
m_chunk_list.m_free -= adjusted_size;
|
||||||
reinterpret_cast<size_t>(
|
m_chunk_list.m_ptr += adjusted_size;
|
||||||
allocate_expand(size + (align - 1))) / align * align);
|
return aligned;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void* zone::allocate_no_align(size_t size)
|
inline void* zone::allocate_no_align(size_t size)
|
||||||
{
|
{
|
||||||
if(m_chunk_list.m_free < size) {
|
|
||||||
return allocate_expand(size);
|
|
||||||
}
|
|
||||||
|
|
||||||
char* ptr = m_chunk_list.m_ptr;
|
char* ptr = m_chunk_list.m_ptr;
|
||||||
|
if(m_chunk_list.m_free < size) {
|
||||||
|
ptr = allocate_expand(size);
|
||||||
|
}
|
||||||
m_chunk_list.m_free -= size;
|
m_chunk_list.m_free -= size;
|
||||||
m_chunk_list.m_ptr += size;
|
m_chunk_list.m_ptr += size;
|
||||||
|
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void* zone::allocate_expand(size_t size)
|
inline char* zone::allocate_expand(size_t size)
|
||||||
{
|
{
|
||||||
chunk_list* const cl = &m_chunk_list;
|
chunk_list* const cl = &m_chunk_list;
|
||||||
|
|
||||||
@@ -240,8 +247,8 @@ inline void* zone::allocate_expand(size_t size)
|
|||||||
|
|
||||||
c->m_next = cl->m_head;
|
c->m_next = cl->m_head;
|
||||||
cl->m_head = c;
|
cl->m_head = c;
|
||||||
cl->m_free = sz - size;
|
cl->m_free = sz;
|
||||||
cl->m_ptr = ptr + size;
|
cl->m_ptr = ptr;
|
||||||
|
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
@@ -300,7 +307,7 @@ inline std::size_t aligned_size(
|
|||||||
template <typename T<%1.upto(i) {|j|%>, typename A<%=j%><%}%>>
|
template <typename T<%1.upto(i) {|j|%>, typename A<%=j%><%}%>>
|
||||||
T* zone::allocate(<%=(1..i).map{|j|"A#{j} a#{j}"}.join(', ')%>)
|
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 {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
|
@@ -24,6 +24,14 @@
|
|||||||
#define MSGPACK_ZONE_ALIGN sizeof(void*)
|
#define MSGPACK_ZONE_ALIGN sizeof(void*)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
#define MSGPACK_ZONE_ALIGNOF(type) __alignof(type)
|
||||||
|
#else
|
||||||
|
#define MSGPACK_ZONE_ALIGNOF(type) __alignof__(type)
|
||||||
|
#endif
|
||||||
|
// For a compiler that doesn't support __alignof__:
|
||||||
|
// #define MSGPACK_ZONE_ALIGNOF(type) MSGPACK_ZONE_ALIGN
|
||||||
|
|
||||||
<% GENERATION_LIMIT = 15 %>
|
<% GENERATION_LIMIT = 15 %>
|
||||||
namespace msgpack {
|
namespace msgpack {
|
||||||
|
|
||||||
|
@@ -3,6 +3,20 @@ IF (MSGPACK_BOOST)
|
|||||||
msgpack_variant_capitalize.cpp
|
msgpack_variant_capitalize.cpp
|
||||||
msgpack_variant_mapbased.cpp
|
msgpack_variant_mapbased.cpp
|
||||||
)
|
)
|
||||||
|
IF (MSGPACK_CXX11 OR MSGPACK_CXX17)
|
||||||
|
FIND_PACKAGE (Threads REQUIRED)
|
||||||
|
LIST (APPEND exec_PROGRAMS
|
||||||
|
asio_send_recv.cpp
|
||||||
|
)
|
||||||
|
IF (ZLIB_FOUND)
|
||||||
|
INCLUDE_DIRECTORIES (
|
||||||
|
${ZLIB_INCLUDE_DIRS}
|
||||||
|
)
|
||||||
|
LIST (APPEND exec_PROGRAMS
|
||||||
|
asio_send_recv_zlib.cpp
|
||||||
|
)
|
||||||
|
ENDIF ()
|
||||||
|
ENDIF ()
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
FOREACH (source_file ${exec_PROGRAMS})
|
FOREACH (source_file ${exec_PROGRAMS})
|
||||||
@@ -15,6 +29,15 @@ FOREACH (source_file ${exec_PROGRAMS})
|
|||||||
PRIVATE
|
PRIVATE
|
||||||
$<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
|
$<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
|
||||||
)
|
)
|
||||||
|
TARGET_LINK_LIBRARIES (${source_file_we}
|
||||||
|
${Boost_SYSTEM_LIBRARY}
|
||||||
|
${CMAKE_THREAD_LIBS_INIT}
|
||||||
|
)
|
||||||
|
IF (ZLIB_FOUND)
|
||||||
|
TARGET_LINK_LIBRARIES (${source_file_we}
|
||||||
|
${ZLIB_LIBRARIES}
|
||||||
|
)
|
||||||
|
ENDIF()
|
||||||
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||||
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3")
|
SET_PROPERTY (TARGET ${source_file_we} APPEND_STRING PROPERTY COMPILE_FLAGS "-Wall -Wextra -Werror -g -O3")
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
95
example/boost/asio_send_recv.cpp
Normal file
95
example/boost/asio_send_recv.cpp
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
// MessagePack for C++ example
|
||||||
|
//
|
||||||
|
// Copyright (C) 2017 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <sstream>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
#include <boost/asio.hpp>
|
||||||
|
#include <boost/lexical_cast.hpp>
|
||||||
|
|
||||||
|
#include <msgpack.hpp>
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
boost::asio::io_service ios;
|
||||||
|
std::uint16_t const port = 12345;
|
||||||
|
|
||||||
|
// Server
|
||||||
|
std::size_t const window_size = 10;
|
||||||
|
boost::asio::ip::tcp::acceptor ac(ios, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), port));
|
||||||
|
boost::asio::ip::tcp::socket ss(ios);
|
||||||
|
std::function<void()> do_accept;
|
||||||
|
std::function<void()> do_async_read_some;
|
||||||
|
|
||||||
|
msgpack::unpacker unp;
|
||||||
|
|
||||||
|
do_accept = [&] {
|
||||||
|
ac.async_accept(
|
||||||
|
ss,
|
||||||
|
[&]
|
||||||
|
(boost::system::error_code const& e) {
|
||||||
|
if (e) {
|
||||||
|
std::cout << __LINE__ << ":" << e.message() << std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
unp.reserve_buffer(window_size);
|
||||||
|
do_async_read_some = [&] {
|
||||||
|
ss.async_read_some(
|
||||||
|
boost::asio::buffer(unp.buffer(), window_size),
|
||||||
|
[&](boost::system::error_code const& e, std::size_t bytes_transferred) {
|
||||||
|
if (e) {
|
||||||
|
std::cout << __LINE__ << ":" << e.message() << std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
std::cout << bytes_transferred << " bytes read." << std::endl;
|
||||||
|
unp.buffer_consumed(bytes_transferred);
|
||||||
|
msgpack::object_handle oh;
|
||||||
|
while (unp.next(oh)) {
|
||||||
|
std::cout << oh.get() << std::endl;
|
||||||
|
// In order to finish the program,
|
||||||
|
// return if one complete msgpack is processed.
|
||||||
|
// In actual server, don't return here.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
do_async_read_some();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
do_async_read_some();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
do_accept();
|
||||||
|
|
||||||
|
// Client
|
||||||
|
auto host = "localhost";
|
||||||
|
boost::asio::ip::tcp::resolver r(ios);
|
||||||
|
boost::asio::ip::tcp::resolver::query q(host, boost::lexical_cast<std::string>(port));
|
||||||
|
auto it = r.resolve(q);
|
||||||
|
boost::asio::ip::tcp::socket cs(ios);
|
||||||
|
boost::asio::async_connect(
|
||||||
|
cs,
|
||||||
|
|
||||||
|
it,
|
||||||
|
[&]
|
||||||
|
(boost::system::error_code const& e, boost::asio::ip::tcp::resolver::iterator) {
|
||||||
|
if (e) {
|
||||||
|
std::cout << __LINE__ << ":" << e.message() << std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
std::cout << __LINE__ << ":client connected" << std::endl;
|
||||||
|
msgpack::sbuffer sb;
|
||||||
|
msgpack::pack(sb, std::make_tuple(42, false, "hello world", 12.3456));
|
||||||
|
write(cs, boost::asio::buffer(sb.data(), sb.size()));
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// Start
|
||||||
|
ios.run();
|
||||||
|
}
|
165
example/boost/asio_send_recv_zlib.cpp
Normal file
165
example/boost/asio_send_recv_zlib.cpp
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
// MessagePack for C++ example
|
||||||
|
//
|
||||||
|
// Copyright (C) 2017 KONDO Takatoshi
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <sstream>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
#include <boost/asio.hpp>
|
||||||
|
#include <boost/lexical_cast.hpp>
|
||||||
|
|
||||||
|
#include <msgpack.hpp>
|
||||||
|
#include <msgpack/zbuffer.hpp>
|
||||||
|
|
||||||
|
#include <zlib.h>
|
||||||
|
|
||||||
|
void print(std::string const& buf) {
|
||||||
|
for (std::string::const_iterator it = buf.begin(), end = buf.end();
|
||||||
|
it != end;
|
||||||
|
++it) {
|
||||||
|
std::cout
|
||||||
|
<< std::setw(2)
|
||||||
|
<< std::hex
|
||||||
|
<< std::setfill('0')
|
||||||
|
<< (static_cast<int>(*it) & 0xff)
|
||||||
|
<< ' ';
|
||||||
|
}
|
||||||
|
std::cout << std::dec << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
boost::asio::io_service ios;
|
||||||
|
std::uint16_t const port = 12345;
|
||||||
|
|
||||||
|
int num_of_zlib_data = 2;
|
||||||
|
int idx_zlib_data = 0;
|
||||||
|
|
||||||
|
// Server
|
||||||
|
std::size_t const window_size = 11;
|
||||||
|
boost::asio::ip::tcp::acceptor ac(ios, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), port));
|
||||||
|
boost::asio::ip::tcp::socket ss(ios);
|
||||||
|
std::function<void()> do_accept;
|
||||||
|
std::function<void()> do_async_read_some;
|
||||||
|
|
||||||
|
// zlib for decompress
|
||||||
|
z_stream strm;
|
||||||
|
auto zlib_init = [&] {
|
||||||
|
strm.zalloc = Z_NULL;
|
||||||
|
strm.zfree = Z_NULL;
|
||||||
|
strm.opaque = Z_NULL;
|
||||||
|
strm.next_in = Z_NULL;
|
||||||
|
{
|
||||||
|
int zret = inflateInit(&strm);
|
||||||
|
if (zret != Z_OK) {
|
||||||
|
std::cout << "Zlib inflateInit() error = " << zret << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
zlib_init();
|
||||||
|
std::vector<char> buf(4); // buf size
|
||||||
|
|
||||||
|
msgpack::unpacker unp;
|
||||||
|
|
||||||
|
do_accept = [&] {
|
||||||
|
ac.async_accept(
|
||||||
|
ss,
|
||||||
|
[&]
|
||||||
|
(boost::system::error_code const& e) {
|
||||||
|
if (e) {
|
||||||
|
std::cout << __LINE__ << ":" << e.message() << std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
do_async_read_some = [&] {
|
||||||
|
ss.async_read_some(
|
||||||
|
boost::asio::buffer(buf),
|
||||||
|
[&](boost::system::error_code const& e, std::size_t bytes_transferred) {
|
||||||
|
if (e) {
|
||||||
|
std::cout << __LINE__ << ":" << e.message() << std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
std::cout << bytes_transferred << " bytes read." << std::endl;
|
||||||
|
print(std::string(std::string(&buf[0], buf.size())));
|
||||||
|
strm.avail_in = bytes_transferred;
|
||||||
|
do {
|
||||||
|
strm.next_in = reinterpret_cast<unsigned char*>(&buf[0]) + (bytes_transferred - strm.avail_in);
|
||||||
|
int zret;
|
||||||
|
unp.reserve_buffer(window_size);
|
||||||
|
strm.avail_out = window_size;
|
||||||
|
strm.next_out = reinterpret_cast<unsigned char*>(unp.buffer());
|
||||||
|
do {
|
||||||
|
zret = inflate(&strm, Z_NO_FLUSH);
|
||||||
|
assert(zret != Z_STREAM_ERROR);
|
||||||
|
switch (zret) {
|
||||||
|
case Z_NEED_DICT:
|
||||||
|
zret = Z_DATA_ERROR;
|
||||||
|
// fall through
|
||||||
|
case Z_DATA_ERROR:
|
||||||
|
case Z_MEM_ERROR:
|
||||||
|
inflateEnd(&strm);
|
||||||
|
std::cout << "Zlib inflate() error = " << zret << std::endl;
|
||||||
|
std::exit(-1);
|
||||||
|
}
|
||||||
|
std::size_t decompressed_size = window_size - strm.avail_out;
|
||||||
|
std::cout << decompressed_size << " bytes decompressed." << std::endl;
|
||||||
|
unp.buffer_consumed(decompressed_size);
|
||||||
|
msgpack::object_handle oh;
|
||||||
|
while (unp.next(oh)) {
|
||||||
|
std::cout << oh.get() << std::endl;
|
||||||
|
}
|
||||||
|
} while (strm.avail_out == 0);
|
||||||
|
if (zret == Z_STREAM_END) {
|
||||||
|
inflateEnd(&strm);
|
||||||
|
std::cout << "Zlib decompress finished." << std::endl;
|
||||||
|
++idx_zlib_data;
|
||||||
|
if (idx_zlib_data == num_of_zlib_data) {
|
||||||
|
std::cout << "All zlib decompress finished." << std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
zlib_init();
|
||||||
|
}
|
||||||
|
} while (strm.avail_in != 0);
|
||||||
|
do_async_read_some();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
do_async_read_some();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
do_accept();
|
||||||
|
|
||||||
|
// Client
|
||||||
|
auto host = "localhost";
|
||||||
|
boost::asio::ip::tcp::resolver r(ios);
|
||||||
|
boost::asio::ip::tcp::resolver::query q(host, boost::lexical_cast<std::string>(port));
|
||||||
|
auto it = r.resolve(q);
|
||||||
|
boost::asio::ip::tcp::socket cs(ios);
|
||||||
|
boost::asio::async_connect(
|
||||||
|
cs,
|
||||||
|
it,
|
||||||
|
[&]
|
||||||
|
(boost::system::error_code const& e, boost::asio::ip::tcp::resolver::iterator) {
|
||||||
|
if (e) {
|
||||||
|
std::cout << __LINE__ << ":" << e.message() << std::endl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
std::cout << __LINE__ << ":client connected" << std::endl;
|
||||||
|
for (int i = 0; i != num_of_zlib_data; ++i) {
|
||||||
|
msgpack::zbuffer zb;
|
||||||
|
msgpack::pack(zb, std::make_tuple(i, false, "hello world", 12.3456));
|
||||||
|
zb.flush(); // finalize zbuffer (don't forget it)
|
||||||
|
print(std::string(zb.data(), zb.size()));
|
||||||
|
write(cs, boost::asio::buffer(zb.data(), zb.size()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// Start
|
||||||
|
ios.run();
|
||||||
|
}
|
@@ -22,7 +22,7 @@ void test()
|
|||||||
|
|
||||||
msgpack_unpacked_init(&msg);
|
msgpack_unpacked_init(&msg);
|
||||||
|
|
||||||
while (msgpack_unpack_next(&msg, buf.data, buf.size, &upk_pos)) {
|
while (msgpack_unpack_next(&msg, buf.data, buf.size, &upk_pos) == MSGPACK_UNPACK_SUCCESS) {
|
||||||
}
|
}
|
||||||
|
|
||||||
msgpack_sbuffer_destroy(&buf);
|
msgpack_sbuffer_destroy(&buf);
|
||||||
|
@@ -23,7 +23,7 @@ void test()
|
|||||||
|
|
||||||
msgpack_unpacked_init(&msg);
|
msgpack_unpacked_init(&msg);
|
||||||
|
|
||||||
while (msgpack_unpack_next(&msg, buf.data, buf.size, &upk_pos)) {
|
while (msgpack_unpack_next(&msg, buf.data, buf.size, &upk_pos) == MSGPACK_UNPACK_SUCCESS) {
|
||||||
}
|
}
|
||||||
|
|
||||||
msgpack_sbuffer_destroy(&buf);
|
msgpack_sbuffer_destroy(&buf);
|
||||||
|
@@ -69,7 +69,7 @@ struct object_with_zone<my_class> {
|
|||||||
o.type = type::ARRAY;
|
o.type = type::ARRAY;
|
||||||
o.via.array.size = 2;
|
o.via.array.size = 2;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(
|
o.via.array.ptr = static_cast<msgpack::object*>(
|
||||||
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[0] = msgpack::object(v.get_name(), o.zone);
|
||||||
o.via.array.ptr[1] = msgpack::object(v.get_age(), o.zone);
|
o.via.array.ptr[1] = msgpack::object(v.get_age(), o.zone);
|
||||||
}
|
}
|
||||||
|
@@ -40,7 +40,13 @@ struct json_like_visitor : msgpack::v2::null_visitor {
|
|||||||
m_s += ss.str();
|
m_s += ss.str();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
bool visit_float(double v) {
|
bool visit_float32(float v) {
|
||||||
|
std::stringstream ss;
|
||||||
|
ss << v;
|
||||||
|
m_s += ss.str();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
bool visit_float64(double v) {
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
ss << v;
|
ss << v;
|
||||||
m_s += ss.str();
|
m_s += ss.str();
|
||||||
|
@@ -84,7 +84,7 @@ struct object_with_zone<MSGPACK_STD_TR1::unordered_map<K, V, Hash, Pred, Alloc>
|
|||||||
o.via.map.size = 0;
|
o.via.map.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size));
|
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
msgpack::object_kv* const pend = p + size;
|
msgpack::object_kv* const pend = p + size;
|
||||||
o.via.map.ptr = p;
|
o.via.map.ptr = p;
|
||||||
o.via.map.size = size;
|
o.via.map.size = size;
|
||||||
@@ -141,7 +141,7 @@ struct object_with_zone<MSGPACK_STD_TR1::unordered_multimap<K, V, Hash, Pred, Al
|
|||||||
o.via.map.size = 0;
|
o.via.map.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size));
|
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
msgpack::object_kv* const pend = p + size;
|
msgpack::object_kv* const pend = p + size;
|
||||||
o.via.map.ptr = p;
|
o.via.map.ptr = p;
|
||||||
o.via.map.size = size;
|
o.via.map.size = size;
|
||||||
|
@@ -82,7 +82,7 @@ struct object_with_zone<MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc>
|
|||||||
o.via.array.size = 0;
|
o.via.array.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
msgpack::object* const pend = p + size;
|
msgpack::object* const pend = p + size;
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
@@ -136,7 +136,7 @@ struct object_with_zone<MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Al
|
|||||||
o.via.array.size = 0;
|
o.via.array.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
msgpack::object* const pend = p + size;
|
msgpack::object* const pend = p + size;
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
|
@@ -253,7 +253,7 @@ struct object_with_zone<msgpack::type::array_ref<T> > {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
msgpack::object* const pend = p + size;
|
msgpack::object* const pend = p + size;
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
@@ -280,7 +280,7 @@ struct object_with_zone<msgpack::type::array_ref<T[N]> > {
|
|||||||
if (!v.data) { throw msgpack::type_error(); }
|
if (!v.data) { throw msgpack::type_error(); }
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
msgpack::object* const pend = p + size;
|
msgpack::object* const pend = p + size;
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
|
@@ -15,6 +15,8 @@
|
|||||||
#include "msgpack/adaptor/check_container_size.hpp"
|
#include "msgpack/adaptor/check_container_size.hpp"
|
||||||
#include "msgpack/meta.hpp"
|
#include "msgpack/meta.hpp"
|
||||||
|
|
||||||
|
#include "msgpack/adaptor/pair.hpp"
|
||||||
|
|
||||||
#if !defined (MSGPACK_USE_CPP03)
|
#if !defined (MSGPACK_USE_CPP03)
|
||||||
#include "msgpack/adaptor/cpp11/tuple.hpp"
|
#include "msgpack/adaptor/cpp11/tuple.hpp"
|
||||||
#endif // #if !defined (MSGPACK_USE_CPP03)
|
#endif // #if !defined (MSGPACK_USE_CPP03)
|
||||||
@@ -34,13 +36,54 @@ MSGPACK_API_VERSION_NAMESPACE(v1) {
|
|||||||
|
|
||||||
namespace adaptor {
|
namespace adaptor {
|
||||||
|
|
||||||
|
namespace detail {
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct is_std_pair {
|
||||||
|
static bool const value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename T, typename U>
|
||||||
|
struct is_std_pair<std::pair<T, U> > {
|
||||||
|
static bool const value = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
#if !defined(MSGPACK_USE_CPP03)
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct is_std_tuple {
|
||||||
|
static bool const value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename... Args>
|
||||||
|
struct is_std_tuple<std::tuple<Args...>> {
|
||||||
|
static bool const value = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // !defined(MSGPACK_USE_CPP03)
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct is_seq_no_pair_no_tuple {
|
||||||
|
static bool const value =
|
||||||
|
boost::fusion::traits::is_sequence<T>::value
|
||||||
|
&&
|
||||||
|
!is_std_pair<T>::value
|
||||||
|
#if !defined (MSGPACK_USE_CPP03)
|
||||||
|
&&
|
||||||
|
!is_std_tuple<T>::value
|
||||||
|
#endif // !defined (MSGPACK_USE_CPP03)
|
||||||
|
;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace detail
|
||||||
|
|
||||||
#if !defined (MSGPACK_USE_CPP03)
|
#if !defined (MSGPACK_USE_CPP03)
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct as<
|
struct as<
|
||||||
T,
|
T,
|
||||||
typename msgpack::enable_if<
|
typename msgpack::enable_if<
|
||||||
boost::fusion::traits::is_sequence<T>::value &&
|
detail::is_seq_no_pair_no_tuple<T>::value &&
|
||||||
boost::mpl::fold<
|
boost::mpl::fold<
|
||||||
T,
|
T,
|
||||||
boost::mpl::bool_<true>,
|
boost::mpl::bool_<true>,
|
||||||
@@ -82,7 +125,7 @@ struct as<
|
|||||||
#endif // !defined (MSGPACK_USE_CPP03)
|
#endif // !defined (MSGPACK_USE_CPP03)
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct convert<T, typename msgpack::enable_if<boost::fusion::traits::is_sequence<T>::value>::type > {
|
struct convert<T, typename msgpack::enable_if<detail::is_seq_no_pair_no_tuple<T>::value>::type > {
|
||||||
msgpack::object const& operator()(msgpack::object const& o, T& v) const {
|
msgpack::object const& operator()(msgpack::object const& o, T& v) const {
|
||||||
if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); }
|
if (o.type != msgpack::type::ARRAY) { throw msgpack::type_error(); }
|
||||||
if (o.via.array.size != checked_get_container_size(boost::fusion::size(v))) {
|
if (o.via.array.size != checked_get_container_size(boost::fusion::size(v))) {
|
||||||
@@ -106,7 +149,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct pack<T, typename msgpack::enable_if<boost::fusion::traits::is_sequence<T>::value>::type > {
|
struct pack<T, typename msgpack::enable_if<detail::is_seq_no_pair_no_tuple<T>::value>::type > {
|
||||||
template <typename Stream>
|
template <typename Stream>
|
||||||
msgpack::packer<Stream>& operator()(msgpack::packer<Stream>& o, const T& v) const {
|
msgpack::packer<Stream>& operator()(msgpack::packer<Stream>& o, const T& v) const {
|
||||||
uint32_t size = checked_get_container_size(boost::fusion::size(v));
|
uint32_t size = checked_get_container_size(boost::fusion::size(v));
|
||||||
@@ -128,11 +171,11 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
struct object_with_zone<T, typename msgpack::enable_if<boost::fusion::traits::is_sequence<T>::value>::type > {
|
struct object_with_zone<T, typename msgpack::enable_if<detail::is_seq_no_pair_no_tuple<T>::value>::type > {
|
||||||
void operator()(msgpack::object::with_zone& o, const T& v) const {
|
void operator()(msgpack::object::with_zone& o, const T& v) const {
|
||||||
uint32_t size = checked_get_container_size(boost::fusion::size(v));
|
uint32_t size = checked_get_container_size(boost::fusion::size(v));
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
uint32_t count = 0;
|
uint32_t count = 0;
|
||||||
boost::fusion::for_each(v, with_zone_imp(o, count));
|
boost::fusion::for_each(v, with_zone_imp(o, count));
|
||||||
|
@@ -151,7 +151,7 @@ struct object_with_zone<T[N]> {
|
|||||||
void operator()(msgpack::object::with_zone& o, const T(&v)[N]) const {
|
void operator()(msgpack::object::with_zone& o, const T(&v)[N]) const {
|
||||||
uint32_t size = checked_get_container_size(N);
|
uint32_t size = checked_get_container_size(N);
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
msgpack::object* ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object) * size));
|
msgpack::object* ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object) * size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.ptr = ptr;
|
o.via.array.ptr = ptr;
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
const T* pv = v;
|
const T* pv = v;
|
||||||
@@ -169,7 +169,7 @@ struct object_with_zone<char[N]> {
|
|||||||
char const* p2 = static_cast<char const*>(std::memchr(p, '\0', size));
|
char const* p2 = static_cast<char const*>(std::memchr(p, '\0', size));
|
||||||
uint32_t adjusted_size = p2 ? static_cast<uint32_t>(p2 - p) : size;
|
uint32_t adjusted_size = p2 ? static_cast<uint32_t>(p2 - p) : size;
|
||||||
o.type = msgpack::type::STR;
|
o.type = msgpack::type::STR;
|
||||||
char* ptr = static_cast<char*>(o.zone.allocate_align(adjusted_size));
|
char* ptr = static_cast<char*>(o.zone.allocate_align(adjusted_size, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
o.via.str.ptr = ptr;
|
o.via.str.ptr = ptr;
|
||||||
o.via.str.size = adjusted_size;
|
o.via.str.size = adjusted_size;
|
||||||
std::memcpy(ptr, p, adjusted_size);
|
std::memcpy(ptr, p, adjusted_size);
|
||||||
@@ -184,7 +184,7 @@ struct object_with_zone<const char[N]> {
|
|||||||
char const* p2 = static_cast<char const*>(std::memchr(p, '\0', size));
|
char const* p2 = static_cast<char const*>(std::memchr(p, '\0', size));
|
||||||
uint32_t adjusted_size = p2 ? static_cast<uint32_t>(p2 - p) : size;
|
uint32_t adjusted_size = p2 ? static_cast<uint32_t>(p2 - p) : size;
|
||||||
o.type = msgpack::type::STR;
|
o.type = msgpack::type::STR;
|
||||||
char* ptr = static_cast<char*>(o.zone.allocate_align(adjusted_size));
|
char* ptr = static_cast<char*>(o.zone.allocate_align(adjusted_size, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
o.via.str.ptr = ptr;
|
o.via.str.ptr = ptr;
|
||||||
o.via.str.size = adjusted_size;
|
o.via.str.size = adjusted_size;
|
||||||
std::memcpy(ptr, p, adjusted_size);
|
std::memcpy(ptr, p, adjusted_size);
|
||||||
@@ -196,7 +196,7 @@ struct object_with_zone<unsigned char[N]> {
|
|||||||
void operator()(msgpack::object::with_zone& o, const unsigned char(&v)[N]) const {
|
void operator()(msgpack::object::with_zone& o, const unsigned char(&v)[N]) const {
|
||||||
uint32_t size = checked_get_container_size(N);
|
uint32_t size = checked_get_container_size(N);
|
||||||
o.type = msgpack::type::BIN;
|
o.type = msgpack::type::BIN;
|
||||||
char* ptr = static_cast<char*>(o.zone.allocate_align(size));
|
char* ptr = static_cast<char*>(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
o.via.bin.ptr = ptr;
|
o.via.bin.ptr = ptr;
|
||||||
o.via.bin.size = size;
|
o.via.bin.size = size;
|
||||||
std::memcpy(ptr, v, size);
|
std::memcpy(ptr, v, size);
|
||||||
@@ -208,7 +208,7 @@ struct object_with_zone<const unsigned char[N]> {
|
|||||||
void operator()(msgpack::object::with_zone& o, const unsigned char(&v)[N]) const {
|
void operator()(msgpack::object::with_zone& o, const unsigned char(&v)[N]) const {
|
||||||
uint32_t size = checked_get_container_size(N);
|
uint32_t size = checked_get_container_size(N);
|
||||||
o.type = msgpack::type::BIN;
|
o.type = msgpack::type::BIN;
|
||||||
char* ptr = static_cast<char*>(o.zone.allocate_align(size));
|
char* ptr = static_cast<char*>(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
o.via.bin.ptr = ptr;
|
o.via.bin.ptr = ptr;
|
||||||
o.via.bin.size = size;
|
o.via.bin.size = size;
|
||||||
std::memcpy(ptr, v, size);
|
std::memcpy(ptr, v, size);
|
||||||
|
@@ -41,7 +41,7 @@ struct object_with_zone<const char*> {
|
|||||||
void operator()(msgpack::object::with_zone& o, const char* v) const {
|
void operator()(msgpack::object::with_zone& o, const char* v) const {
|
||||||
uint32_t size = checked_get_container_size(std::strlen(v));
|
uint32_t size = checked_get_container_size(std::strlen(v));
|
||||||
o.type = msgpack::type::STR;
|
o.type = msgpack::type::STR;
|
||||||
char* ptr = static_cast<char*>(o.zone.allocate_align(size));
|
char* ptr = static_cast<char*>(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
o.via.str.ptr = ptr;
|
o.via.str.ptr = ptr;
|
||||||
o.via.str.size = size;
|
o.via.str.size = size;
|
||||||
std::memcpy(ptr, v, size);
|
std::memcpy(ptr, v, size);
|
||||||
|
@@ -119,7 +119,7 @@ struct object_with_zone<std::array<T, N>> {
|
|||||||
o.via.array.size = 0;
|
o.via.array.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
for (auto const& e : v) *p++ = msgpack::object(e, o.zone);
|
for (auto const& e : v) *p++ = msgpack::object(e, o.zone);
|
||||||
|
@@ -79,7 +79,7 @@ struct object_with_zone<std::array<char, N>> {
|
|||||||
void operator()(msgpack::object::with_zone& o, const std::array<char, N>& v) const {
|
void operator()(msgpack::object::with_zone& o, const std::array<char, N>& v) const {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
o.type = msgpack::type::BIN;
|
o.type = msgpack::type::BIN;
|
||||||
char* ptr = static_cast<char*>(o.zone.allocate_align(size));
|
char* ptr = static_cast<char*>(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
o.via.bin.ptr = ptr;
|
o.via.bin.ptr = ptr;
|
||||||
o.via.bin.size = size;
|
o.via.bin.size = size;
|
||||||
std::memcpy(ptr, v.data(), size);
|
std::memcpy(ptr, v.data(), size);
|
||||||
|
@@ -79,7 +79,7 @@ struct object_with_zone<std::array<unsigned char, N>> {
|
|||||||
void operator()(msgpack::object::with_zone& o, const std::array<unsigned char, N>& v) const {
|
void operator()(msgpack::object::with_zone& o, const std::array<unsigned char, N>& v) const {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
o.type = msgpack::type::BIN;
|
o.type = msgpack::type::BIN;
|
||||||
char* ptr = static_cast<char*>(o.zone.allocate_align(size));
|
char* ptr = static_cast<char*>(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
o.via.bin.ptr = ptr;
|
o.via.bin.ptr = ptr;
|
||||||
o.via.bin.size = size;
|
o.via.bin.size = size;
|
||||||
std::memcpy(ptr, v.data(), size);
|
std::memcpy(ptr, v.data(), size);
|
||||||
|
@@ -76,7 +76,7 @@ struct object_with_zone<std::forward_list<T, Alloc>> {
|
|||||||
uint32_t size = checked_get_container_size(std::distance(v.begin(), v.end()));
|
uint32_t size = checked_get_container_size(std::distance(v.begin(), v.end()));
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(
|
msgpack::object* p = static_cast<msgpack::object*>(
|
||||||
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;
|
o.via.array.ptr = p;
|
||||||
for(auto const& e : v) *p++ = msgpack::object(e, o.zone);
|
for(auto const& e : v) *p++ = msgpack::object(e, o.zone);
|
||||||
}
|
}
|
||||||
|
@@ -158,7 +158,7 @@ struct object_with_zone<std::tuple<Args...>> {
|
|||||||
std::tuple<Args...> const& v) const {
|
std::tuple<Args...> const& v) const {
|
||||||
uint32_t size = checked_get_container_size(sizeof...(Args));
|
uint32_t size = checked_get_container_size(sizeof...(Args));
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
StdTupleToObjectWithZone<decltype(v), sizeof...(Args)>::convert(o, v);
|
StdTupleToObjectWithZone<decltype(v), sizeof...(Args)>::convert(o, v);
|
||||||
}
|
}
|
||||||
|
@@ -81,7 +81,7 @@ struct object_with_zone<std::unordered_map<K, V, Hash, Compare, Alloc>> {
|
|||||||
o.via.map.size = 0;
|
o.via.map.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size));
|
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
msgpack::object_kv* const pend = p + size;
|
msgpack::object_kv* const pend = p + size;
|
||||||
o.via.map.ptr = p;
|
o.via.map.ptr = p;
|
||||||
o.via.map.size = size;
|
o.via.map.size = size;
|
||||||
@@ -155,7 +155,7 @@ struct object_with_zone<std::unordered_multimap<K, V, Hash, Compare, Alloc>> {
|
|||||||
o.via.map.size = 0;
|
o.via.map.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size));
|
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
msgpack::object_kv* const pend = p + size;
|
msgpack::object_kv* const pend = p + size;
|
||||||
o.via.map.ptr = p;
|
o.via.map.ptr = p;
|
||||||
o.via.map.size = size;
|
o.via.map.size = size;
|
||||||
|
@@ -78,7 +78,7 @@ struct object_with_zone<std::unordered_set<Key, Hash, Compare, Alloc>> {
|
|||||||
o.via.array.size = 0;
|
o.via.array.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
msgpack::object* const pend = p + size;
|
msgpack::object* const pend = p + size;
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
@@ -147,7 +147,7 @@ struct object_with_zone<std::unordered_multiset<Key, Hash, Compare, Alloc>> {
|
|||||||
o.via.array.size = 0;
|
o.via.array.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
msgpack::object* const pend = p + size;
|
msgpack::object* const pend = p + size;
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
|
@@ -83,7 +83,7 @@ struct object_with_zone<std::deque<T, Alloc> > {
|
|||||||
o.via.array.size = 0;
|
o.via.array.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
msgpack::object* const pend = p + size;
|
msgpack::object* const pend = p + size;
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
|
@@ -75,7 +75,7 @@ struct define_array<A0> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*1));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*1, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 1;
|
o->via.array.size = 1;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -118,7 +118,7 @@ struct define_array<A0, A1> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*2));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*2, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 2;
|
o->via.array.size = 2;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -167,7 +167,7 @@ struct define_array<A0, A1, A2> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*3));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*3, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 3;
|
o->via.array.size = 3;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -222,7 +222,7 @@ struct define_array<A0, A1, A2, A3> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*4));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*4, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 4;
|
o->via.array.size = 4;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -283,7 +283,7 @@ struct define_array<A0, A1, A2, A3, A4> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*5));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*5, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 5;
|
o->via.array.size = 5;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -350,7 +350,7 @@ struct define_array<A0, A1, A2, A3, A4, A5> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*6));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*6, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 6;
|
o->via.array.size = 6;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -423,7 +423,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*7));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*7, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 7;
|
o->via.array.size = 7;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -502,7 +502,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*8));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*8, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 8;
|
o->via.array.size = 8;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -587,7 +587,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*9));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*9, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 9;
|
o->via.array.size = 9;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -678,7 +678,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*10));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*10, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 10;
|
o->via.array.size = 10;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -775,7 +775,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*11));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*11, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 11;
|
o->via.array.size = 11;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -878,7 +878,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*12));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*12, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 12;
|
o->via.array.size = 12;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -987,7 +987,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*13));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*13, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 13;
|
o->via.array.size = 13;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -1102,7 +1102,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*14));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*14, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 14;
|
o->via.array.size = 14;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -1223,7 +1223,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*15));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*15, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 15;
|
o->via.array.size = 15;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -1350,7 +1350,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*16));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*16, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 16;
|
o->via.array.size = 16;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -1483,7 +1483,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*17));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*17, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 17;
|
o->via.array.size = 17;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -1622,7 +1622,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*18));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*18, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 18;
|
o->via.array.size = 18;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -1767,7 +1767,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*19));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*19, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 19;
|
o->via.array.size = 19;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -1918,7 +1918,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*20));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*20, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 20;
|
o->via.array.size = 20;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -2075,7 +2075,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*21));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*21, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 21;
|
o->via.array.size = 21;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -2238,7 +2238,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*22));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*22, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 22;
|
o->via.array.size = 22;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -2407,7 +2407,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*23));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*23, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 23;
|
o->via.array.size = 23;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -2582,7 +2582,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*24));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*24, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 24;
|
o->via.array.size = 24;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -2763,7 +2763,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*25));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*25, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 25;
|
o->via.array.size = 25;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -2950,7 +2950,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*26));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*26, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 26;
|
o->via.array.size = 26;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -3143,7 +3143,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*27));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*27, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 27;
|
o->via.array.size = 27;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -3342,7 +3342,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*28));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*28, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 28;
|
o->via.array.size = 28;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -3547,7 +3547,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*29));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*29, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 29;
|
o->via.array.size = 29;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -3758,7 +3758,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*30));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*30, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 30;
|
o->via.array.size = 30;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -3975,7 +3975,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*31));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*31, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 31;
|
o->via.array.size = 31;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
@@ -4198,7 +4198,7 @@ struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13,
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*32));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*32, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = 32;
|
o->via.array.size = 32;
|
||||||
|
|
||||||
o->via.array.ptr[0] = msgpack::object(a0, z);
|
o->via.array.ptr[0] = msgpack::object(a0, z);
|
||||||
|
@@ -83,7 +83,7 @@ struct define_map<A0, A1> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*1));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*1, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 1;
|
o->via.map.size = 1;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
@@ -142,7 +142,7 @@ struct define_map<A0, A1, A2, A3> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*2));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*2, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 2;
|
o->via.map.size = 2;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
@@ -215,7 +215,7 @@ struct define_map<A0, A1, A2, A3, A4, A5> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*3));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*3, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 3;
|
o->via.map.size = 3;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
@@ -302,7 +302,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*4));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*4, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 4;
|
o->via.map.size = 4;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
@@ -403,7 +403,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*5));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*5, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 5;
|
o->via.map.size = 5;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
@@ -518,7 +518,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*6));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*6, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 6;
|
o->via.map.size = 6;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
@@ -647,7 +647,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*7));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*7, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 7;
|
o->via.map.size = 7;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
@@ -790,7 +790,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*8));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*8, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 8;
|
o->via.map.size = 8;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
@@ -947,7 +947,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*9));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*9, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 9;
|
o->via.map.size = 9;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
@@ -1118,7 +1118,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*10));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*10, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 10;
|
o->via.map.size = 10;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
@@ -1303,7 +1303,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*11));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*11, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 11;
|
o->via.map.size = 11;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
@@ -1502,7 +1502,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*12));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*12, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 12;
|
o->via.map.size = 12;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
@@ -1715,7 +1715,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*13));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*13, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 13;
|
o->via.map.size = 13;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
@@ -1942,7 +1942,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*14));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*14, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 14;
|
o->via.map.size = 14;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
@@ -2183,7 +2183,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*15));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*15, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 15;
|
o->via.map.size = 15;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
@@ -2438,7 +2438,7 @@ struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A1
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*16));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*16, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = 16;
|
o->via.map.size = 16;
|
||||||
|
|
||||||
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
o->via.map.ptr[0].key = msgpack::object(a0, z);
|
||||||
|
@@ -13506,7 +13506,7 @@ struct object_with_zone<type::tuple<A0> > {
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0>& v) const {
|
const type::tuple<A0>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*1));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*1, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 1;
|
o.via.array.size = 1;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13519,7 +13519,7 @@ struct object_with_zone<type::tuple<A0, A1> > {
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1>& v) const {
|
const type::tuple<A0, A1>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*2));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*2, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 2;
|
o.via.array.size = 2;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13533,7 +13533,7 @@ struct object_with_zone<type::tuple<A0, A1, A2> > {
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2>& v) const {
|
const type::tuple<A0, A1, A2>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*3));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*3, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 3;
|
o.via.array.size = 3;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13548,7 +13548,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3> > {
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3>& v) const {
|
const type::tuple<A0, A1, A2, A3>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*4));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*4, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 4;
|
o.via.array.size = 4;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13564,7 +13564,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4> > {
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*5));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*5, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 5;
|
o.via.array.size = 5;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13581,7 +13581,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5> > {
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*6));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*6, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 6;
|
o.via.array.size = 6;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13599,7 +13599,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6> > {
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*7));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*7, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 7;
|
o.via.array.size = 7;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13618,7 +13618,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7> > {
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*8));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*8, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 8;
|
o.via.array.size = 8;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13638,7 +13638,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> > {
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*9));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*9, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 9;
|
o.via.array.size = 9;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13659,7 +13659,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> > {
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*10));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*10, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 10;
|
o.via.array.size = 10;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13681,7 +13681,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*11));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*11, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 11;
|
o.via.array.size = 11;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13704,7 +13704,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*12));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*12, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 12;
|
o.via.array.size = 12;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13728,7 +13728,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*13));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*13, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 13;
|
o.via.array.size = 13;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13753,7 +13753,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*14));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*14, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 14;
|
o.via.array.size = 14;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13779,7 +13779,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*15));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*15, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 15;
|
o.via.array.size = 15;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13806,7 +13806,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*16));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*16, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 16;
|
o.via.array.size = 16;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13834,7 +13834,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*17));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*17, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 17;
|
o.via.array.size = 17;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13863,7 +13863,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*18));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*18, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 18;
|
o.via.array.size = 18;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13893,7 +13893,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*19));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*19, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 19;
|
o.via.array.size = 19;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13924,7 +13924,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*20));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*20, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 20;
|
o.via.array.size = 20;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13956,7 +13956,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*21));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*21, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 21;
|
o.via.array.size = 21;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -13989,7 +13989,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*22));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*22, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 22;
|
o.via.array.size = 22;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -14023,7 +14023,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*23));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*23, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 23;
|
o.via.array.size = 23;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -14058,7 +14058,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*24));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*24, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 24;
|
o.via.array.size = 24;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -14094,7 +14094,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*25));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*25, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 25;
|
o.via.array.size = 25;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -14131,7 +14131,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*26));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*26, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 26;
|
o.via.array.size = 26;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -14169,7 +14169,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*27));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*27, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 27;
|
o.via.array.size = 27;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -14208,7 +14208,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*28));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*28, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 28;
|
o.via.array.size = 28;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -14248,7 +14248,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*29));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*29, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 29;
|
o.via.array.size = 29;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -14289,7 +14289,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*30));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*30, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 30;
|
o.via.array.size = 30;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -14331,7 +14331,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*31));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*31, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 31;
|
o.via.array.size = 31;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
@@ -14374,7 +14374,7 @@ struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10,
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& v) const {
|
const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*32));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*32, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = 32;
|
o.via.array.size = 32;
|
||||||
|
|
||||||
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
o.via.array.ptr[0] = msgpack::object(v.template get<0>(), o.zone);
|
||||||
|
@@ -77,7 +77,7 @@ struct define_array {
|
|||||||
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
void msgpack_object(msgpack::object* o, msgpack::zone& z) const
|
||||||
{
|
{
|
||||||
o->type = msgpack::type::ARRAY;
|
o->type = msgpack::type::ARRAY;
|
||||||
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*sizeof...(Args)));
|
o->via.array.ptr = static_cast<msgpack::object*>(z.allocate_align(sizeof(msgpack::object)*sizeof...(Args), MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o->via.array.size = sizeof...(Args);
|
o->via.array.size = sizeof...(Args);
|
||||||
|
|
||||||
define_array_imp<std::tuple<Args&...>, sizeof...(Args)>::object(o, z, a);
|
define_array_imp<std::tuple<Args&...>, sizeof...(Args)>::object(o, z, a);
|
||||||
|
@@ -83,7 +83,7 @@ struct define_map {
|
|||||||
{
|
{
|
||||||
static_assert(sizeof...(Args) % 2 == 0, "");
|
static_assert(sizeof...(Args) % 2 == 0, "");
|
||||||
o->type = msgpack::type::MAP;
|
o->type = msgpack::type::MAP;
|
||||||
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*sizeof...(Args)/2));
|
o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*sizeof...(Args)/2, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
o->via.map.size = sizeof...(Args) / 2;
|
o->via.map.size = sizeof...(Args) / 2;
|
||||||
|
|
||||||
define_map_imp<std::tuple<Args&...>, sizeof...(Args)>::object(o, z, a);
|
define_map_imp<std::tuple<Args&...>, sizeof...(Args)>::object(o, z, a);
|
||||||
|
@@ -203,7 +203,7 @@ template <typename... Args>
|
|||||||
msgpack::object::with_zone& o,
|
msgpack::object::with_zone& o,
|
||||||
msgpack::type::tuple<Args...> const& v) const {
|
msgpack::type::tuple<Args...> const& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*sizeof...(Args)));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*sizeof...(Args), MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = sizeof...(Args);
|
o.via.array.size = sizeof...(Args);
|
||||||
MsgpackTupleToObjectWithZone<decltype(v), sizeof...(Args)>::convert(o, v);
|
MsgpackTupleToObjectWithZone<decltype(v), sizeof...(Args)>::convert(o, v);
|
||||||
}
|
}
|
||||||
|
@@ -104,7 +104,7 @@ struct object_with_zone<msgpack::type::ext> {
|
|||||||
// size limit has already been checked at ext's constructor
|
// size limit has already been checked at ext's constructor
|
||||||
uint32_t size = v.size();
|
uint32_t size = v.size();
|
||||||
o.type = msgpack::type::EXT;
|
o.type = msgpack::type::EXT;
|
||||||
char* ptr = static_cast<char*>(o.zone.allocate_align(size + 1));
|
char* ptr = static_cast<char*>(o.zone.allocate_align(size + 1, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
o.via.ext.ptr = ptr;
|
o.via.ext.ptr = ptr;
|
||||||
o.via.ext.size = size;
|
o.via.ext.size = size;
|
||||||
ptr[0] = static_cast<char>(v.type());
|
ptr[0] = static_cast<char>(v.type());
|
||||||
|
@@ -81,7 +81,7 @@ struct object_with_zone<std::list<T, Alloc> > {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
msgpack::object* const pend = p + size;
|
msgpack::object* const pend = p + size;
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
|
@@ -109,7 +109,7 @@ struct object_with_zone<type::assoc_vector<K, V, Compare, Alloc> > {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size));
|
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
msgpack::object_kv* const pend = p + size;
|
msgpack::object_kv* const pend = p + size;
|
||||||
o.via.map.ptr = p;
|
o.via.map.ptr = p;
|
||||||
o.via.map.size = size;
|
o.via.map.size = size;
|
||||||
@@ -195,7 +195,7 @@ struct object_with_zone<std::map<K, V, Compare, Alloc> > {
|
|||||||
else {
|
else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
|
|
||||||
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size));
|
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
msgpack::object_kv* const pend = p + size;
|
msgpack::object_kv* const pend = p + size;
|
||||||
o.via.map.ptr = p;
|
o.via.map.ptr = p;
|
||||||
o.via.map.size = size;
|
o.via.map.size = size;
|
||||||
@@ -288,7 +288,7 @@ struct object_with_zone<std::multimap<K, V, Compare, Alloc> > {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size));
|
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
msgpack::object_kv* const pend = p + size;
|
msgpack::object_kv* const pend = p + size;
|
||||||
o.via.map.ptr = p;
|
o.via.map.ptr = p;
|
||||||
o.via.map.size = size;
|
o.via.map.size = size;
|
||||||
|
@@ -64,7 +64,7 @@ template <typename T1, typename T2>
|
|||||||
struct object_with_zone<std::pair<T1, T2> > {
|
struct object_with_zone<std::pair<T1, T2> > {
|
||||||
void operator()(msgpack::object::with_zone& o, const std::pair<T1, T2>& v) const {
|
void operator()(msgpack::object::with_zone& o, const std::pair<T1, T2>& v) const {
|
||||||
o.type = msgpack::type::ARRAY;
|
o.type = msgpack::type::ARRAY;
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*2));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*2, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
o.via.array.size = 2;
|
o.via.array.size = 2;
|
||||||
p[0] = msgpack::object(v.first, o.zone);
|
p[0] = msgpack::object(v.first, o.zone);
|
||||||
|
@@ -87,7 +87,7 @@ struct object_with_zone<std::set<T, Compare, Alloc> > {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
msgpack::object* const pend = p + size;
|
msgpack::object* const pend = p + size;
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
@@ -163,7 +163,7 @@ struct object_with_zone<std::multiset<T, Compare, Alloc> > {
|
|||||||
o.via.array.size = 0;
|
o.via.array.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
msgpack::object* const pend = p + size;
|
msgpack::object* const pend = p + size;
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
|
@@ -69,7 +69,7 @@ struct object_with_zone<std::string> {
|
|||||||
void operator()(msgpack::object::with_zone& o, const std::string& v) const {
|
void operator()(msgpack::object::with_zone& o, const std::string& v) const {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
o.type = msgpack::type::STR;
|
o.type = msgpack::type::STR;
|
||||||
char* ptr = static_cast<char*>(o.zone.allocate_align(size));
|
char* ptr = static_cast<char*>(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
o.via.str.ptr = ptr;
|
o.via.str.ptr = ptr;
|
||||||
o.via.str.size = size;
|
o.via.str.size = size;
|
||||||
std::memcpy(ptr, v.data(), v.size());
|
std::memcpy(ptr, v.data(), v.size());
|
||||||
|
@@ -84,7 +84,7 @@ struct object_with_zone<MSGPACK_STD_TR1::unordered_map<K, V, Hash, Pred, Alloc>
|
|||||||
o.via.map.size = 0;
|
o.via.map.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size));
|
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
msgpack::object_kv* const pend = p + size;
|
msgpack::object_kv* const pend = p + size;
|
||||||
o.via.map.ptr = p;
|
o.via.map.ptr = p;
|
||||||
o.via.map.size = size;
|
o.via.map.size = size;
|
||||||
@@ -141,7 +141,7 @@ struct object_with_zone<MSGPACK_STD_TR1::unordered_multimap<K, V, Hash, Pred, Al
|
|||||||
o.via.map.size = 0;
|
o.via.map.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size));
|
msgpack::object_kv* p = static_cast<msgpack::object_kv*>(o.zone.allocate_align(sizeof(msgpack::object_kv)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
msgpack::object_kv* const pend = p + size;
|
msgpack::object_kv* const pend = p + size;
|
||||||
o.via.map.ptr = p;
|
o.via.map.ptr = p;
|
||||||
o.via.map.size = size;
|
o.via.map.size = size;
|
||||||
|
@@ -82,7 +82,7 @@ struct object_with_zone<MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc>
|
|||||||
o.via.array.size = 0;
|
o.via.array.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
msgpack::object* const pend = p + size;
|
msgpack::object* const pend = p + size;
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
@@ -136,7 +136,7 @@ struct object_with_zone<MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Al
|
|||||||
o.via.array.size = 0;
|
o.via.array.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
msgpack::object* const pend = p + size;
|
msgpack::object* const pend = p + size;
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
|
@@ -89,7 +89,7 @@ struct object_with_zone<std::vector<T, Alloc> > {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
msgpack::object* const pend = p + size;
|
msgpack::object* const pend = p + size;
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
|
@@ -65,7 +65,7 @@ struct object_with_zone<std::vector<bool, Alloc> > {
|
|||||||
o.via.array.size = 0;
|
o.via.array.size = 0;
|
||||||
} else {
|
} else {
|
||||||
uint32_t size = checked_get_container_size(v.size());
|
uint32_t size = checked_get_container_size(v.size());
|
||||||
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
|
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
msgpack::object* const pend = p + size;
|
msgpack::object* const pend = p + size;
|
||||||
o.via.array.ptr = p;
|
o.via.array.ptr = p;
|
||||||
o.via.array.size = size;
|
o.via.array.size = size;
|
||||||
|
@@ -96,7 +96,7 @@ struct object_with_zone<std::vector<char, Alloc> > {
|
|||||||
o.type = msgpack::type::BIN;
|
o.type = msgpack::type::BIN;
|
||||||
o.via.bin.size = size;
|
o.via.bin.size = size;
|
||||||
if (size != 0) {
|
if (size != 0) {
|
||||||
char* ptr = static_cast<char*>(o.zone.allocate_align(size));
|
char* ptr = static_cast<char*>(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
o.via.bin.ptr = ptr;
|
o.via.bin.ptr = ptr;
|
||||||
std::memcpy(ptr, &v.front(), size);
|
std::memcpy(ptr, &v.front(), size);
|
||||||
}
|
}
|
||||||
|
@@ -96,7 +96,7 @@ struct object_with_zone<std::vector<unsigned char, Alloc> > {
|
|||||||
o.type = msgpack::type::BIN;
|
o.type = msgpack::type::BIN;
|
||||||
o.via.bin.size = size;
|
o.via.bin.size = size;
|
||||||
if (size != 0) {
|
if (size != 0) {
|
||||||
char* ptr = static_cast<char*>(o.zone.allocate_align(size));
|
char* ptr = static_cast<char*>(o.zone.allocate_align(size, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
o.via.bin.ptr = ptr;
|
o.via.bin.ptr = ptr;
|
||||||
std::memcpy(ptr, &v.front(), size);
|
std::memcpy(ptr, &v.front(), size);
|
||||||
}
|
}
|
||||||
|
@@ -223,7 +223,9 @@ private:
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
static void object_delete(void* obj);
|
static void object_delete(void* obj);
|
||||||
|
|
||||||
void* allocate_expand(size_t size);
|
static char* get_aligned(char* ptr, size_t align);
|
||||||
|
|
||||||
|
char* allocate_expand(size_t size);
|
||||||
private:
|
private:
|
||||||
zone(const zone&);
|
zone(const zone&);
|
||||||
zone& operator=(const zone&);
|
zone& operator=(const zone&);
|
||||||
@@ -233,37 +235,42 @@ inline zone::zone(size_t chunk_size) /* throw() */ :m_chunk_size(chunk_size), m_
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void* zone::allocate_align(size_t size, size_t align)
|
inline char* zone::get_aligned(char* ptr, size_t align)
|
||||||
{
|
{
|
||||||
char* aligned =
|
return
|
||||||
reinterpret_cast<char*>(
|
reinterpret_cast<char*>(
|
||||||
reinterpret_cast<size_t>(
|
reinterpret_cast<size_t>(
|
||||||
(m_chunk_list.m_ptr + (align - 1))) / align * align);
|
(ptr + (align - 1))) / align * align);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void* zone::allocate_align(size_t size, size_t align)
|
||||||
|
{
|
||||||
|
char* aligned = get_aligned(m_chunk_list.m_ptr, align);
|
||||||
size_t adjusted_size = size + (aligned - m_chunk_list.m_ptr);
|
size_t adjusted_size = size + (aligned - m_chunk_list.m_ptr);
|
||||||
if(m_chunk_list.m_free >= adjusted_size) {
|
if (m_chunk_list.m_free < adjusted_size) {
|
||||||
m_chunk_list.m_free -= adjusted_size;
|
size_t enough_size = size + align - 1;
|
||||||
m_chunk_list.m_ptr += adjusted_size;
|
char* ptr = allocate_expand(enough_size);
|
||||||
return aligned;
|
aligned = get_aligned(ptr, align);
|
||||||
|
adjusted_size = size + (aligned - m_chunk_list.m_ptr);
|
||||||
}
|
}
|
||||||
return reinterpret_cast<char*>(
|
m_chunk_list.m_free -= adjusted_size;
|
||||||
reinterpret_cast<size_t>(
|
m_chunk_list.m_ptr += adjusted_size;
|
||||||
allocate_expand(size + (align - 1))) / align * align);
|
return aligned;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void* zone::allocate_no_align(size_t size)
|
inline void* zone::allocate_no_align(size_t size)
|
||||||
{
|
{
|
||||||
if(m_chunk_list.m_free < size) {
|
|
||||||
return allocate_expand(size);
|
|
||||||
}
|
|
||||||
|
|
||||||
char* ptr = m_chunk_list.m_ptr;
|
char* ptr = m_chunk_list.m_ptr;
|
||||||
|
if(m_chunk_list.m_free < size) {
|
||||||
|
ptr = allocate_expand(size);
|
||||||
|
}
|
||||||
m_chunk_list.m_free -= size;
|
m_chunk_list.m_free -= size;
|
||||||
m_chunk_list.m_ptr += size;
|
m_chunk_list.m_ptr += size;
|
||||||
|
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void* zone::allocate_expand(size_t size)
|
inline char* zone::allocate_expand(size_t size)
|
||||||
{
|
{
|
||||||
chunk_list* const cl = &m_chunk_list;
|
chunk_list* const cl = &m_chunk_list;
|
||||||
|
|
||||||
@@ -285,8 +292,8 @@ inline void* zone::allocate_expand(size_t size)
|
|||||||
|
|
||||||
c->m_next = cl->m_head;
|
c->m_next = cl->m_head;
|
||||||
cl->m_head = c;
|
cl->m_head = c;
|
||||||
cl->m_free = sz - size;
|
cl->m_free = sz;
|
||||||
cl->m_ptr = ptr + size;
|
cl->m_ptr = ptr;
|
||||||
|
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
@@ -345,7 +352,7 @@ inline std::size_t aligned_size(
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
T* zone::allocate()
|
T* zone::allocate()
|
||||||
{
|
{
|
||||||
void* x = allocate_align(sizeof(T));
|
void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T));
|
||||||
try {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
@@ -364,7 +371,7 @@ T* zone::allocate()
|
|||||||
template <typename T, typename A1>
|
template <typename T, typename A1>
|
||||||
T* zone::allocate(A1 a1)
|
T* zone::allocate(A1 a1)
|
||||||
{
|
{
|
||||||
void* x = allocate_align(sizeof(T));
|
void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T));
|
||||||
try {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
@@ -383,7 +390,7 @@ T* zone::allocate(A1 a1)
|
|||||||
template <typename T, typename A1, typename A2>
|
template <typename T, typename A1, typename A2>
|
||||||
T* zone::allocate(A1 a1, A2 a2)
|
T* zone::allocate(A1 a1, A2 a2)
|
||||||
{
|
{
|
||||||
void* x = allocate_align(sizeof(T));
|
void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T));
|
||||||
try {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
@@ -402,7 +409,7 @@ T* zone::allocate(A1 a1, A2 a2)
|
|||||||
template <typename T, typename A1, typename A2, typename A3>
|
template <typename T, typename A1, typename A2, typename A3>
|
||||||
T* zone::allocate(A1 a1, A2 a2, A3 a3)
|
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 {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
@@ -421,7 +428,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3)
|
|||||||
template <typename T, typename A1, typename A2, typename A3, typename A4>
|
template <typename T, typename A1, typename A2, typename A3, typename A4>
|
||||||
T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4)
|
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 {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
@@ -440,7 +447,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4)
|
|||||||
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5>
|
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5>
|
||||||
T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
|
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 {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
@@ -459,7 +466,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
|
|||||||
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
|
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
|
||||||
T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
|
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 {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
@@ -478,7 +485,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
|
|||||||
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
|
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
|
||||||
T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
|
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 {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
@@ -497,7 +504,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
|
|||||||
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
|
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
|
||||||
T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
|
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 {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
@@ -516,7 +523,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
|
|||||||
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
|
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
|
||||||
T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
|
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 {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
@@ -535,7 +542,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
|
|||||||
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
|
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
|
||||||
T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10)
|
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 {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
@@ -554,7 +561,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9,
|
|||||||
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
|
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
|
||||||
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)
|
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 {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
@@ -573,7 +580,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9,
|
|||||||
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
|
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
|
||||||
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)
|
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 {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
@@ -592,7 +599,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9,
|
|||||||
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
|
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
|
||||||
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)
|
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 {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
@@ -611,7 +618,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9,
|
|||||||
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
|
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
|
||||||
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)
|
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 {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
@@ -630,7 +637,7 @@ T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9,
|
|||||||
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
|
template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
|
||||||
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)
|
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 {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
|
@@ -24,6 +24,14 @@
|
|||||||
#define MSGPACK_ZONE_ALIGN sizeof(void*)
|
#define MSGPACK_ZONE_ALIGN sizeof(void*)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
#define MSGPACK_ZONE_ALIGNOF(type) __alignof(type)
|
||||||
|
#else
|
||||||
|
#define MSGPACK_ZONE_ALIGNOF(type) __alignof__(type)
|
||||||
|
#endif
|
||||||
|
// For a compiler that doesn't support __alignof__:
|
||||||
|
// #define MSGPACK_ZONE_ALIGNOF(type) MSGPACK_ZONE_ALIGN
|
||||||
|
|
||||||
|
|
||||||
namespace msgpack {
|
namespace msgpack {
|
||||||
|
|
||||||
|
@@ -184,7 +184,6 @@ public:
|
|||||||
|
|
||||||
void swap(zone& o);
|
void swap(zone& o);
|
||||||
|
|
||||||
|
|
||||||
static void* operator new(std::size_t size)
|
static void* operator new(std::size_t size)
|
||||||
{
|
{
|
||||||
void* p = ::malloc(size);
|
void* p = ::malloc(size);
|
||||||
@@ -220,44 +219,51 @@ private:
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
static void object_delete(void* obj);
|
static void object_delete(void* obj);
|
||||||
|
|
||||||
void* allocate_expand(size_t size);
|
static char* get_aligned(char* ptr, size_t align);
|
||||||
|
|
||||||
|
char* allocate_expand(size_t size);
|
||||||
};
|
};
|
||||||
|
|
||||||
inline zone::zone(size_t chunk_size) noexcept:m_chunk_size(chunk_size), m_chunk_list(m_chunk_size)
|
inline zone::zone(size_t chunk_size) noexcept:m_chunk_size(chunk_size), m_chunk_list(m_chunk_size)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void* zone::allocate_align(size_t size, size_t align)
|
inline char* zone::get_aligned(char* ptr, size_t align)
|
||||||
{
|
{
|
||||||
char* aligned =
|
return
|
||||||
reinterpret_cast<char*>(
|
reinterpret_cast<char*>(
|
||||||
reinterpret_cast<size_t>(
|
reinterpret_cast<size_t>(
|
||||||
(m_chunk_list.m_ptr + (align - 1))) / align * align);
|
(ptr + (align - 1))) / align * align);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void* zone::allocate_align(size_t size, size_t align)
|
||||||
|
{
|
||||||
|
char* aligned = get_aligned(m_chunk_list.m_ptr, align);
|
||||||
size_t adjusted_size = size + (aligned - m_chunk_list.m_ptr);
|
size_t adjusted_size = size + (aligned - m_chunk_list.m_ptr);
|
||||||
if(m_chunk_list.m_free >= adjusted_size) {
|
if (m_chunk_list.m_free < adjusted_size) {
|
||||||
m_chunk_list.m_free -= adjusted_size;
|
size_t enough_size = size + align - 1;
|
||||||
m_chunk_list.m_ptr += adjusted_size;
|
char* ptr = allocate_expand(enough_size);
|
||||||
return aligned;
|
aligned = get_aligned(ptr, align);
|
||||||
|
adjusted_size = size + (aligned - m_chunk_list.m_ptr);
|
||||||
}
|
}
|
||||||
return reinterpret_cast<char*>(
|
m_chunk_list.m_free -= adjusted_size;
|
||||||
reinterpret_cast<size_t>(
|
m_chunk_list.m_ptr += adjusted_size;
|
||||||
allocate_expand(size + (align - 1))) / align * align);
|
return aligned;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void* zone::allocate_no_align(size_t size)
|
inline void* zone::allocate_no_align(size_t size)
|
||||||
{
|
{
|
||||||
if(m_chunk_list.m_free < size) {
|
|
||||||
return allocate_expand(size);
|
|
||||||
}
|
|
||||||
|
|
||||||
char* ptr = m_chunk_list.m_ptr;
|
char* ptr = m_chunk_list.m_ptr;
|
||||||
|
if(m_chunk_list.m_free < size) {
|
||||||
|
ptr = allocate_expand(size);
|
||||||
|
}
|
||||||
m_chunk_list.m_free -= size;
|
m_chunk_list.m_free -= size;
|
||||||
m_chunk_list.m_ptr += size;
|
m_chunk_list.m_ptr += size;
|
||||||
|
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void* zone::allocate_expand(size_t size)
|
inline char* zone::allocate_expand(size_t size)
|
||||||
{
|
{
|
||||||
chunk_list* const cl = &m_chunk_list;
|
chunk_list* const cl = &m_chunk_list;
|
||||||
|
|
||||||
@@ -279,8 +285,8 @@ inline void* zone::allocate_expand(size_t size)
|
|||||||
|
|
||||||
c->m_next = cl->m_head;
|
c->m_next = cl->m_head;
|
||||||
cl->m_head = c;
|
cl->m_head = c;
|
||||||
cl->m_free = sz - size;
|
cl->m_free = sz;
|
||||||
cl->m_ptr = ptr + size;
|
cl->m_ptr = ptr;
|
||||||
|
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
@@ -329,7 +335,7 @@ inline void zone::undo_allocate(size_t size)
|
|||||||
template <typename T, typename... Args>
|
template <typename T, typename... Args>
|
||||||
T* zone::allocate(Args... args)
|
T* zone::allocate(Args... args)
|
||||||
{
|
{
|
||||||
void* x = allocate_align(sizeof(T));
|
void* x = allocate_align(sizeof(T), MSGPACK_ZONE_ALIGNOF(T));
|
||||||
try {
|
try {
|
||||||
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
m_finalizer_array.push(&zone::object_destruct<T>, x);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
|
@@ -26,6 +26,14 @@
|
|||||||
#define MSGPACK_ZONE_ALIGN sizeof(void*)
|
#define MSGPACK_ZONE_ALIGN sizeof(void*)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
#define MSGPACK_ZONE_ALIGNOF(type) __alignof(type)
|
||||||
|
#else
|
||||||
|
#define MSGPACK_ZONE_ALIGNOF(type) __alignof__(type)
|
||||||
|
#endif
|
||||||
|
// For a compiler that doesn't support __alignof__:
|
||||||
|
// #define MSGPACK_ZONE_ALIGNOF(type) MSGPACK_ZONE_ALIGN
|
||||||
|
|
||||||
namespace msgpack {
|
namespace msgpack {
|
||||||
|
|
||||||
/// @cond
|
/// @cond
|
||||||
|
@@ -140,13 +140,17 @@ inline std::size_t aligned_zone_size(msgpack::object const& obj) {
|
|||||||
std::size_t s = 0;
|
std::size_t s = 0;
|
||||||
switch (obj.type) {
|
switch (obj.type) {
|
||||||
case msgpack::type::ARRAY:
|
case msgpack::type::ARRAY:
|
||||||
s += sizeof(msgpack::object) * obj.via.array.size;
|
s += msgpack::aligned_size(
|
||||||
|
sizeof(msgpack::object) * obj.via.array.size,
|
||||||
|
MSGPACK_ZONE_ALIGNOF(msgpack::object));
|
||||||
for (uint32_t i = 0; i < obj.via.array.size; ++i) {
|
for (uint32_t i = 0; i < obj.via.array.size; ++i) {
|
||||||
s += msgpack::aligned_zone_size(obj.via.array.ptr[i]);
|
s += msgpack::aligned_zone_size(obj.via.array.ptr[i]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case msgpack::type::MAP:
|
case msgpack::type::MAP:
|
||||||
s += sizeof(msgpack::object_kv) * obj.via.map.size;
|
s += msgpack::aligned_size(
|
||||||
|
sizeof(msgpack::object_kv) * obj.via.map.size,
|
||||||
|
MSGPACK_ZONE_ALIGNOF(msgpack::object_kv));
|
||||||
for (uint32_t i = 0; i < obj.via.map.size; ++i) {
|
for (uint32_t i = 0; i < obj.via.map.size; ++i) {
|
||||||
s += msgpack::aligned_zone_size(obj.via.map.ptr[i].key);
|
s += msgpack::aligned_zone_size(obj.via.map.ptr[i].key);
|
||||||
s += msgpack::aligned_zone_size(obj.via.map.ptr[i].val);
|
s += msgpack::aligned_zone_size(obj.via.map.ptr[i].val);
|
||||||
@@ -154,13 +158,14 @@ inline std::size_t aligned_zone_size(msgpack::object const& obj) {
|
|||||||
break;
|
break;
|
||||||
case msgpack::type::EXT:
|
case msgpack::type::EXT:
|
||||||
s += msgpack::aligned_size(
|
s += msgpack::aligned_size(
|
||||||
detail::add_ext_type_size<sizeof(std::size_t)>(obj.via.ext.size));
|
detail::add_ext_type_size<sizeof(std::size_t)>(obj.via.ext.size),
|
||||||
|
MSGPACK_ZONE_ALIGNOF(char));
|
||||||
break;
|
break;
|
||||||
case msgpack::type::STR:
|
case msgpack::type::STR:
|
||||||
s += msgpack::aligned_size(obj.via.str.size);
|
s += msgpack::aligned_size(obj.via.str.size, MSGPACK_ZONE_ALIGNOF(char));
|
||||||
break;
|
break;
|
||||||
case msgpack::type::BIN:
|
case msgpack::type::BIN:
|
||||||
s += msgpack::aligned_size(obj.via.bin.size);
|
s += msgpack::aligned_size(obj.via.bin.size, MSGPACK_ZONE_ALIGNOF(char));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -320,7 +325,7 @@ struct object_with_zone<msgpack::object> {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case msgpack::type::STR: {
|
case msgpack::type::STR: {
|
||||||
char* ptr = static_cast<char*>(o.zone.allocate_align(v.via.str.size));
|
char* ptr = static_cast<char*>(o.zone.allocate_align(v.via.str.size, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
o.via.str.ptr = ptr;
|
o.via.str.ptr = ptr;
|
||||||
o.via.str.size = v.via.str.size;
|
o.via.str.size = v.via.str.size;
|
||||||
std::memcpy(ptr, v.via.str.ptr, v.via.str.size);
|
std::memcpy(ptr, v.via.str.ptr, v.via.str.size);
|
||||||
@@ -328,7 +333,7 @@ struct object_with_zone<msgpack::object> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case msgpack::type::BIN: {
|
case msgpack::type::BIN: {
|
||||||
char* ptr = static_cast<char*>(o.zone.allocate_align(v.via.bin.size));
|
char* ptr = static_cast<char*>(o.zone.allocate_align(v.via.bin.size, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
o.via.bin.ptr = ptr;
|
o.via.bin.ptr = ptr;
|
||||||
o.via.bin.size = v.via.bin.size;
|
o.via.bin.size = v.via.bin.size;
|
||||||
std::memcpy(ptr, v.via.bin.ptr, v.via.bin.size);
|
std::memcpy(ptr, v.via.bin.ptr, v.via.bin.size);
|
||||||
@@ -336,7 +341,7 @@ struct object_with_zone<msgpack::object> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case msgpack::type::EXT: {
|
case msgpack::type::EXT: {
|
||||||
char* ptr = static_cast<char*>(o.zone.allocate_align(v.via.ext.size + 1));
|
char* ptr = static_cast<char*>(o.zone.allocate_align(v.via.ext.size + 1, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
o.via.ext.ptr = ptr;
|
o.via.ext.ptr = ptr;
|
||||||
o.via.ext.size = v.via.ext.size;
|
o.via.ext.size = v.via.ext.size;
|
||||||
std::memcpy(ptr, v.via.ext.ptr, v.via.ext.size + 1);
|
std::memcpy(ptr, v.via.ext.ptr, v.via.ext.size + 1);
|
||||||
@@ -344,7 +349,7 @@ struct object_with_zone<msgpack::object> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case msgpack::type::ARRAY:
|
case msgpack::type::ARRAY:
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object) * v.via.array.size));
|
o.via.array.ptr = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object) * v.via.array.size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
o.via.array.size = v.via.array.size;
|
o.via.array.size = v.via.array.size;
|
||||||
for (msgpack::object
|
for (msgpack::object
|
||||||
* po(o.via.array.ptr),
|
* po(o.via.array.ptr),
|
||||||
@@ -357,7 +362,7 @@ struct object_with_zone<msgpack::object> {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case msgpack::type::MAP:
|
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;
|
o.via.map.size = v.via.map.size;
|
||||||
for(msgpack::object_kv
|
for(msgpack::object_kv
|
||||||
* po(o.via.map.ptr),
|
* po(o.via.map.ptr),
|
||||||
|
@@ -117,7 +117,7 @@ struct unpack_array {
|
|||||||
if (size / sizeof(msgpack::object) != n) {
|
if (size / sizeof(msgpack::object) != n) {
|
||||||
throw msgpack::array_size_overflow("array size overflow");
|
throw msgpack::array_size_overflow("array size overflow");
|
||||||
}
|
}
|
||||||
o.via.array.ptr = static_cast<msgpack::object*>(u.zone().allocate_align(size));
|
o.via.array.ptr = static_cast<msgpack::object*>(u.zone().allocate_align(size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ struct unpack_map {
|
|||||||
if (size / sizeof(msgpack::object_kv) != n) {
|
if (size / sizeof(msgpack::object_kv) != n) {
|
||||||
throw msgpack::map_size_overflow("map size overflow");
|
throw msgpack::map_size_overflow("map size overflow");
|
||||||
}
|
}
|
||||||
o.via.map.ptr = static_cast<msgpack::object_kv*>(u.zone().allocate_align(size));
|
o.via.map.ptr = static_cast<msgpack::object_kv*>(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 {
|
else {
|
||||||
if (l > u.limit().str()) throw msgpack::str_size_overflow("str size overflow");
|
if (l > u.limit().str()) throw msgpack::str_size_overflow("str size overflow");
|
||||||
char* tmp = static_cast<char*>(u.zone().allocate_align(l));
|
char* tmp = static_cast<char*>(u.zone().allocate_align(l, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
std::memcpy(tmp, p, l);
|
std::memcpy(tmp, p, l);
|
||||||
o.via.str.ptr = tmp;
|
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 {
|
else {
|
||||||
if (l > u.limit().bin()) throw msgpack::bin_size_overflow("bin size overflow");
|
if (l > u.limit().bin()) throw msgpack::bin_size_overflow("bin size overflow");
|
||||||
char* tmp = static_cast<char*>(u.zone().allocate_align(l));
|
char* tmp = static_cast<char*>(u.zone().allocate_align(l, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
std::memcpy(tmp, p, l);
|
std::memcpy(tmp, p, l);
|
||||||
o.via.bin.ptr = tmp;
|
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 {
|
else {
|
||||||
if (l > u.limit().ext()) throw msgpack::ext_size_overflow("ext size overflow");
|
if (l > u.limit().ext()) throw msgpack::ext_size_overflow("ext size overflow");
|
||||||
char* tmp = static_cast<char*>(u.zone().allocate_align(l));
|
char* tmp = static_cast<char*>(u.zone().allocate_align(l, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
std::memcpy(tmp, p, l);
|
std::memcpy(tmp, p, l);
|
||||||
o.via.ext.ptr = tmp;
|
o.via.ext.ptr = tmp;
|
||||||
}
|
}
|
||||||
|
@@ -92,9 +92,15 @@ public:
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
bool visit_float(double v) {
|
bool visit_float32(float v) {
|
||||||
msgpack::object* obj = m_stack.back();
|
msgpack::object* obj = m_stack.back();
|
||||||
obj->type = msgpack::type::FLOAT;
|
obj->type = msgpack::type::FLOAT32;
|
||||||
|
obj->via.f64 = v;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
bool visit_float64(double v) {
|
||||||
|
msgpack::object* obj = m_stack.back();
|
||||||
|
obj->type = msgpack::type::FLOAT64;
|
||||||
obj->via.f64 = v;
|
obj->via.f64 = v;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -107,7 +113,7 @@ public:
|
|||||||
set_referenced(true);
|
set_referenced(true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
char* tmp = static_cast<char*>(zone().allocate_align(size));
|
char* tmp = static_cast<char*>(zone().allocate_align(size, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
std::memcpy(tmp, v, size);
|
std::memcpy(tmp, v, size);
|
||||||
obj->via.str.ptr = tmp;
|
obj->via.str.ptr = tmp;
|
||||||
}
|
}
|
||||||
@@ -123,7 +129,7 @@ public:
|
|||||||
set_referenced(true);
|
set_referenced(true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
char* tmp = static_cast<char*>(zone().allocate_align(size));
|
char* tmp = static_cast<char*>(zone().allocate_align(size, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
std::memcpy(tmp, v, size);
|
std::memcpy(tmp, v, size);
|
||||||
obj->via.bin.ptr = tmp;
|
obj->via.bin.ptr = tmp;
|
||||||
}
|
}
|
||||||
@@ -139,7 +145,7 @@ public:
|
|||||||
set_referenced(true);
|
set_referenced(true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
char* tmp = static_cast<char*>(zone().allocate_align(size));
|
char* tmp = static_cast<char*>(zone().allocate_align(size, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
std::memcpy(tmp, v, size);
|
std::memcpy(tmp, v, size);
|
||||||
obj->via.ext.ptr = tmp;
|
obj->via.ext.ptr = tmp;
|
||||||
}
|
}
|
||||||
@@ -161,7 +167,7 @@ public:
|
|||||||
throw msgpack::array_size_overflow("array size overflow");
|
throw msgpack::array_size_overflow("array size overflow");
|
||||||
}
|
}
|
||||||
obj->via.array.ptr =
|
obj->via.array.ptr =
|
||||||
static_cast<msgpack::object*>(m_zone->allocate_align(size));
|
static_cast<msgpack::object*>(m_zone->allocate_align(size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
|
||||||
}
|
}
|
||||||
m_stack.push_back(obj->via.array.ptr);
|
m_stack.push_back(obj->via.array.ptr);
|
||||||
return true;
|
return true;
|
||||||
@@ -192,7 +198,7 @@ public:
|
|||||||
throw msgpack::map_size_overflow("map size overflow");
|
throw msgpack::map_size_overflow("map size overflow");
|
||||||
}
|
}
|
||||||
obj->via.map.ptr =
|
obj->via.map.ptr =
|
||||||
static_cast<msgpack::object_kv*>(m_zone->allocate_align(size));
|
static_cast<msgpack::object_kv*>(m_zone->allocate_align(size, MSGPACK_ZONE_ALIGNOF(msgpack::object_kv)));
|
||||||
}
|
}
|
||||||
m_stack.push_back(reinterpret_cast<msgpack::object*>(obj->via.map.ptr));
|
m_stack.push_back(reinterpret_cast<msgpack::object*>(obj->via.map.ptr));
|
||||||
return true;
|
return true;
|
||||||
|
@@ -32,7 +32,10 @@ struct null_visitor {
|
|||||||
bool visit_negative_integer(int64_t /*v*/) {
|
bool visit_negative_integer(int64_t /*v*/) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
bool visit_float(double /*v*/) {
|
bool visit_float32(float /*v*/) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
bool visit_float64(double /*v*/) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
bool visit_str(const char* /*v*/, uint32_t /*size*/) {
|
bool visit_str(const char* /*v*/, uint32_t /*size*/) {
|
||||||
|
@@ -339,7 +339,7 @@ inline parse_return context<VisitorHolder>::execute(const char* data, std::size_
|
|||||||
case MSGPACK_CS_FLOAT: {
|
case MSGPACK_CS_FLOAT: {
|
||||||
union { uint32_t i; float f; } mem;
|
union { uint32_t i; float f; } mem;
|
||||||
load<uint32_t>(mem.i, n);
|
load<uint32_t>(mem.i, n);
|
||||||
bool visret = holder().visitor().visit_float(mem.f);
|
bool visret = holder().visitor().visit_float32(mem.f);
|
||||||
parse_return upr = after_visit_proc(visret, off);
|
parse_return upr = after_visit_proc(visret, off);
|
||||||
if (upr != PARSE_CONTINUE) return upr;
|
if (upr != PARSE_CONTINUE) return upr;
|
||||||
} break;
|
} break;
|
||||||
@@ -352,7 +352,7 @@ inline parse_return context<VisitorHolder>::execute(const char* data, std::size_
|
|||||||
// 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
|
||||||
bool visret = holder().visitor().visit_float(mem.f);
|
bool visret = holder().visitor().visit_float64(mem.f);
|
||||||
parse_return upr = after_visit_proc(visret, off);
|
parse_return upr = after_visit_proc(visret, off);
|
||||||
if (upr != PARSE_CONTINUE) return upr;
|
if (upr != PARSE_CONTINUE) return upr;
|
||||||
} break;
|
} break;
|
||||||
|
@@ -20,6 +20,7 @@ namespace msgpack {
|
|||||||
MSGPACK_API_VERSION_NAMESPACE(v2) {
|
MSGPACK_API_VERSION_NAMESPACE(v2) {
|
||||||
/// @endcond
|
/// @endcond
|
||||||
|
|
||||||
|
|
||||||
struct zone_push_finalizer {
|
struct zone_push_finalizer {
|
||||||
zone_push_finalizer(msgpack::zone& z):m_z(&z) {}
|
zone_push_finalizer(msgpack::zone& z):m_z(&z) {}
|
||||||
void set_zone(msgpack::zone& z) { m_z = &z; }
|
void set_zone(msgpack::zone& z) { m_z = &z; }
|
||||||
|
@@ -298,7 +298,7 @@ const auto mp_object_def =
|
|||||||
auto& app_specific = x3::get<tag_app_specific>(ctx).get();
|
auto& app_specific = x3::get<tag_app_specific>(ctx).get();
|
||||||
union { uint32_t i; float f; } mem;
|
union { uint32_t i; float f; } mem;
|
||||||
mem.i = _attr(ctx);
|
mem.i = _attr(ctx);
|
||||||
app_specific.vis.visit_float(mem.f);
|
app_specific.vis.visit_float32(mem.f);
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
@@ -316,7 +316,7 @@ const auto mp_object_def =
|
|||||||
// 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
|
||||||
app_specific.vis.visit_float(mem.f);
|
app_specific.vis.visit_float64(mem.f);
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
@@ -1,3 +1,3 @@
|
|||||||
#define MSGPACK_VERSION_MAJOR 2
|
#define MSGPACK_VERSION_MAJOR 2
|
||||||
#define MSGPACK_VERSION_MINOR 1
|
#define MSGPACK_VERSION_MINOR 1
|
||||||
#define MSGPACK_VERSION_REVISION 3
|
#define MSGPACK_VERSION_REVISION 4
|
||||||
|
@@ -212,4 +212,35 @@ TEST(MSGPACK_BOOST, pack_convert_no_def_con_def_con)
|
|||||||
|
|
||||||
#endif // !defined(MSGPACK_USE_CPP03
|
#endif // !defined(MSGPACK_USE_CPP03
|
||||||
|
|
||||||
|
#include <boost/fusion/include/std_pair.hpp>
|
||||||
|
|
||||||
|
TEST(MSGPACK_BOOST, fusion_pack_unpack_convert_pair)
|
||||||
|
{
|
||||||
|
std::stringstream ss;
|
||||||
|
std::pair<bool, int> val1(false, 42);
|
||||||
|
msgpack::pack(ss, val1);
|
||||||
|
msgpack::object_handle oh =
|
||||||
|
msgpack::unpack(ss.str().data(), ss.str().size());
|
||||||
|
std::pair<bool, int> val2 = oh.get().as<std::pair<bool, int> >();
|
||||||
|
EXPECT_TRUE(val1.first == val2.first);
|
||||||
|
EXPECT_TRUE(val1.second == val2.second);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if !defined(MSGPACK_USE_CPP03)
|
||||||
|
|
||||||
|
#include <boost/fusion/include/std_tuple.hpp>
|
||||||
|
|
||||||
|
TEST(MSGPACK_BOOST, fusion_pack_unpack_convert_tuple)
|
||||||
|
{
|
||||||
|
std::stringstream ss;
|
||||||
|
std::tuple<bool, int> val1(false, 42);
|
||||||
|
msgpack::pack(ss, val1);
|
||||||
|
msgpack::object_handle oh =
|
||||||
|
msgpack::unpack(ss.str().data(), ss.str().size());
|
||||||
|
std::tuple<bool, int> val2 = oh.get().as<std::tuple<bool, int> >();
|
||||||
|
EXPECT_TRUE(val1 == val2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // !defined(MSGPACK_USE_CPP03)
|
||||||
|
|
||||||
#endif // defined(MSGPACK_USE_BOOST)
|
#endif // defined(MSGPACK_USE_BOOST)
|
||||||
|
@@ -523,7 +523,7 @@ TEST(MSGPACKC, simple_buffer_fixext_1byte_255)
|
|||||||
{
|
{
|
||||||
const size_t size = 255;
|
const size_t size = 255;
|
||||||
char buf[size];
|
char buf[size];
|
||||||
for (size_t i = 0; i != size; ++i) buf[i] = i;
|
for (size_t i = 0; i != size; ++i) buf[i] = (char)i;
|
||||||
|
|
||||||
msgpack_sbuffer sbuf;
|
msgpack_sbuffer sbuf;
|
||||||
msgpack_sbuffer_init(&sbuf);
|
msgpack_sbuffer_init(&sbuf);
|
||||||
@@ -550,7 +550,7 @@ TEST(MSGPACKC, simple_buffer_fixext_2byte_256)
|
|||||||
{
|
{
|
||||||
const size_t size = 256;
|
const size_t size = 256;
|
||||||
char buf[size];
|
char buf[size];
|
||||||
for (size_t i = 0; i != size; ++i) buf[i] = i;
|
for (size_t i = 0; i != size; ++i) buf[i] = (char)i;
|
||||||
|
|
||||||
msgpack_sbuffer sbuf;
|
msgpack_sbuffer sbuf;
|
||||||
msgpack_sbuffer_init(&sbuf);
|
msgpack_sbuffer_init(&sbuf);
|
||||||
@@ -577,7 +577,7 @@ TEST(MSGPACKC, simple_buffer_fixext_2byte_65535)
|
|||||||
{
|
{
|
||||||
const size_t size = 65535;
|
const size_t size = 65535;
|
||||||
char buf[size];
|
char buf[size];
|
||||||
for (size_t i = 0; i != size; ++i) buf[i] = i;
|
for (size_t i = 0; i != size; ++i) buf[i] = (char)i;
|
||||||
|
|
||||||
msgpack_sbuffer sbuf;
|
msgpack_sbuffer sbuf;
|
||||||
msgpack_sbuffer_init(&sbuf);
|
msgpack_sbuffer_init(&sbuf);
|
||||||
@@ -604,7 +604,7 @@ TEST(MSGPACKC, simple_buffer_fixext_4byte_65536)
|
|||||||
{
|
{
|
||||||
const size_t size = 65536;
|
const size_t size = 65536;
|
||||||
char buf[size];
|
char buf[size];
|
||||||
for (size_t i = 0; i != size; ++i) buf[i] = i;
|
for (size_t i = 0; i != size; ++i) buf[i] = (char)i;
|
||||||
|
|
||||||
msgpack_sbuffer sbuf;
|
msgpack_sbuffer sbuf;
|
||||||
msgpack_sbuffer_init(&sbuf);
|
msgpack_sbuffer_init(&sbuf);
|
||||||
|
@@ -181,7 +181,7 @@ TEST(object, cross_zone_copy_ext)
|
|||||||
msgpack::object::with_zone obj1(z1);
|
msgpack::object::with_zone obj1(z1);
|
||||||
|
|
||||||
obj1.type = msgpack::type::EXT;
|
obj1.type = msgpack::type::EXT;
|
||||||
char* ptr = static_cast<char*>(obj1.zone.allocate_align(2));
|
char* ptr = static_cast<char*>(obj1.zone.allocate_align(2, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
ptr[0] = 1;
|
ptr[0] = 1;
|
||||||
ptr[1] = 2;
|
ptr[1] = 2;
|
||||||
obj1.via.ext.ptr = ptr;
|
obj1.via.ext.ptr = ptr;
|
||||||
@@ -204,7 +204,7 @@ TEST(object, cross_zone_copy_construct_ext)
|
|||||||
msgpack::object::with_zone obj1(z1);
|
msgpack::object::with_zone obj1(z1);
|
||||||
|
|
||||||
obj1.type = msgpack::type::EXT;
|
obj1.type = msgpack::type::EXT;
|
||||||
char* ptr = static_cast<char*>(obj1.zone.allocate_align(2));
|
char* ptr = static_cast<char*>(obj1.zone.allocate_align(2, MSGPACK_ZONE_ALIGNOF(char)));
|
||||||
ptr[0] = 1;
|
ptr[0] = 1;
|
||||||
ptr[1] = 2;
|
ptr[1] = 2;
|
||||||
obj1.via.ext.ptr = ptr;
|
obj1.via.ext.ptr = ptr;
|
||||||
|
Reference in New Issue
Block a user