mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
561bf65f37
Currently we use dlsym on pthread_cond_wait$UNIX2003 to find a function that indicates that new_sem_from_pool is on the stack. This works on 10.5, but on 10.6 I could not find a single reliable indicator that would work with dlsym. The good news is that dladdr works with any symbol, not just exported ones. To find the address of new_sem_from_pool, we set up a malloc logger and force a call to new_sem_from_pool. From the logger callback we walk the stack trying dladdr on every address. To force a call to new_sem_from_pool, the initialization code has to be the first to use semaphores, so it is now run from NS_LogInit. This works on 10.6 and 10.5 (but we have to look for "pthread_cond_wait$UNIX2003"). In 10.7 the call to malloc is gone, so we don't have to worry about critical addresses on it anymore. --HG-- extra : rebase_source : bba4ac9e3378c88f7037aa884511e473a57121f6 |
||
---|---|---|
.. | ||
Makefile.in | ||
nsDebugHelpWin32.cpp | ||
nsDebugHelpWin32.h | ||
nsTraceMalloc.c | ||
nsTraceMalloc.h | ||
nsTraceMallocCallbacks.h | ||
nsTypeInfo.cpp | ||
nsWinTraceMalloc.cpp | ||
tm.def |