Memory freeing bug in msi
Aric Stewart
aric at codeweavers.com
Wed Aug 25 10:41:04 CDT 2004
It is good to free memory after you finish using it instead of just
before. Should fix intermitent failures with installers including iTunes
-------------- next part --------------
Index: dlls/msi/create.c
===================================================================
RCS file: /home/wine/wine/dlls/msi/create.c,v
retrieving revision 1.8
diff -u -w -r1.8 create.c
--- dlls/msi/create.c 9 Jul 2004 22:25:34 -0000 1.8
+++ dlls/msi/create.c 25 Aug 2004 15:38:41 -0000
@@ -212,9 +212,9 @@
HeapFree( GetProcessHeap(), 0, t->colname );
HeapFree( GetProcessHeap(), 0, t );
}
+ msiobj_release( &cv->db->hdr );
HeapFree( GetProcessHeap(), 0, cv->name );
HeapFree( GetProcessHeap(), 0, cv );
- msiobj_release( &cv->db->hdr );
return ERROR_SUCCESS;
}
Index: dlls/msi/distinct.c
===================================================================
RCS file: /home/wine/wine/dlls/msi/distinct.c,v
retrieving revision 1.6
diff -u -w -r1.6 distinct.c
--- dlls/msi/distinct.c 9 Jul 2004 22:25:34 -0000 1.6
+++ dlls/msi/distinct.c 25 Aug 2004 15:38:42 -0000
@@ -241,8 +241,8 @@
if( dv->translation )
HeapFree( GetProcessHeap(), 0, dv->translation );
- HeapFree( GetProcessHeap(), 0, dv );
msiobj_release( &dv->db->hdr );
+ HeapFree( GetProcessHeap(), 0, dv );
return ERROR_SUCCESS;
}
Index: dlls/msi/insert.c
===================================================================
RCS file: /home/wine/wine/dlls/msi/insert.c,v
retrieving revision 1.7
diff -u -w -r1.7 insert.c
--- dlls/msi/insert.c 9 Jul 2004 22:25:34 -0000 1.7
+++ dlls/msi/insert.c 25 Aug 2004 15:38:42 -0000
@@ -179,8 +179,8 @@
if( sv )
sv->ops->delete( sv );
delete_value_list( iv->vals );
- HeapFree( GetProcessHeap(), 0, iv );
msiobj_release( &iv->db->hdr );
+ HeapFree( GetProcessHeap(), 0, iv );
return ERROR_SUCCESS;
}
Index: dlls/msi/order.c
===================================================================
RCS file: /home/wine/wine/dlls/msi/order.c,v
retrieving revision 1.6
diff -u -w -r1.6 order.c
--- dlls/msi/order.c 9 Jul 2004 22:25:34 -0000 1.6
+++ dlls/msi/order.c 25 Aug 2004 15:38:42 -0000
@@ -244,8 +244,8 @@
HeapFree( GetProcessHeap(), 0, ov->reorder );
ov->reorder = NULL;
- HeapFree( GetProcessHeap(), 0, ov );
msiobj_release( &ov->db->hdr );
+ HeapFree( GetProcessHeap(), 0, ov );
return ERROR_SUCCESS;
}
Index: dlls/msi/update.c
===================================================================
RCS file: /home/wine/wine/dlls/msi/update.c,v
retrieving revision 1.3
diff -u -w -r1.3 update.c
--- dlls/msi/update.c 9 Jul 2004 22:25:34 -0000 1.3
+++ dlls/msi/update.c 25 Aug 2004 15:38:42 -0000
@@ -171,8 +171,8 @@
if( wv )
wv->ops->delete( wv );
delete_value_list( uv->vals );
- HeapFree( GetProcessHeap(), 0, uv );
msiobj_release( &uv->db->hdr );
+ HeapFree( GetProcessHeap(), 0, uv );
return ERROR_SUCCESS;
}
Index: dlls/msi/where.c
===================================================================
RCS file: /home/wine/wine/dlls/msi/where.c,v
retrieving revision 1.12
diff -u -w -r1.12 where.c
--- dlls/msi/where.c 9 Jul 2004 22:25:34 -0000 1.12
+++ dlls/msi/where.c 25 Aug 2004 15:38:42 -0000
@@ -336,8 +336,8 @@
if( wv->cond )
delete_expr( wv->cond );
- HeapFree( GetProcessHeap(), 0, wv );
msiobj_release( &wv->db->hdr );
+ HeapFree( GetProcessHeap(), 0, wv );
return ERROR_SUCCESS;
}
More information about the wine-patches
mailing list