[PATCH 3/5] ole32: Improve locking safety in IMalloc::HeapMinimize().
Nikolay Sivov
nsivov at codeweavers.com
Mon Apr 20 02:59:20 CDT 2020
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/ole32/ifs.c | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/dlls/ole32/ifs.c b/dlls/ole32/ifs.c
index f1dae0c956..96977fc751 100644
--- a/dlls/ole32/ifs.c
+++ b/dlls/ole32/ifs.c
@@ -363,17 +363,22 @@ static INT WINAPI IMalloc_fnDidAlloc(IMalloc *iface, void *mem)
*/
static void WINAPI IMalloc_fnHeapMinimize(IMalloc *iface)
{
- TRACE("()\n");
+ BOOL spy_active = FALSE;
- if(Malloc32.pSpy) {
- EnterCriticalSection(&IMalloc32_SpyCS);
- IMallocSpy_PreHeapMinimize(Malloc32.pSpy);
- }
+ TRACE("()\n");
- if(Malloc32.pSpy) {
- IMallocSpy_PostHeapMinimize(Malloc32.pSpy);
- LeaveCriticalSection(&IMalloc32_SpyCS);
- }
+ if (Malloc32.pSpy)
+ {
+ EnterCriticalSection(&IMalloc32_SpyCS);
+ spy_active = TRUE;
+ IMallocSpy_PreHeapMinimize(Malloc32.pSpy);
+ }
+
+ if (spy_active)
+ {
+ IMallocSpy_PostHeapMinimize(Malloc32.pSpy);
+ LeaveCriticalSection(&IMalloc32_SpyCS);
+ }
}
static const IMallocVtbl VT_IMalloc32 =
--
2.25.1
More information about the wine-devel
mailing list