user32: Move freeing of a 16-bit module's icons to user16.c.

This commit is contained in:
Alexandre Julliard 2009-12-21 18:24:17 +01:00
parent d5b270eadd
commit e3bcc11beb
3 changed files with 14 additions and 29 deletions

View File

@ -446,33 +446,6 @@ static INT CURSORICON_DelSharedIcon( HICON hIcon )
return count;
}
/**********************************************************************
* CURSORICON_FreeModuleIcons
*/
void CURSORICON_FreeModuleIcons( HMODULE16 hMod16 )
{
ICONCACHE **ptr = &IconAnchor;
HMODULE hModule = HMODULE_32(GetExePtr( hMod16 ));
EnterCriticalSection( &IconCrst );
while ( *ptr )
{
if ( (*ptr)->hModule == hModule )
{
ICONCACHE *freePtr = *ptr;
*ptr = freePtr->next;
GlobalFree16(HICON_16(freePtr->hIcon));
HeapFree( GetProcessHeap(), 0, freePtr );
continue;
}
ptr = &(*ptr)->next;
}
LeaveCriticalSection( &IconCrst );
}
/**********************************************************************
* get_icon_size
*/

View File

@ -303,6 +303,19 @@ static int release_shared_icon( HICON16 icon )
return -1;
}
static void free_module_icons( HINSTANCE16 inst )
{
struct cache_entry *cache, *next;
LIST_FOR_EACH_ENTRY_SAFE( cache, next, &icon_cache, struct cache_entry, entry )
{
if (cache->inst != inst) continue;
list_remove( &cache->entry );
GlobalFree16( cache->icon );
HeapFree( GetProcessHeap(), 0, cache );
}
}
/**********************************************************************
* InitApp (USER.5)
@ -1516,7 +1529,7 @@ void WINAPI SignalProc16( HANDLE16 hModule, UINT16 code,
{
/* HOOK_FreeModuleHooks( hModule ); */
CLASS_FreeModuleClasses( hModule );
CURSORICON_FreeModuleIcons( hModule );
free_module_icons( GetExePtr(hModule) );
}
}

View File

@ -326,7 +326,6 @@ typedef struct
#include "poppack.h"
extern void CURSORICON_FreeModuleIcons( HMODULE16 hModule ) DECLSPEC_HIDDEN;
extern BOOL get_icon_size( HICON handle, SIZE *size ) DECLSPEC_HIDDEN;
/* Mingw's assert() imports MessageBoxA and gets confused by user32 exporting it */