mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-01 19:26:16 +00:00
start implement release for dd interface, we do not release everthing yet, we still have some memory leak.
svn path=/trunk/; revision=25155
This commit is contained in:
@@ -15,9 +15,41 @@
|
||||
VOID
|
||||
Cleanup(LPDIRECTDRAW7 iface)
|
||||
{
|
||||
/* FIXME
|
||||
free all memory and delete all dx stuff
|
||||
*/
|
||||
LPDDRAWI_DIRECTDRAW_INT This = (LPDDRAWI_DIRECTDRAW_INT)iface;
|
||||
|
||||
if (ddgbl.lpDDCBtmp != NULL)
|
||||
{
|
||||
DxHeapMemFree(ddgbl.lpDDCBtmp);
|
||||
}
|
||||
|
||||
if (ddgbl.lpModeInfo != NULL)
|
||||
{
|
||||
DxHeapMemFree(ddgbl.lpModeInfo);
|
||||
}
|
||||
|
||||
/* FIXME
|
||||
delete the DC we create
|
||||
delete the dx handler we got from hal
|
||||
any more I forget ?
|
||||
*/
|
||||
|
||||
/* release the linked interface */
|
||||
while (This->lpVtbl != NULL)
|
||||
{
|
||||
LPDDRAWI_DIRECTDRAW_INT newThis = This->lpVtbl;
|
||||
if (This->lpLcl != NULL)
|
||||
{
|
||||
DxHeapMemFree(This->lpLcl);
|
||||
}
|
||||
|
||||
This = newThis;
|
||||
}
|
||||
|
||||
/* release unlinked interface */
|
||||
if (This->lpLcl != NULL)
|
||||
{
|
||||
DxHeapMemFree(This->lpLcl);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,9 @@ VOID Cleanup(LPDIRECTDRAW7 iface);
|
||||
|
||||
/* own macro to alloc memmory */
|
||||
#define DxHeapMemAlloc(m) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, m)
|
||||
#define DxHeapMemFree(p) HeapFree(GetProcessHeap(), 0, p);
|
||||
#define DxHeapMemFree(p) HeapFree(GetProcessHeap(), 0, p); \
|
||||
p = NULL;
|
||||
|
||||
/******** Main Object ********/
|
||||
|
||||
/* Public interface */
|
||||
|
||||
Reference in New Issue
Block a user