mirror of
				https://github.com/msgpack/msgpack-c.git
				synced 2025-10-22 08:02:08 +02:00 
			
		
		
		
	Compare commits
	
		
			21 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | fb64ea0b68 | ||
|   | 0b9a597360 | ||
|   | d5cef62cb9 | ||
|   | 0b2c6d9d1a | ||
|   | cef8a6fdfa | ||
|   | cd5ba5057e | ||
|   | 5eabf7189a | ||
|   | 12be5d06e3 | ||
|   | 25c3947a91 | ||
|   | d13d933eea | ||
|   | 33ff3a45b8 | ||
|   | 05de839b44 | ||
|   | d59e1d7716 | ||
|   | d5c837b612 | ||
|   | 3b405fcab3 | ||
|   | 68acf21a8e | ||
|   | 05f654fd64 | ||
|   | 07c5b00c4a | ||
|   | 7bcb6aad05 | ||
|   | 6f0683bb46 | ||
|   | 8b87e62835 | 
							
								
								
									
										6
									
								
								.github/depends/zlib.sh
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/depends/zlib.sh
									
									
									
									
										vendored
									
									
								
							| @@ -27,9 +27,9 @@ while getopts "b:t:p:" c; do | ||||
| done | ||||
|  | ||||
| mkdir $prefix || exit 1 | ||||
| wget https://zlib.net/zlib-1.2.11.tar.gz || exit 1 | ||||
| tar -xf zlib-1.2.11.tar.gz || exit 1 | ||||
| cd zlib-1.2.11 | ||||
| wget https://zlib.net/zlib-1.2.12.tar.gz || exit 1 | ||||
| tar -xf zlib-1.2.12.tar.gz || exit 1 | ||||
| cd zlib-1.2.12 | ||||
|  | ||||
| build() | ||||
| { | ||||
|   | ||||
							
								
								
									
										4
									
								
								.github/workflows/gha.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/gha.yml
									
									
									
									
										vendored
									
									
								
							| @@ -36,7 +36,7 @@ jobs: | ||||
|       uses: actions/cache@v2 | ||||
|       with: | ||||
|         path: ~/zlib-prefix/ | ||||
|         key: ${{ runner.os }}-zlib-1-2-11-2021-08-09 | ||||
|         key: ${{ runner.os }}-zlib-1-2-12-2021-08-09 | ||||
|  | ||||
|     - name: Build zlib | ||||
|       if: steps.cache-zlib.outputs.cache-hit != 'true' | ||||
| @@ -111,7 +111,7 @@ jobs: | ||||
|       uses: actions/cache@v2 | ||||
|       with: | ||||
|         path: ~/zlib-prefix/ | ||||
|         key: ${{ runner.os }}-zlib-1-2-11-2021-08-09 | ||||
|         key: ${{ runner.os }}-zlib-1-2-12-2021-08-09 | ||||
|  | ||||
|     - name: Build zlib | ||||
|       if: steps.cache-zlib.outputs.cache-hit != 'true' | ||||
|   | ||||
| @@ -1,3 +1,11 @@ | ||||
| # 2022-09-07 version 4.1.2 for C++ | ||||
|   * Fix noexcept on zone (#1030) | ||||
|   * Improve cmake support (#1028, #1032) | ||||
|   * Improve CI (#1023) | ||||
|   * Improve supporting platform (#1021) | ||||
|   * Refine double/float packing (#1018) | ||||
|   * Refine include files dependency (#1011) | ||||
|  | ||||
| # 2022-03-09 version 4.1.1 for C++ | ||||
|   * Remove chrono support on `MSGPACK_NO_BOOST` to fix  compile error. | ||||
|   * Improve build system (#1003) | ||||
|   | ||||
| @@ -4,6 +4,8 @@ CMAKE_POLICY (SET CMP0054 NEW) | ||||
|  | ||||
| PROJECT (msgpack LANGUAGES CXX) | ||||
|  | ||||
| ADD_LIBRARY (msgpackc-cxx INTERFACE) | ||||
|  | ||||
| FILE (READ ${CMAKE_CURRENT_SOURCE_DIR}/include/msgpack/version_master.hpp contents) | ||||
| STRING (REGEX MATCH "#define MSGPACK_VERSION_MAJOR *([0-9a-zA-Z_]*)" NULL_OUT ${contents}) | ||||
| SET (VERSION_MAJOR ${CMAKE_MATCH_1}) | ||||
| @@ -55,11 +57,11 @@ ENDIF () | ||||
|  | ||||
| IF (MSGPACK_32BIT) | ||||
|     IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
|         SET (CMAKE_CXX_FLAGS "-m32 ${CMAKE_CXX_FLAGS}") | ||||
|         SET (CMAKE_EXE_LINKER_FLAGS "-m32 ${CMAKE_EXE_LINKER_FLAGS}") | ||||
|         TARGET_COMPILE_OPTIONS(msgpackc-cxx INTERFACE -m32) | ||||
|         TARGET_LINK_OPTIONS(msgpackc-cxx INTERFACE -m32) | ||||
|     ELSEIF ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") | ||||
|         SET (CMAKE_CXX_FLAGS "-m32 ${CMAKE_CXX_FLAGS}") | ||||
|         SET (CMAKE_EXE_LINKER_FLAGS "-m32 ${CMAKE_EXE_LINKER_FLAGS}") | ||||
|         TARGET_COMPILE_OPTIONS(msgpackc-cxx INTERFACE -m32) | ||||
|         TARGET_LINK_OPTIONS(msgpackc-cxx INTERFACE -m32) | ||||
|     ENDIF () | ||||
| ENDIF () | ||||
|  | ||||
| @@ -76,18 +78,18 @@ IF (MSGPACK_USE_BOOST) | ||||
|  | ||||
|     FIND_PACKAGE (Boost REQUIRED) | ||||
| ELSE () | ||||
|     SET (CMAKE_CXX_FLAGS "-DMSGPACK_NO_BOOST ${CMAKE_CXX_FLAGS}") | ||||
|     TARGET_COMPILE_DEFINITIONS(msgpackc-cxx INTERFACE MSGPACK_NO_BOOST) | ||||
| ENDIF () | ||||
|  | ||||
| IF (MSGPACK_CHAR_SIGN) | ||||
|     SET (CMAKE_CXX_FLAGS "-f${MSGPACK_CHAR_SIGN}-char ${CMAKE_CXX_FLAGS}") | ||||
|     TARGET_COMPILE_OPTIONS(msgpackc-cxx INTERFACE -f${MSGPACK_CHAR_SIGN}-char) | ||||
| ENDIF () | ||||
|  | ||||
| IF (MSGPACK_DEFAULT_API_VERSION) | ||||
|     SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=${MSGPACK_DEFAULT_API_VERSION} ${CMAKE_CXX_FLAGS}") | ||||
|     TARGET_COMPILE_DEFINITIONS(msgpackc-cxx INTERFACE MSGPACK_DEFAULT_API_VERSION=${MSGPACK_DEFAULT_API_VERSION}) | ||||
| ELSE () | ||||
|     SET (MSGPACK_DEFAULT_API_VERSION 3) | ||||
|     SET (CMAKE_CXX_FLAGS "-DMSGPACK_DEFAULT_API_VERSION=3 ${CMAKE_CXX_FLAGS}") | ||||
|     TARGET_COMPILE_DEFINITIONS(msgpackc-cxx INTERFACE MSGPACK_DEFAULT_API_VERSION=3) | ||||
| ENDIF () | ||||
|  | ||||
| IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") | ||||
| @@ -110,8 +112,6 @@ ENDIF () | ||||
|  | ||||
| INCLUDE (Files.cmake) | ||||
|  | ||||
| ADD_LIBRARY (msgpackc-cxx INTERFACE) | ||||
|  | ||||
| TARGET_INCLUDE_DIRECTORIES (msgpackc-cxx | ||||
|     INTERFACE | ||||
|         $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> | ||||
| @@ -134,7 +134,6 @@ IF (MSGPACK_GEN_COVERAGE) | ||||
|  | ||||
|     INCLUDE (CodeCoverage) | ||||
|     SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COVERAGE_FLAGS}") | ||||
|  | ||||
|     SETUP_TARGET_FOR_COVERAGE(coverage make coverage test) | ||||
| ENDIF () | ||||
|  | ||||
| @@ -157,7 +156,7 @@ IF (MSGPACK_FUZZ_REGRESSION) | ||||
| ENDIF () | ||||
|  | ||||
| IF ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "sparc") | ||||
|     SET (CMAKE_CXX_FLAGS "-DMSGPACK_ZONE_ALIGN=8 ${CMAKE_CXX_FLAGS}") | ||||
|     TARGET_COMPILE_DEFINITIONS(msgpackc-cxx INTERFACE MSGPACK_ZONE_ALIGN=8) | ||||
| ENDIF () | ||||
|  | ||||
| IF (MSGPACK_BUILD_EXAMPLES) | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| `msgpack` for C++ | ||||
| =================== | ||||
|  | ||||
| Version 4.1.1 [](https://github.com/msgpack/msgpack-c/actions) [](https://ci.appveyor.com/project/redboltz/msgpack-c/branch/cpp_master) | ||||
| Version 4.1.2 [](https://github.com/msgpack/msgpack-c/actions) [](https://ci.appveyor.com/project/redboltz/msgpack-c/branch/cpp_master) | ||||
| [](https://codecov.io/gh/msgpack/msgpack-c/branch/cpp_master) | ||||
|  | ||||
| It's like JSON but smaller and faster. | ||||
|   | ||||
							
								
								
									
										16
									
								
								appveyor.yml
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								appveyor.yml
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| version: 4.1.1.{build} | ||||
| version: 4.1.2.{build} | ||||
|  | ||||
| branches: | ||||
|   only: | ||||
| @@ -23,10 +23,10 @@ environment: | ||||
|       boost_subdir: lib32-msvc-14.0 | ||||
| build_script: | ||||
|   - ps: | | ||||
|       appveyor DownloadFile http://zlib.net/zlib-1.2.11.tar.gz -FileName zlib-1.2.11.tar.gz | ||||
|       7z x zlib-1.2.11.tar.gz 2> $null | ||||
|       7z x zlib-1.2.11.tar 2> $null | ||||
|       cd zlib-1.2.11 | ||||
|       appveyor DownloadFile http://zlib.net/zlib-1.2.12.tar.gz -FileName zlib-1.2.12.tar.gz | ||||
|       7z x zlib-1.2.12.tar.gz 2> $null | ||||
|       7z x zlib-1.2.12.tar 2> $null | ||||
|       cd zlib-1.2.12 | ||||
|  | ||||
|       md build | ||||
|       md prefix | ||||
| @@ -34,7 +34,7 @@ build_script: | ||||
|  | ||||
|       cmake ` | ||||
|           -G $env:msvc ` | ||||
|           -D CMAKE_INSTALL_PREFIX="$env:APPVEYOR_BUILD_FOLDER\zlib-1.2.11\prefix" ` | ||||
|           -D CMAKE_INSTALL_PREFIX="$env:APPVEYOR_BUILD_FOLDER\zlib-1.2.12\prefix" ` | ||||
|           .. | ||||
|       if ($LastExitCode -ne 0) { exit $LastExitCode } | ||||
|  | ||||
| @@ -52,7 +52,7 @@ build_script: | ||||
|           -D MSGPACK_BUILD_EXAMPLES=ON ` | ||||
|           -D MSGPACK_BUILD_TESTS=ON ` | ||||
|           -D CMAKE_EXE_LINKER_FLAGS=/LIBPATH:"$env:boost_prefix\$env:boost_subdir" ` | ||||
|           -D CMAKE_PREFIX_PATH="$env:boost_prefix;$env:APPVEYOR_BUILD_FOLDER\zlib-1.2.11\prefix" ` | ||||
|           -D CMAKE_PREFIX_PATH="$env:boost_prefix;$env:APPVEYOR_BUILD_FOLDER\zlib-1.2.12\prefix" ` | ||||
|           -D CMAKE_INSTALL_PREFIX="$env:APPVEYOR_BUILD_FOLDER\prefix" ` | ||||
|           -D CMAKE_CXX_FLAGS="/D_VARIADIC_MAX=10 /EHsc /DBOOST_ALL_DYN_LINK" ` | ||||
|           .. | ||||
| @@ -62,5 +62,5 @@ build_script: | ||||
|       if ($LastExitCode -ne 0) { exit $LastExitCode } | ||||
|  | ||||
| test_script: | ||||
| - set PATH=%PATH%;%APPVEYOR_BUILD_FOLDER%\zlib-1.2.11\build\Release;%APPVEYOR_BUILD_FOLDER%\build\release;%boost_prefix%\%boost_subdir% | ||||
| - set PATH=%PATH%;%APPVEYOR_BUILD_FOLDER%\zlib-1.2.12\build\Release;%APPVEYOR_BUILD_FOLDER%\build\release;%boost_prefix%\%boost_subdir% | ||||
| - ctest -VV -C Release | ||||
|   | ||||
| @@ -138,7 +138,7 @@ class zone { | ||||
|     finalizer_array m_finalizer_array; | ||||
|  | ||||
| public: | ||||
|     zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE) /* throw() */; | ||||
|     zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE); | ||||
|  | ||||
| public: | ||||
|     void* allocate_align(size_t size, size_t align = MSGPACK_ZONE_ALIGN); | ||||
| @@ -194,7 +194,7 @@ private: | ||||
|     zone& operator=(const zone&); | ||||
| }; | ||||
|  | ||||
| inline zone::zone(size_t chunk_size) /* throw() */ :m_chunk_size(chunk_size), m_chunk_list(m_chunk_size) | ||||
| inline zone::zone(size_t chunk_size):m_chunk_size(chunk_size), m_chunk_list(m_chunk_size) | ||||
| { | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #if defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #if defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) | ||||
|   | ||||
| @@ -27,7 +27,7 @@ http://www.boost.org/LICENSE_1_0.txt) | ||||
| #define MSGPACK_OS_LINUX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE | ||||
|  | ||||
| #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ | ||||
|     defined(linux) || defined(__linux) \ | ||||
|     defined(linux) || defined(__linux) || defined(__linux__) \ | ||||
|     ) | ||||
| #   undef MSGPACK_OS_LINUX | ||||
| #   define MSGPACK_OS_LINUX MSGPACK_VERSION_NUMBER_AVAILABLE | ||||
|   | ||||
| @@ -88,7 +88,7 @@ | ||||
| #elif defined(unix) || defined(__unix) || defined(__APPLE__) || defined(__OpenBSD__) | ||||
|  | ||||
| #include <arpa/inet.h>  /* __BYTE_ORDER */ | ||||
| #   if defined(linux) | ||||
| #   if defined(linux) || defined(__linux__) | ||||
| #       include <byteswap.h> | ||||
| #   endif | ||||
|  | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
|  | ||||
| namespace msgpack { | ||||
|  | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
|  | ||||
| namespace msgpack { | ||||
|  | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
| #include "msgpack/meta.hpp" | ||||
|  | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
| #include "msgpack/adaptor/boost/string_ref.hpp" | ||||
| #include "msgpack/adaptor/ext.hpp" | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #if defined(__GNUC__) | ||||
|   | ||||
| @@ -15,6 +15,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <boost/utility/string_ref.hpp> | ||||
|   | ||||
| @@ -15,6 +15,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <boost/utility/string_view.hpp> | ||||
|   | ||||
| @@ -13,6 +13,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
| #include "msgpack/meta.hpp" | ||||
|  | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <array> | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <array> | ||||
|   | ||||
| @@ -13,6 +13,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <chrono> | ||||
|   | ||||
| @@ -13,6 +13,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <forward_list> | ||||
|   | ||||
| @@ -13,6 +13,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <memory> | ||||
|   | ||||
| @@ -13,6 +13,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <memory> | ||||
|   | ||||
| @@ -13,6 +13,7 @@ | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
|  | ||||
| #include <ctime> | ||||
|  | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
| #include "msgpack/meta.hpp" | ||||
|  | ||||
|   | ||||
| @@ -13,6 +13,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <memory> | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <unordered_map> | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <unordered_set> | ||||
|   | ||||
| @@ -16,6 +16,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <array> | ||||
|   | ||||
| @@ -16,6 +16,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/adaptor/int_decl.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
|   | ||||
| @@ -16,6 +16,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <cstring> | ||||
|   | ||||
| @@ -16,6 +16,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <optional> | ||||
|   | ||||
| @@ -16,6 +16,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <string_view> | ||||
|   | ||||
| @@ -16,6 +16,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <vector> | ||||
|   | ||||
| @@ -18,6 +18,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
| #include "msgpack/meta.hpp" | ||||
|  | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <deque> | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
|  | ||||
| namespace msgpack { | ||||
| /// @cond | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
|  | ||||
| namespace msgpack { | ||||
| /// @cond | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include <cstring> | ||||
| #include <string> | ||||
|  | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/int.hpp" | ||||
|  | ||||
| namespace msgpack { | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include <limits> | ||||
|  | ||||
| namespace msgpack { | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <list> | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
|  | ||||
| namespace msgpack { | ||||
|  | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/meta.hpp" | ||||
|  | ||||
| #include <utility> | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include <cstring> | ||||
| #include <string> | ||||
|  | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/msgpack_tuple.hpp" | ||||
|  | ||||
| namespace msgpack { | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <string> | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #if defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #if defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700) | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
|  | ||||
| namespace msgpack { | ||||
|  | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <vector> | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <vector> | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <vector> | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
| #include "msgpack/adaptor/check_container_size.hpp" | ||||
|  | ||||
| #include <vector> | ||||
|   | ||||
| @@ -138,7 +138,7 @@ class zone { | ||||
|     finalizer_array m_finalizer_array; | ||||
|  | ||||
| public: | ||||
|     zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE) /* throw() */; | ||||
|     zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE); | ||||
|  | ||||
| public: | ||||
|     void* allocate_align(size_t size, size_t align = MSGPACK_ZONE_ALIGN); | ||||
| @@ -239,7 +239,7 @@ private: | ||||
|     zone& operator=(const zone&); | ||||
| }; | ||||
|  | ||||
| inline zone::zone(size_t chunk_size) /* throw() */ :m_chunk_size(chunk_size), m_chunk_list(m_chunk_size) | ||||
| inline zone::zone(size_t chunk_size):m_chunk_size(chunk_size), m_chunk_list(m_chunk_size) | ||||
| { | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -171,7 +171,7 @@ private: | ||||
|     finalizer_array m_finalizer_array; | ||||
|  | ||||
| public: | ||||
|     zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE) noexcept; | ||||
|     zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE); | ||||
|  | ||||
| public: | ||||
|     void* allocate_align(size_t size, size_t align = MSGPACK_ZONE_ALIGN); | ||||
| @@ -226,7 +226,7 @@ private: | ||||
|     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):m_chunk_size(chunk_size), m_chunk_list(m_chunk_size) | ||||
| { | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -1138,6 +1138,17 @@ inline packer<Stream>& packer<Stream>::pack_unsigned_long_long(unsigned long lon | ||||
| template <typename Stream> | ||||
| inline packer<Stream>& packer<Stream>::pack_float(float d) | ||||
| { | ||||
|     if(d == d) { // check for nan  | ||||
|         // compare d to limits to avoid undefined behaviour | ||||
|         if(d >= 0 && d <= float(std::numeric_limits<uint64_t>::max()) && d == float(uint64_t(d))) { | ||||
|             pack_imp_uint64(uint64_t(d)); | ||||
|             return *this;         | ||||
|         } else if(d < 0 && d >= float(std::numeric_limits<int64_t>::min()) && d == float(int64_t(d))) { | ||||
|             pack_imp_int64(int64_t(d)); | ||||
|             return *this; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     union { float f; uint32_t i; } mem; | ||||
|     mem.f = d; | ||||
|     char buf[5]; | ||||
| @@ -1149,6 +1160,17 @@ inline packer<Stream>& packer<Stream>::pack_float(float d) | ||||
| template <typename Stream> | ||||
| inline packer<Stream>& packer<Stream>::pack_double(double d) | ||||
| { | ||||
|     if(d == d) { // check for nan  | ||||
|         // compare d to limits to avoid undefined behaviour | ||||
|         if(d >= 0 && d <= double(std::numeric_limits<uint64_t>::max()) && d == double(uint64_t(d))) { | ||||
|             pack_imp_uint64(uint64_t(d)); | ||||
|             return *this;         | ||||
|         } else if(d < 0 && d >= double(std::numeric_limits<int64_t>::min()) && d == double(int64_t(d))) { | ||||
|             pack_imp_int64(int64_t(d)); | ||||
|             return *this; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     union { double f; uint64_t i; } mem; | ||||
|     mem.f = d; | ||||
|     char buf[9]; | ||||
|   | ||||
| @@ -10,6 +10,7 @@ | ||||
| #ifndef MSGPACK_V1_SBUFFER_HPP | ||||
| #define MSGPACK_V1_SBUFFER_HPP | ||||
|  | ||||
| #include "msgpack/v1/cpp_config_decl.hpp" | ||||
| #include "msgpack/v1/sbuffer_decl.hpp" | ||||
| #include "msgpack/assert.hpp" | ||||
|  | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
|  | ||||
| namespace msgpack { | ||||
|  | ||||
|   | ||||
| @@ -12,6 +12,7 @@ | ||||
|  | ||||
| #include "msgpack/versioning.hpp" | ||||
| #include "msgpack/adaptor/adaptor_base.hpp" | ||||
| #include "msgpack/object.hpp" | ||||
|  | ||||
| namespace msgpack { | ||||
|  | ||||
|   | ||||
| @@ -1,3 +1,3 @@ | ||||
| #define MSGPACK_VERSION_MAJOR    4 | ||||
| #define MSGPACK_VERSION_MINOR    1 | ||||
| #define MSGPACK_VERSION_REVISION 1 | ||||
| #define MSGPACK_VERSION_REVISION 2 | ||||
|   | ||||
| @@ -2,7 +2,9 @@ | ||||
|  | ||||
| include(CMakeFindDependencyMacro) | ||||
|  | ||||
| IF (@MSGPACK_USE_BOOST@) | ||||
|     find_dependency(Boost REQUIRED) | ||||
| ENDIF () | ||||
|  | ||||
| include("${CMAKE_CURRENT_LIST_DIR}/msgpackc-cxx-targets.cmake") | ||||
|  | ||||
|   | ||||
| @@ -154,6 +154,8 @@ BOOST_AUTO_TEST_CASE(simple_buffer_float) | ||||
|     v.push_back(-0.0); | ||||
|     v.push_back(1.0); | ||||
|     v.push_back(-1.0); | ||||
|     v.push_back(1.1f); | ||||
|     v.push_back(-1.1f); | ||||
|     v.push_back(numeric_limits<float>::min()); | ||||
|     v.push_back(numeric_limits<float>::max()); | ||||
|     v.push_back(nanf("tag")); | ||||
| @@ -186,6 +188,12 @@ BOOST_AUTO_TEST_CASE(simple_buffer_float) | ||||
|             BOOST_CHECK(std::isinf(val2)); | ||||
|         else | ||||
|             BOOST_CHECK(fabs(val2 - val1) <= kEPS); | ||||
|  | ||||
|         // check for compact storing of float | ||||
|         if (val1 == val1 && val1 >= float(std::numeric_limits<int64_t>::min()) && val1 <= float(std::numeric_limits<int64_t>::max()) && val1 == float(int64_t(val1))) | ||||
|             BOOST_REQUIRE_EQUAL(sbuf.size(),1); | ||||
|         else | ||||
|             BOOST_REQUIRE_EQUAL(sbuf.data()[0],char(0xca)); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @@ -236,6 +244,8 @@ BOOST_AUTO_TEST_CASE(simple_buffer_double) | ||||
|     v.push_back(-0.0); | ||||
|     v.push_back(1.0); | ||||
|     v.push_back(-1.0); | ||||
|     v.push_back(1.1); | ||||
|     v.push_back(-1.1); | ||||
|     v.push_back(numeric_limits<double>::min()); | ||||
|     v.push_back(numeric_limits<double>::max()); | ||||
|     v.push_back(nanf("tag")); | ||||
| @@ -272,6 +282,12 @@ BOOST_AUTO_TEST_CASE(simple_buffer_double) | ||||
|             BOOST_CHECK(std::isinf(val2)); | ||||
|         else | ||||
|             BOOST_CHECK(fabs(val2 - val1) <= kEPS); | ||||
|  | ||||
|         // check for compact storing of double | ||||
|         if (val1 == val1 && val1 >= double(std::numeric_limits<int64_t>::min()) && val1 <= double(std::numeric_limits<int64_t>::max()) && val1 == double(int64_t(val1))) | ||||
|             BOOST_REQUIRE_EQUAL(sbuf.size(),1); | ||||
|         else | ||||
|             BOOST_REQUIRE_EQUAL(uint8_t(sbuf.data()[0]),uint8_t(0xcb)); | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user