Fix AddressSanitizer and LeakSanitizer hits
This MR attempts to stem all the hits from ASAN and LeakSanitizer. There are two contentious spots, namely the PyKrita plugin unwind and the KoColor*Factory destructors.
Feel free to review!
Test Plan
Build Krita. Run it with e.g:
env LSAN_OPTIONS=suppressions=$(pwd)/../suppressions.ini ../install/bin/krita > ../leak.log 2>&1
suppressions.ini is a file containing the following exclusions:
leak:QMetaObjectBuilder::toMetaObject
leak:calloc
leak:malloc
leak:realloc
Check that no identifiable leaks occur.
Formalities Checklist
-
I confirmed this builds. -
I confirmed Krita ran and the relevant functions work. -
I tested the relevant unit tests and can confirm they are not broken. (If not possible, don't hesitate to ask for help!) -
I made sure my commits build individually and have good descriptions as per KDE guidelines. -
I made sure my code conforms to the standards set in the HACKING file. -
I can confirm the code is licensed and attributed appropriately, and that unattributed code is mine, as per KDE Licensing Policy.