Fixed some bugs in thread safeness for wnd struct.
diff --git a/controls/menu.c b/controls/menu.c
index cd406b4..14af490 100644
--- a/controls/menu.c
+++ b/controls/menu.c
@@ -3544,8 +3544,6 @@
(!pTPWnd || (lppop->hWnd != pTPWnd->hwndSelf)))
DestroyWindow( lppop->hWnd );
- MENU_ReleaseTopPopupWnd();
-
if (lppop->items) /* recursively destroy submenus */
{
int i;
@@ -3558,8 +3556,13 @@
HeapFree( SystemHeap, 0, lppop->items );
}
USER_HEAP_FREE( hMenu );
+ MENU_ReleaseTopPopupWnd();
}
- else return FALSE;
+ else
+ {
+ MENU_ReleaseTopPopupWnd();
+ return FALSE;
+ }
}
return (hMenu != MENU_DefSysPopup);
}