diff --git a/reactos/win32ss/user/ntuser/prop.c b/reactos/win32ss/user/ntuser/prop.c index 8048cbcfe60..cf5b1cc84cd 100644 --- a/reactos/win32ss/user/ntuser/prop.c +++ b/reactos/win32ss/user/ntuser/prop.c @@ -58,25 +58,27 @@ UserGetProp( } _Success_(return) -BOOL +HANDLE FASTCALL IntRemoveProp( _In_ PWND Window, _In_ ATOM Atom) { PPROPERTY Prop; + HANDLE Data; NT_ASSERT(UserIsEnteredExclusive()); Prop = IntGetProp(Window, Atom); if (Prop == NULL) { - return FALSE; + return NULL; } + Data = Prop->Data; RemoveEntryList(&Prop->PropListEntry); UserHeapFree(Prop); Window->PropListItems--; - return TRUE; + return Data; } _Success_(return) @@ -215,7 +217,6 @@ NtUserRemoveProp( _In_ ATOM Atom) { PWND Window; - PPROPERTY Prop; HANDLE Data = NULL; TRACE("Enter NtUserRemoveProp\n"); @@ -227,16 +228,7 @@ NtUserRemoveProp( goto Exit; } - Prop = IntGetProp(Window, Atom); - if (Prop == NULL) - { - goto Exit; - } - - Data = Prop->Data; - RemoveEntryList(&Prop->PropListEntry); - UserHeapFree(Prop); - Window->PropListItems--; + Data = IntRemoveProp(Window, Atom); Exit: TRACE("Leave NtUserRemoveProp, ret=%p\n", Data); diff --git a/reactos/win32ss/user/ntuser/prop.h b/reactos/win32ss/user/ntuser/prop.h index 675882cb4c2..76087f7b866 100644 --- a/reactos/win32ss/user/ntuser/prop.h +++ b/reactos/win32ss/user/ntuser/prop.h @@ -12,8 +12,7 @@ UserGetProp( _In_ PWND Window, _In_ ATOM Atom); -_Success_(return) -BOOL +HANDLE FASTCALL IntRemoveProp( _In_ PWND Window,