- 31 Jul, 2018 1 commit
-
-
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:
Veselin Georgiev <veselin.georgiev@garmin.com> Signed-off-by:
Joshua Watt <Joshua.Watt@garmin.com>
-
- 02 Feb, 2016 1 commit
-
-
Milo Yip authored
-
- 18 Dec, 2015 1 commit
-
-
Milo Yip authored
-
- 01 Sep, 2015 1 commit
-
-
Milo Yip authored
Added unit tests for alignment macros. Fixes #418
-
- 03 May, 2015 1 commit
-
-
miloyip authored
-
- 18 Apr, 2015 1 commit
-
-
miloyip authored
-
- 17 Apr, 2015 1 commit
-
-
Milo Yip authored
-
- 16 Apr, 2015 1 commit
-
-
miloyip authored
-
- 14 Apr, 2015 1 commit
-
-
miloyip authored
-
- 14 Jan, 2015 1 commit
-
-
Milo Yip authored
-
- 11 Aug, 2014 1 commit
-
-
Milo Yip authored
-
- 18 Nov, 2011 1 commit
-
-
miloyip@gmail.com authored
git-svn-id: https://rapidjson.googlecode.com/svn/trunk@2 c5894555-1306-4e8d-425f-1f6f381ee07c
-