Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
e3bcc11b
Commit
e3bcc11b
authored
Dec 21, 2009
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
user32: Move freeing of a 16-bit module's icons to user16.c.
parent
d5b270ea
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
14 additions
and
29 deletions
+14
-29
cursoricon.c
dlls/user32/cursoricon.c
+0
-27
user16.c
dlls/user32/user16.c
+14
-1
user_private.h
dlls/user32/user_private.h
+0
-1
No files found.
dlls/user32/cursoricon.c
View file @
e3bcc11b
...
...
@@ -447,33 +447,6 @@ static INT CURSORICON_DelSharedIcon( HICON hIcon )
}
/**********************************************************************
* 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
*/
BOOL
get_icon_size
(
HICON
handle
,
SIZE
*
size
)
...
...
dlls/user32/user16.c
View file @
e3bcc11b
...
...
@@ -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
)
);
}
}
...
...
dlls/user32/user_private.h
View file @
e3bcc11b
...
...
@@ -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 */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment