Cleaning up memory for catalogs

This commit is contained in:
whydoubt
2004-04-24 05:53:05 +00:00
parent f1bc789dda
commit 7b34e5e88c
3 changed files with 11 additions and 2 deletions

View File

@@ -1,6 +1,8 @@
Sat Apr 24 00:02:14 CDT 2004 Jeff Smith <whydoubt@yahoo.com> Sat Apr 24 00:02:14 CDT 2004 Jeff Smith <whydoubt@yahoo.com>
* src/libmdb/mem.c: * src/libmdb/mem.c:
* src/libmdb/catalog.c: Setting various pointers to NULL after freeing. * src/libmdb/catalog.c: Setting various pointers to NULL after freeing.
* src/libmdb/mem.c:
* src/libmdb/file.c: Cleaning up memory for catalogs
Fri Apr 16 10:48:05 EDT 2004 Brian Bruns <brian@bruns.com> Fri Apr 16 10:48:05 EDT 2004 Brian Bruns <brian@bruns.com>
* src/libmdb/write.c: restructuring of mdb_crack_row?() to accomodate * src/libmdb/write.c: restructuring of mdb_crack_row?() to accomodate

View File

@@ -192,7 +192,7 @@ mdb_close(MdbHandle *mdb)
MdbHandle *mdb_clone_handle(MdbHandle *mdb) MdbHandle *mdb_clone_handle(MdbHandle *mdb)
{ {
MdbHandle *newmdb; MdbHandle *newmdb;
MdbCatalogEntry *entry; MdbCatalogEntry *entry, *data;
int i; int i;
newmdb = mdb_alloc_handle(); newmdb = mdb_alloc_handle();
@@ -201,7 +201,8 @@ MdbHandle *mdb_clone_handle(MdbHandle *mdb)
newmdb->catalog = g_ptr_array_new(); newmdb->catalog = g_ptr_array_new();
for (i=0;i<mdb->num_catalog;i++) { for (i=0;i<mdb->num_catalog;i++) {
entry = g_ptr_array_index(mdb->catalog,i); entry = g_ptr_array_index(mdb->catalog,i);
g_ptr_array_add(newmdb->catalog, entry); data = g_memdup(entry,sizeof(MdbCatalogEntry));
g_ptr_array_add(newmdb->catalog, data);
} }
mdb->backend_name = NULL; mdb->backend_name = NULL;
if (mdb->f) { if (mdb->f) {

View File

@@ -112,6 +112,12 @@ void mdb_alloc_catalog(MdbHandle *mdb)
} }
void mdb_free_catalog(MdbHandle *mdb) void mdb_free_catalog(MdbHandle *mdb)
{ {
unsigned int i;
MdbCatalogEntry *entry;
for (i=0; i<mdb->catalog->len; i++) {
entry = g_ptr_array_index(mdb->catalog, i);
g_free (entry);
}
g_ptr_array_free(mdb->catalog, TRUE); g_ptr_array_free(mdb->catalog, TRUE);
mdb->catalog = NULL; mdb->catalog = NULL;
} }