mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 20:03:12 +00:00
- Correct freeing of heap memory.
svn path=/trunk/; revision=11929
This commit is contained in:
parent
86d655cae7
commit
bf002ea532
2 changed files with 8 additions and 15 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: class.c,v 1.51 2004/08/15 21:36:29 chorns Exp $
|
/* $Id: class.c,v 1.52 2004/12/04 22:08:29 navaraf Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS user32.dll
|
* PROJECT: ReactOS user32.dll
|
||||||
|
@ -464,8 +464,10 @@ RegisterClassExA(CONST WNDCLASSEXA *lpwcx)
|
||||||
REGISTERCLASS_ANSI,
|
REGISTERCLASS_ANSI,
|
||||||
0);
|
0);
|
||||||
|
|
||||||
RtlFreeUnicodeString(&MenuName);
|
if (!IS_ATOM(lpwcx->lpszMenuName))
|
||||||
RtlFreeUnicodeString(&ClassName);
|
RtlFreeUnicodeString(&MenuName);
|
||||||
|
if (!IS_ATOM(lpwcx->lpszClassName))
|
||||||
|
RtlFreeUnicodeString(&ClassName);
|
||||||
|
|
||||||
return (ATOM)Atom;
|
return (ATOM)Atom;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
/* $Id: menu.c,v 1.72 2004/12/04 19:53:55 navaraf Exp $
|
/* $Id: menu.c,v 1.73 2004/12/04 22:08:30 navaraf Exp $
|
||||||
*
|
*
|
||||||
* PROJECT: ReactOS user32.dll
|
* PROJECT: ReactOS user32.dll
|
||||||
* FILE: lib/user32/windows/menu.c
|
* FILE: lib/user32/windows/menu.c
|
||||||
|
@ -4074,7 +4074,7 @@ InsertMenuItemA(
|
||||||
|
|
||||||
res = NtUserInsertMenuItem(hMenu, uItem, fByPosition, &mi);
|
res = NtUserInsertMenuItem(hMenu, uItem, fByPosition, &mi);
|
||||||
|
|
||||||
if ( CleanHeap ) HEAP_free ( mi.dwTypeData );
|
if ( CleanHeap ) HEAP_free ( MenuText.Buffer );
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
@ -4094,8 +4094,6 @@ InsertMenuItemW(
|
||||||
MENUITEMINFOW mi;
|
MENUITEMINFOW mi;
|
||||||
UNICODE_STRING MenuText;
|
UNICODE_STRING MenuText;
|
||||||
BOOL res = FALSE;
|
BOOL res = FALSE;
|
||||||
BOOL CleanHeap = FALSE;
|
|
||||||
HANDLE hHeap = GetProcessHeap();
|
|
||||||
mi.hbmpItem = (HBITMAP)0;
|
mi.hbmpItem = (HBITMAP)0;
|
||||||
|
|
||||||
// while we could just pass 'lpmii' to win32k, we make a copy so that
|
// while we could just pass 'lpmii' to win32k, we make a copy so that
|
||||||
|
@ -4113,20 +4111,13 @@ InsertMenuItemW(
|
||||||
{
|
{
|
||||||
if(lpmii->cch > 0)
|
if(lpmii->cch > 0)
|
||||||
{
|
{
|
||||||
if(!RtlCreateUnicodeString(&MenuText, (PWSTR)lpmii->dwTypeData))
|
RtlInitUnicodeString(&MenuText, (PWSTR)lpmii->dwTypeData);
|
||||||
{
|
|
||||||
SetLastError (RtlNtStatusToDosError(STATUS_NO_MEMORY));
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
mi.dwTypeData = (LPWSTR)&MenuText;
|
mi.dwTypeData = (LPWSTR)&MenuText;
|
||||||
mi.cch = MenuText.Length / sizeof(WCHAR);
|
mi.cch = MenuText.Length / sizeof(WCHAR);
|
||||||
CleanHeap = TRUE;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
res = NtUserInsertMenuItem(hMenu, uItem, fByPosition, &mi);
|
res = NtUserInsertMenuItem(hMenu, uItem, fByPosition, &mi);
|
||||||
|
|
||||||
if(CleanHeap) RtlFreeHeap (hHeap, 0, mi.dwTypeData);
|
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue