-
Notifications
You must be signed in to change notification settings - Fork 768
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix long long json serialization #728
Conversation
There are few issues reported for this problem: @AzothAmmo could you merge it? |
Hello @AzothAmmo, could this simple fix be added to the v1.3.1 release? |
oar(o_t2); | ||
} | ||
|
||
CHECK_EQ(os1.str(), os2.str()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Before fix this check failed
cereal/unittests/pod.hpp:166: ERROR: CHECK_EQ( os1.str(), os2.str() ) is NOT correct!
values: CHECK_EQ( {
"value0": -96
}, {
"value0": "-96"
} )
@AzothAmmo I got message "First-time contributors need a maintainer to approve running workflows". Could you approve? |
You should be able to run this against CI now. |
@AzothAmmo could you move this PR forward and merge it? |
@AzothAmmo Thank you. I fixed compilation. |
* Fix json.hpp compilation issue when int32_t is a long (USCiLab#621) When testing whether or not to define a saveValue() overload for long, test the actual set of types implemented. * [cpp20] explicitly capture 'this' as copy (USCiLab#640) implicit 'this' capture is deprecated in C++20 * Fix rapidjson for Clang 10 (USCiLab#645) Based on Tencent/rapidjson#1679 Addresses USCiLab#631 * Fixes to prevent clang-diagnostic errors (USCiLab#643) * Fixes to prevent clang-diagnostic when running clang-tidy with Microsoft Visual Studio cmake projects. * Used boolean rather than bitwise operator. * cleanup cmake files to be a little more moderen (USCiLab#659) * cleanup cmake files to be a little more moderen keep the source tree free of build artifacts cmakelint the cmake files too * fix cmake setup errors on CI fix APPLE clang builds too * CI needs support for realy history cmake V3.6 fix typo in cmake files using add_test() commnds * One step more to use modern cmake Prevent to modifiy compile and linker FLAGS and to set global includes pathes * fix CI build problems with older cmake versions prepare cleanup cmake list file * final cleanup use Config.cmake.in and install hole cmake config files * Fix cpp17 PORTABILITY_TEST linker problem add missed target_link_libraries() * hopefully prevent windows test problems * Store a copy of each serialized shared_ptr within the archive to prevent the shared_ptr to be freed to early. (USCiLab#667) The archives use the memory address pointed by the shared_ptr as a unique id which must not be reused during lifetime of the archive. Therefore, the archives stores a copy of it. This problem was also reported as CVE-2020-11105. * add license files for components of cereal Signed-off-by: Adam Miartus <adam.miartus@softhows.eu> * Update README.md Fix link to main website * Catch short documents in JSON input When reading unnamed fields from JSON input, the member/value iterators are incremented blind without checking if the end of the iterator has been reached. Record the size so that this can be checked against the current position to ensure reading doesn't walk off the end of the iterator. * C++17: use inline globals for StaticObjects This prevents multiple definition errors in Clang, and also stops dllexporting functions with internal linkage. Degrades gracefully when C++17 is not present. Fix USCiLab#595 Fix USCiLab#652 Fix USCiLab#582 Fix USCiLab#643 * Use std::variant::emplace when loading * Use std::optional::emplace() when loading to construct and load the contained value directly in place * Fix itsNextName not clearing when not found An issue exists when loading vectors of objects where, if the last nvp of the previous object does not exist in the json file, the itsNextName variable within the json serializer is not cleared. This causes the vector serializer to search for that name next (when it should be searching for a nameless object.) The json serializer then throws during the named search. Mild reworking of itsNextName solution * Add github actions workflow use docker containers remove sudo install software-properties-common update before trying install install wget cmake and make install cmake from pip add apt-transport-https Use llvm xenial Fix clang package name Fix boost with gcc<5 verbose compile skip boost for gcc<5 macos test skip boost for macos test different xcode compilers use new cmake syntax for selecting platform no xcode 10 installed Rename tests * Update doctest to 2.4.6 dev + local fixes slated for upstream * Update appveyor to build with MSVC 2022 and fix boost * Fixed loading of std::vector<bool> We should use auto && instead of auto if we want to modify v inside the for loop. * Update license to match BSD template * Update doctest to 2.4.7, update CI, add badges Updates doctest and fixes issues with g++4.7 and MSVC2013 doctest builds. Adds new CI targets for g++ 9 and 10, clang 9 through 12. Adds CI badges for github actions. * Use GNUInstallDirs instead of hard wiring install directories On a multilib setup cmake files should go into lib64. * Update version to 1.3.1 * Make doxygen docs reproducible * Add CMake options for building doc and sandbox relates USCiLab#739 * Correct patch version for 1.3.2 * Fix long long json serialization (USCiLab#728) * Fix long long json serialization * Update pod.hpp * Update .gitignore `.vs/` folder is created by Visual Studio and it is not needed. * `ST` renamed to `AlignedStorage` * Remove extra ; after member function definition Triggered by -Wextra-semi. * add string_view to json archive --------- Signed-off-by: Adam Miartus <adam.miartus@softhows.eu> Co-authored-by: Bernard Blackham <b-github@largestprime.net> Co-authored-by: Łukasz Gemborowski <lukasz.gemborowski@gmail.com> Co-authored-by: groscoe2 <66085912+groscoe2@users.noreply.github.com> Co-authored-by: John Alexander <25591355+johngladp@users.noreply.github.com> Co-authored-by: Claus Klein <claus.klein.sha@googlemail.com> Co-authored-by: Michael Walz <code@serpedon.de> Co-authored-by: Adam Miartus <adam.miartus@softhows.eu> Co-authored-by: Shane Grant <w.shane.grant@gmail.com> Co-authored-by: John Keeping <john@metanate.com> Co-authored-by: Shane Peelar <lookatyouhacker@gmail.com> Co-authored-by: logan <logan.r.smith0@gmail.com> Co-authored-by: Gary Heckman <gheckman@gadova.com> Co-authored-by: Isuru Fernando <isuruf@gmail.com> Co-authored-by: Darred <darredua@gmail.com> Co-authored-by: Anton Blanchard <anton@ozlabs.org> Co-authored-by: Michael R. Crusoe <crusoe@debian.org> Co-authored-by: CHP <crazyhappygame@gmail.com> Co-authored-by: Luca Ciucci <LucaCiucci@users.noreply.github.com> Co-authored-by: Jan Niklas Hasse <jhasse@bixense.com>
Problem:
long long was serialized as string in json.
Comments:
It worked fine for MSVC. long long and int64_t are the same types
It does not work for GCC/clnag