diff --git a/ChangeLog b/ChangeLog index 7c036bc..44ebee7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,7 @@ Tue Jun 22 22:02:02 CDT 2004 Jeff Smith * src/util/mdb-schema.c: Fix a memory leak * src/libmdb/mem.c: Fix another memory leak * src/libmdb/catalog.c: Bind columns by name in mdb_read_catalog + * src/libmdb/worktable.c: Remove only use of mdb_append_column Mon Jun 21 23:18:18 CDT 2004 Jeff Smith * src/libmdb/backend.c: diff --git a/src/libmdb/worktable.c b/src/libmdb/worktable.c index f1c811f..b67b88e 100644 --- a/src/libmdb/worktable.c +++ b/src/libmdb/worktable.c @@ -50,17 +50,17 @@ mdb_fill_temp_field(MdbField *field, void *value, int siz, int is_fixed, int is_ MdbTableDef * mdb_create_temp_table(MdbHandle *mdb, char *name) { - MdbCatalogEntry entry; + MdbCatalogEntry *entry; MdbTableDef *table; /* dummy up a catalog entry */ - memset(&entry, 0, sizeof(MdbCatalogEntry)); - entry.mdb = mdb; - entry.object_type = MDB_TABLE; - entry.table_pg = 0; - strcpy(entry.object_name, name); + entry = (MdbCatalogEntry *) g_malloc0(sizeof(MdbCatalogEntry)); + entry->mdb = mdb; + entry->object_type = MDB_TABLE; + entry->table_pg = 0; + strcpy(entry->object_name, name); - table = mdb_alloc_tabledef(g_memdup(&entry, sizeof(MdbCatalogEntry))); + table = mdb_alloc_tabledef(entry); table->columns = g_ptr_array_new(); return table; @@ -69,6 +69,6 @@ void mdb_temp_table_add_col(MdbTableDef *table, MdbColumn *col) { col->col_num = table->num_cols; - mdb_append_column(table->columns, col); + g_ptr_array_add(table->columns, g_memdup(col, sizeof(MdbColumn))); table->num_cols++; }