> It is strange that other demos are happy. I am a bit blinded because > I do not run ftinspect.
Thanks for your fix. However, it doesn't seem to be sufficient (at least on my openSUSE box); `ftinspect` still crashes. Here is a new valgrind report. Werner ====================================================================== Memcheck, a memory error detector Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. Using Valgrind-3.18.0.GIT and LibVEX; rerun with -h for copyright info Command: ./ftinspect Conditional jump or move depends on uninitialised value(s) at 0x483E99: FTC_ImageCache_LookupScaler (ftcbasic.c:413) by 0x415506: Engine::loadOutline(int) (engine.cpp:473) by 0x41D4E4: MainGUI::drawGlyph() (maingui.cpp:666) by 0x41C5EF: MainGUI::checkAntiAliasing() (maingui.cpp:359) by 0x427077: MainGUI::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_maingui.cpp:153) by 0x63F9E34: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib64/libQt5Core.so.5.12.7) by 0x52E1FB0: QComboBox::currentIndexChanged(int) (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x52E3D72: ??? (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x52E525B: ??? (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x52E54F0: QComboBox::setCurrentIndex(int) (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x4239E7: MainGUI::setDefaults() (maingui.cpp:1216) by 0x41B103: main (ftinspect.cpp:28) Use of uninitialised value of size 8 at 0x483EA2: FTC_ImageCache_LookupScaler (ftcbasic.c:413) by 0x415506: Engine::loadOutline(int) (engine.cpp:473) by 0x41D4E4: MainGUI::drawGlyph() (maingui.cpp:666) by 0x41C5EF: MainGUI::checkAntiAliasing() (maingui.cpp:359) by 0x427077: MainGUI::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_maingui.cpp:153) by 0x63F9E34: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib64/libQt5Core.so.5.12.7) by 0x52E1FB0: QComboBox::currentIndexChanged(int) (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x52E3D72: ??? (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x52E525B: ??? (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x52E54F0: QComboBox::setCurrentIndex(int) (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x4239E7: MainGUI::setDefaults() (maingui.cpp:1216) by 0x41B103: main (ftinspect.cpp:28) Conditional jump or move depends on uninitialised value(s) at 0x429C93: FT_Done_Face (ftobjs.c:2912) by 0x483061: ftc_face_node_done (ftcmanag.c:272) by 0x482F69: FTC_MruList_New (ftcmru.c:281) by 0x484868: FTC_Manager_LookupFace (ftcmanag.c:324) by 0x484BA1: ftc_scaler_lookup_size (ftcmanag.c:43) by 0x482F18: FTC_MruList_New (ftcmru.c:268) by 0x4838BB: FTC_Manager_LookupSize.part.8 (ftcmanag.c:196) by 0x483912: FTC_Manager_LookupSize (ftcmanag.c:191) by 0x483912: ftc_basic_family_load_glyph (ftcbasic.c:173) by 0x48324E: FTC_INode_New (ftcimage.c:80) by 0x48324E: ftc_inode_new (ftcimage.c:103) by 0x482B65: FTC_Cache_NewNode (ftccache.c:459) by 0x483F6F: FTC_ImageCache_LookupScaler (ftcbasic.c:413) by 0x415506: Engine::loadOutline(int) (engine.cpp:473) Conditional jump or move depends on uninitialised value(s) at 0x483E99: FTC_ImageCache_LookupScaler (ftcbasic.c:413) by 0x415506: Engine::loadOutline(int) (engine.cpp:473) by 0x41D4E4: MainGUI::drawGlyph() (maingui.cpp:666) by 0x427132: MainGUI::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_maingui.cpp:164) by 0x63F9E34: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib64/libQt5Core.so.5.12.7) by 0x5381E9F: QDoubleSpinBox::valueChanged(double) (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x5382021: ??? (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x537F0D9: ??? (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x5383B7E: QDoubleSpinBox::setValue(double) (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x423AB2: MainGUI::setDefaults() (maingui.cpp:1227) by 0x41B103: main (ftinspect.cpp:28) Use of uninitialised value of size 8 at 0x483EA2: FTC_ImageCache_LookupScaler (ftcbasic.c:413) by 0x415506: Engine::loadOutline(int) (engine.cpp:473) by 0x41D4E4: MainGUI::drawGlyph() (maingui.cpp:666) by 0x427132: MainGUI::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_maingui.cpp:164) by 0x63F9E34: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib64/libQt5Core.so.5.12.7) by 0x5381E9F: QDoubleSpinBox::valueChanged(double) (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x5382021: ??? (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x537F0D9: ??? (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x5383B7E: QDoubleSpinBox::setValue(double) (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x423AB2: MainGUI::setDefaults() (maingui.cpp:1227) by 0x41B103: main (ftinspect.cpp:28) Conditional jump or move depends on uninitialised value(s) at 0x41BF94: MainGUI::checkHinting() (maingui.cpp:226) by 0x423AEE: MainGUI::setDefaults() (maingui.cpp:1231) by 0x41B103: main (ftinspect.cpp:28) Conditional jump or move depends on uninitialised value(s) at 0x41C2FA: MainGUI::checkHintingMode() (maingui.cpp:286) by 0x4270DD: MainGUI::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (moc_maingui.cpp:159) by 0x63F9E34: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib64/libQt5Core.so.5.12.7) by 0x52E1FB0: QComboBox::currentIndexChanged(int) (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x52E3D72: ??? (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x52E525B: ??? (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x52E54F0: QComboBox::setCurrentIndex(int) (in /usr/lib64/libQt5Widgets.so.5.12.7) by 0x41C059: MainGUI::checkHinting() (maingui.cpp:236) by 0x423AEE: MainGUI::setDefaults() (maingui.cpp:1231) by 0x41B103: main (ftinspect.cpp:28) Use of uninitialised value of size 8 at 0x429C9D: FT_Done_Face (ftobjs.c:2912) by 0x483061: ftc_face_node_done (ftcmanag.c:272) by 0x482F69: FTC_MruList_New (ftcmru.c:281) by 0x484868: FTC_Manager_LookupFace (ftcmanag.c:324) by 0x484BA1: ftc_scaler_lookup_size (ftcmanag.c:43) by 0x482F18: FTC_MruList_New (ftcmru.c:268) by 0x4838BB: FTC_Manager_LookupSize.part.8 (ftcmanag.c:196) by 0x483912: FTC_Manager_LookupSize (ftcmanag.c:191) by 0x483912: ftc_basic_family_load_glyph (ftcbasic.c:173) by 0x48324E: FTC_INode_New (ftcimage.c:80) by 0x48324E: ftc_inode_new (ftcimage.c:103) by 0x482B65: FTC_Cache_NewNode (ftccache.c:459) by 0x483F6F: FTC_ImageCache_LookupScaler (ftcbasic.c:413) by 0x415506: Engine::loadOutline(int) (engine.cpp:473) Invalid read of size 8 at 0x429C9D: FT_Done_Face (ftobjs.c:2912) by 0x483061: ftc_face_node_done (ftcmanag.c:272) by 0x482F69: FTC_MruList_New (ftcmru.c:281) by 0x484868: FTC_Manager_LookupFace (ftcmanag.c:324) by 0x484BA1: ftc_scaler_lookup_size (ftcmanag.c:43) by 0x482F18: FTC_MruList_New (ftcmru.c:268) by 0x4838BB: FTC_Manager_LookupSize.part.8 (ftcmanag.c:196) by 0x483912: FTC_Manager_LookupSize (ftcmanag.c:191) by 0x483912: ftc_basic_family_load_glyph (ftcbasic.c:173) by 0x48324E: FTC_INode_New (ftcimage.c:80) by 0x48324E: ftc_inode_new (ftcimage.c:103) by 0x482B65: FTC_Cache_NewNode (ftccache.c:459) by 0x483F6F: FTC_ImageCache_LookupScaler (ftcbasic.c:413) by 0x415506: Engine::loadOutline(int) (engine.cpp:473) Address 0x6963615009454a00 is not stack'd, malloc'd or (recently) free'd Process terminating with default action of signal 11 (SIGSEGV): dumping core General Protection Fault at 0x429C9D: FT_Done_Face (ftobjs.c:2912) by 0x483061: ftc_face_node_done (ftcmanag.c:272) by 0x482F69: FTC_MruList_New (ftcmru.c:281) by 0x484868: FTC_Manager_LookupFace (ftcmanag.c:324) by 0x484BA1: ftc_scaler_lookup_size (ftcmanag.c:43) by 0x482F18: FTC_MruList_New (ftcmru.c:268) by 0x4838BB: FTC_Manager_LookupSize.part.8 (ftcmanag.c:196) by 0x483912: FTC_Manager_LookupSize (ftcmanag.c:191) by 0x483912: ftc_basic_family_load_glyph (ftcbasic.c:173) by 0x48324E: FTC_INode_New (ftcimage.c:80) by 0x48324E: ftc_inode_new (ftcimage.c:103) by 0x482B65: FTC_Cache_NewNode (ftccache.c:459) by 0x483F6F: FTC_ImageCache_LookupScaler (ftcbasic.c:413) by 0x415506: Engine::loadOutline(int) (engine.cpp:473) HEAP SUMMARY: in use at exit: 2,953,082 bytes in 43,872 blocks total heap usage: 169,359 allocs, 125,487 frees, 98,951,630 bytes allocated LEAK SUMMARY: definitely lost: 5,192 bytes in 21 blocks indirectly lost: 1,096 bytes in 40 blocks possibly lost: 2,408 bytes in 22 blocks still reachable: 2,944,370 bytes in 43,788 blocks of which reachable via heuristic: newarray : 1,632 bytes in 19 blocks multipleinheritance: 64,720 bytes in 82 blocks suppressed: 16 bytes in 1 blocks Rerun with --leak-check=full to see details of leaked memory Use --track-origins=yes to see where uninitialised values come from For lists of detected and suppressed errors, rerun with: -s ERROR SUMMARY: 26 errors from 9 contexts (suppressed: 0 from 0)