1. 12 Sep, 2019 1 commit
  2. 17 Dec, 2018 2 commits
  3. 12 Dec, 2018 2 commits
    • ylavic's avatar
      Speed up Pointer::operator<(). · eb6ee17d
      ylavic authored
      Speed is more important than alphabetical order (which makes few sense in
      JSON in general, and with pointers especially). The use case is indexing
      in std containers, i.e. O(log n) with rbtree, so the faster comparison
      the better.
      eb6ee17d
    • ylavic's avatar
      Rework Pointer::operator<() loop. · 0e34ed43
      ylavic authored
      I must be too dumb to understand the mess MSVC (32bit only) did with the
      previous loop, and to figure out how it might have make it never end.
      Anyway, hopefully any compiler can grok this new loop...
      0e34ed43
  4. 10 Dec, 2018 1 commit
  5. 06 Dec, 2018 1 commit
    • ylavic's avatar
      Fix FileReadStream::Peek4(). · 38d25d74
      ylavic authored
      Until Read() reaches EOF, Peek4() must not take off by one in
      bufferLast_ into account; otherwise a buffer of size exactly 4 always
      returns NULL.
      38d25d74
  6. 05 Dec, 2018 3 commits
  7. 03 Dec, 2018 1 commit
  8. 01 Nov, 2018 1 commit
  9. 26 Oct, 2018 1 commit
  10. 08 Oct, 2018 1 commit
  11. 05 Aug, 2018 1 commit
  12. 03 Aug, 2018 1 commit
  13. 31 Jul, 2018 1 commit
    • Veselin Georgiev's avatar
      Fix SIGBUS due to unaligned access · 748a652f
      Veselin Georgiev authored
      Update RAPIDJSON_ALIGN() to always align on an 8-byte boundary
      unless otherwise overridden.
      
      On some platforms (such as ARM), 64-bit items (such as doubles and
      64-bit integers) must be aligned to an 8 byte address, even though the
      architecture is only 32-bits. On these platforms, MemoryPoolAllocator
      must match the malloc() behavior and return a 8 byte aligned allocation.
      This eliminates any alignment issues that may occur at the expense of
      additional memory overhead.
      
      Failure to do so caused a SIGBUS signal when calling
      GenericValue::SetNull(). The size of the data_ member of the
      GenericValue class is 16 bytes in 32-bit mode and its constructor
      requires an 8-byte aligned access.
      
      While parsing a JSON formatted string using Document::ParseStream(), a
      stack object containing GenericValue items was constructed. Since the
      stack was 8-byte aligned, the constructor calls would succeed. When the
      lifetime of the object ends, SetObjectRaw() is invoked. This triggered
      an allocation with 4-byte alignment to which the previously 8-byte
      aligned GenericValue array was copied. After this, any call to a
      GenericValue API that triggered the constructor and thus the placement
      new operation on the Data type member would trigger a SIGBUS.
      Signed-off-by: 's avatarVeselin Georgiev <veselin.georgiev@garmin.com>
      Signed-off-by: 's avatarJoshua Watt <Joshua.Watt@garmin.com>
      748a652f
  14. 17 Jul, 2018 1 commit
  15. 15 Jul, 2018 2 commits
    • Philipp A Hartmann's avatar
      Suppress -Wformat-overflow warning/error · 15251168
      Philipp A Hartmann authored
      GCC 7 and later warn about overflow/truncation when using
      sprintf and related functions with fixed-size buffers.
      
      Suppress the warning in schematest.cpp.
      15251168
    • Philipp A Hartmann's avatar
      Fix -Wsign-conversion warnings/errors · a26267d1
      Philipp A Hartmann authored
      GCC 8 (incorrectly) warns about sign conversions in (constant)
      array size expressions:
      
      error: conversion to 'long unsigned int' from 'int' may
      change the sign of the result [-Werror=sign-conversion]
           char schemaBuffer_[128 * 1024];
      
      Make these expressions unsigned by adding a 'u' suffix to
      the first operands.
      a26267d1
  16. 10 Jul, 2018 1 commit
    • Christopher Warrington's avatar
      Guard against min/max being macros in reader.h · 960b9cfd
      Christopher Warrington authored
      Sometimes, particularly when Microsoft's windows.h is included, min/max
      are defined as macros, interfering with use of
      std::numeric_limits::min() and the like.
      
      To guard against this, the function name is wrapped in an extra set of
      parenthesis, which inhibits function-style macro expansion.
      
      This is a similar commit to 6e38649e, but fixes uses of
      std::numeric_limits added after that commit, like those introduced in
      2ea43433.
      960b9cfd
  17. 16 Jun, 2018 6 commits
  18. 15 Jun, 2018 5 commits
  19. 01 Jun, 2018 1 commit
  20. 16 May, 2018 1 commit
  21. 11 May, 2018 3 commits
  22. 09 Apr, 2018 1 commit
  23. 26 Mar, 2018 2 commits