free backend structures on exit

This commit is contained in:
brianb
2004-04-12 14:33:56 +00:00
parent 49cf3e0cbc
commit 341fc9d4ef
4 changed files with 18 additions and 2 deletions

View File

@@ -1,3 +1,8 @@
Mon Apr 12 09:56:23 EDT 2004 Brian Bruns <brian@bruns.com>
* include/mdbtools:
* src/libmdb/mem.c:
* src/libmdb/backend.c: free backends on exit (Jeff Smith)
Thu Mar 25 04:56:05 EST 2004 Brian Bruns <brian@bruns.com>
* src/odbc/odbc.c(_SQLFreeStmt): call mdb_sql_reset on stmt drop (Jeff Smith)

View File

@@ -446,6 +446,7 @@ extern char *mdb_get_coltype_string(MdbBackend *backend, int col_type);
extern int mdb_coltype_takes_length(MdbBackend *backend, int col_type);
extern void mdb_init_backends();
extern void mdb_register_backend(MdbBackend *backend, char *backend_name);
extern void mdb_remove_backends();
extern int mdb_set_default_backend(MdbHandle *mdb, char *backend_name);
extern char *mdb_get_relationships(MdbHandle *mdb);

View File

@@ -192,6 +192,17 @@ void mdb_register_backend(MdbBackend *backend, char *backend_name)
{
g_hash_table_insert(mdb_backends,backend_name,backend);
}
static gboolean mdb_drop_backend(gpointer key, gpointer value, gpointer data)
{
MdbBackend *backend = (MdbBackend *)value;
g_free (backend);
return TRUE;
}
void mdb_remove_backends()
{
g_hash_table_foreach_remove(mdb_backends, mdb_drop_backend, NULL);
g_hash_table_destroy(mdb_backends);
}
int mdb_set_default_backend(MdbHandle *mdb, char *backend_name)
{
MdbBackend *backend;

View File

@@ -31,8 +31,7 @@ void mdb_init()
void mdb_exit()
{
/* FIX ME -- need to deallocate backend structures */
g_hash_table_destroy(mdb_backends);
mdb_remove_backends();
}
MdbStatistics *mdb_alloc_stats(MdbHandle *mdb)