35 | | And looking at the code, there is indeed an operator-new [http://code.metager.de/source/xref/haiku/headers/private/shared/Thread.h#349 here] but the corresponding delete in Track() is never reached because of the kill_thread() [http://code.metager.de/source/xref/haiku/headers/private/shared/Thread.h#369 here] ; so we do leak the MouseDownThread object whenever the menu is opened and closed, right ? |
| 35 | And looking at the code, there is indeed an operator-new [http://code.metager.de/source/xref/haiku/headers/private/shared/Thread.h#349 here] but the corresponding delete in Track() is never reached because of the kill_thread() [http://code.metager.de/source/xref/haiku/headers/private/shared/Thread.h#369 here] ; |
| 36 | |
| 37 | ''EDIT2:'' Errr ok, in fact it seems Track() does terminate, and does not crash in ASSERT() simply because libbe.so is built in release mode (?), and (get this), the dtor ''is'' called but interrupts itself before actually freeing the resources, because kill_thread() actually kills itself. Am I making sense at all? Dunno. |
| 38 | |
| 39 | So we do leak the MouseDownThread object whenever the menu is opened and closed, right ? |