From f1bc789ddac2959fa248aa833f0b6bcecaf0c53a Mon Sep 17 00:00:00 2001 From: whydoubt Date: Sat, 24 Apr 2004 05:02:32 +0000 Subject: [PATCH] Setting various pointers to NULL after freeing. --- ChangeLog | 4 ++++ src/libmdb/catalog.c | 2 +- src/libmdb/mem.c | 12 +++++++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5b89c8c..da80b9c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sat Apr 24 00:02:14 CDT 2004 Jeff Smith + * src/libmdb/mem.c: + * src/libmdb/catalog.c: Setting various pointers to NULL after freeing. + Fri Apr 16 10:48:05 EDT 2004 Brian Bruns * src/libmdb/write.c: restructuring of mdb_crack_row?() to accomodate columns deletes/adds diff --git a/src/libmdb/catalog.c b/src/libmdb/catalog.c index fd505c4..343170d 100644 --- a/src/libmdb/catalog.c +++ b/src/libmdb/catalog.c @@ -57,7 +57,7 @@ char objname[256]; char tobjtype[256]; int type; - mdb_free_catalog(mdb); + if (mdb->catalog) mdb_free_catalog(mdb); mdb_alloc_catalog(mdb); mdb->num_catalog = 0; diff --git a/src/libmdb/mem.c b/src/libmdb/mem.c index 90b9d00..fd47466 100644 --- a/src/libmdb/mem.c +++ b/src/libmdb/mem.c @@ -63,6 +63,7 @@ mdb_free_stats(MdbHandle *mdb) g_free(mdb->stats); mdb->stats = NULL; } + MdbFile * mdb_alloc_file() { @@ -80,6 +81,7 @@ mdb_free_file(MdbFile *f) if (f->fd) close(f->fd); if (f->filename) free(f->filename); free(f); + f = NULL; } MdbHandle *mdb_alloc_handle() @@ -101,16 +103,19 @@ void mdb_free_handle(MdbHandle *mdb) if (mdb->f && mdb->f->refs<=0) mdb_free_file(mdb->f); if (mdb->backend_name) free(mdb->backend_name); free(mdb); + mdb = NULL; } + void mdb_alloc_catalog(MdbHandle *mdb) { mdb->catalog = g_ptr_array_new(); } void mdb_free_catalog(MdbHandle *mdb) { - //g_ptr_array_free(mdb->catalog, FALSE); + g_ptr_array_free(mdb->catalog, TRUE); mdb->catalog = NULL; } + MdbTableDef *mdb_alloc_tabledef(MdbCatalogEntry *entry) { MdbTableDef *table; @@ -129,7 +134,9 @@ mdb_free_tabledef(MdbTableDef *table) if (table->usage_map) free(table->usage_map); if (table->free_usage_map) free(table->free_usage_map); free(table); + table = NULL; } + void mdb_append_column(GPtrArray *columns, MdbColumn *in_col) { @@ -142,7 +149,9 @@ void mdb_free_columns(GPtrArray *columns) { g_ptr_array_free(columns, TRUE); + columns = NULL; } + void mdb_append_index(GPtrArray *indices, MdbIndex *in_idx) { @@ -155,4 +164,5 @@ void mdb_free_indices(GPtrArray *indices) { g_ptr_array_free(indices, TRUE); + indices = NULL; }