core: Disable check for already deleted object.#11334
core: Disable check for already deleted object.#11334pcanal merged 1 commit intoroot-project:masterfrom
Conversation
|
Starting build on |
|
Build failed on ROOT-debian10-i386/soversion. |
|
Build failed on windows10/cxx14. |
|
Starting build on |
|
Build failed on ROOT-debian10-i386/soversion. |
|
Build failed on windows10/cxx14. |
|
Starting build on |
|
Starting build on |
|
Starting build on |
|
Build failed on ROOT-performance-centos8-multicore/cxx17. Failing tests:
|
|
Build failed on ROOT-ubuntu2004/python3. Failing tests:
|
|
Build failed on windows10/cxx14. Errors:
|
|
Starting build on |
|
The code was updated to replace the |
|
Build failed on ROOT-debian10-i386/soversion. Errors:
|
|
Build failed on mac11/cxx14. Errors:
|
|
Build failed on ROOT-ubuntu18.04/nortcxxmod. Errors:
|
|
Build failed on ROOT-ubuntu2004/python3. Errors:
|
|
Build failed on windows10/cxx14. Errors:
|
a5910e3 to
d4b3039
Compare
|
Starting build on |
|
Build failed on ROOT-ubuntu2004/python3. Failing tests: |
|
Build failed on mac1015/cxx17. Failing tests: |
|
Starting build on |
|
Build failed on mac11/cxx14. Warnings:
Failing tests:
|
|
Build failed on mac1015/cxx17. Warnings:
|
|
@phsft-bot build |
|
Starting build on |
On some platform operator delete taints the memory, so even right after the deletion the information stored by ~TObject is already erased. On those platform we no longer rely on the kNotDelete bit hack and rely on the system (which has tainted the memory assumingly for a reason) to detect the use-after-delete problems. Introduce 2 new functions. TObject::IsDestructed (used by TClonesArray) that detects that the destructor has been run and is active in all configuration. This should be used if the code knows that the memory has not been freed/deleted. ROOT::Detail::HasBeenDeleted(TObject*) with returns true if the platform does not taint the memory and if the kNotDeleted is not set (in all other case, it returns false) This fixes root-project#11330
134b1a8 to
e6d30b0
Compare
|
Starting build on |
|
Build failed on mac11/cxx14. Warnings:
|
|
Build failed on windows10/cxx14. Failing tests: |
|
@phsft-bot build |
|
Starting build on |
On some platform operator delete taints the memory, so even right after the deletion the information stored by ~TObject is already erased. On those platform we no longer rely on the kNotDelete bit hack and rely on the system (which has tainted the memory assumingly for a reason) to detect the use-after-delete problems.
Introduce 2 new functions.
TObject::IsDestructed (used by TClonesArray) that detects that the destructor has been run and is active in all configuration. This should be used if the code knows that the memory has not been freed/deleted.
ROOT::Detail::HasBeenDeleted(TObject*) with returns true if the platform does not taint the memory and if the kNotDeleted is not set (in all other case, it returns false)
This fixes #11330