mirror of
https://github.com/open-source-parsers/jsoncpp.git
synced 2024-12-12 10:03:51 +01:00
Fix c++20 compilation problem for clang10 and fix potential bug due to compiler optimization
This commit is contained in:
parent
5f4e10462f
commit
30170d651c
@ -35,11 +35,10 @@ public:
|
|||||||
* Release memory which was allocated for N items at pointer P.
|
* Release memory which was allocated for N items at pointer P.
|
||||||
*
|
*
|
||||||
* The memory block is filled with zeroes before being released.
|
* The memory block is filled with zeroes before being released.
|
||||||
* The pointer argument is tagged as "volatile" to prevent the
|
|
||||||
* compiler optimizing out this critical step.
|
|
||||||
*/
|
*/
|
||||||
void deallocate(volatile pointer p, size_type n) {
|
void deallocate(pointer p, size_type n) {
|
||||||
std::memset(p, 0, n * sizeof(T));
|
// memset_s is used because memset may be optimized away by the compiler
|
||||||
|
memset_s(p, n * sizeof(T), 0, n * sizeof(T));
|
||||||
// free using "global operator delete"
|
// free using "global operator delete"
|
||||||
::operator delete(p);
|
::operator delete(p);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user