Using this fix, now it crashes in opengl shutdown instead. But the stacks are similar to the original bug...
==14834== Invalid read of size 8
==14834== at 0x9E59307: OpenglPluginVTable::fini() (opengl.cpp:99)
==14834== by 0x4E9F3BD: CompPlugin::pop() (plugin.cpp:524)
==14834== by 0x4E6B913: PrivateScreen::~PrivateScreen() (screen.cpp:5021)
==14834== by 0x4E6C0B8: PrivateScreen::~PrivateScreen() (screen.cpp:5040)
==14834== by 0x4E68041: CompScreenImpl::~CompScreenImpl() (checked_delete.hpp:34)
==14834== by 0x4E681A8: CompScreenImpl::~CompScreenImpl() (screen.cpp:4930)
==14834== by 0x402CC2: CompManager::fini() (main.cpp:214)
==14834== by 0x4029A5: main (main.cpp:239)
==14834== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==14834==
==14834==
==14834== Process terminating with default action of signal 11 (SIGSEGV)
==14834== Access not within mapped region at address 0x0
==14834== at 0x9E59307: OpenglPluginVTable::fini() (opengl.cpp:99)
==14834== by 0x4E9F3BD: CompPlugin::pop() (plugin.cpp:524)
==14834== by 0x4E6B913: PrivateScreen::~PrivateScreen() (screen.cpp:5021)
==14834== by 0x4E6C0B8: PrivateScreen::~PrivateScreen() (screen.cpp:5040)
==14834== by 0x4E68041: CompScreenImpl::~CompScreenImpl() (checked_delete.hpp:34)
==14834== by 0x4E681A8: CompScreenImpl::~CompScreenImpl() (screen.cpp:4930)
==14834== by 0x402CC2: CompManager::fini() (main.cpp:214)
==14834== by 0x4029A5: main (main.cpp:239)
==14834== If you believe this happened as a result of a stack
==14834== overflow in your program's main thread (unlikely but
==14834== possible), you can try to increase the size of the
==14834== main thread stack using the --main-stacksize= flag.
==14834== The main thread stack size used in this run was 8388608.
Using this fix, now it crashes in opengl shutdown instead. But the stacks are similar to the original bug...
==14834== Invalid read of size 8 ble::fini( ) (opengl.cpp:99) :~PrivateScreen () (screen.cpp:5021) :~PrivateScreen () (screen.cpp:5040) :~CompScreenImp l() (checked_ delete. hpp:34) :~CompScreenImp l() (screen.cpp:4930) ble::fini( ) (opengl.cpp:99) :~PrivateScreen () (screen.cpp:5021) :~PrivateScreen () (screen.cpp:5040) :~CompScreenImp l() (checked_ delete. hpp:34) :~CompScreenImp l() (screen.cpp:4930)
==14834== at 0x9E59307: OpenglPluginVTa
==14834== by 0x4E9F3BD: CompPlugin::pop() (plugin.cpp:524)
==14834== by 0x4E6B913: PrivateScreen:
==14834== by 0x4E6C0B8: PrivateScreen:
==14834== by 0x4E68041: CompScreenImpl:
==14834== by 0x4E681A8: CompScreenImpl:
==14834== by 0x402CC2: CompManager::fini() (main.cpp:214)
==14834== by 0x4029A5: main (main.cpp:239)
==14834== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==14834==
==14834==
==14834== Process terminating with default action of signal 11 (SIGSEGV)
==14834== Access not within mapped region at address 0x0
==14834== at 0x9E59307: OpenglPluginVTa
==14834== by 0x4E9F3BD: CompPlugin::pop() (plugin.cpp:524)
==14834== by 0x4E6B913: PrivateScreen:
==14834== by 0x4E6C0B8: PrivateScreen:
==14834== by 0x4E68041: CompScreenImpl:
==14834== by 0x4E681A8: CompScreenImpl:
==14834== by 0x402CC2: CompManager::fini() (main.cpp:214)
==14834== by 0x4029A5: main (main.cpp:239)
==14834== If you believe this happened as a result of a stack
==14834== overflow in your program's main thread (unlikely but
==14834== possible), you can try to increase the size of the
==14834== main thread stack using the --main-stacksize= flag.
==14834== The main thread stack size used in this run was 8388608.