diff --git a/ChangeLog b/ChangeLog index df8a8c3..1e5d00b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,8 @@ Sun May 30 00:04:55 CDT 2004 Jeff Smith * src/libmdb/file.c: * src/libmdb/mem.c: * src/libmdb/table.c: malloc to g_malloc + * src/sql/main.c: + * src/sql/mdbsql.c: better utilize glib functions, fix memory leak Sat May 29 14:14:21 CDT 2004 Jeff Smith * src/libmdb/backend.c: diff --git a/src/sql/main.c b/src/sql/main.c index 6a08692..fdf2aea 100644 --- a/src/sql/main.c +++ b/src/sql/main.c @@ -76,7 +76,7 @@ int done = 0; /* give the buffer an initial size */ bufsz = 4096; - mybuf = (char *) malloc(bufsz); + mybuf = (char *) g_malloc(bufsz); mybuf[0]='\0'; sprintf(prompt,"1 => "); @@ -92,7 +92,7 @@ int done = 0; } else { while (strlen(mybuf) + strlen(s) > bufsz) { bufsz *= 2; - mybuf = (char *) realloc(mybuf, bufsz); + mybuf = (char *) g_realloc(mybuf, bufsz); } add_history(s); strcat(mybuf,s); @@ -106,5 +106,7 @@ int done = 0; done = 1; } } - mdb_sql_exit(g_sql); + free(s); + g_free(mybuf); + mdb_sql_exit(g_sql); } diff --git a/src/sql/mdbsql.c b/src/sql/mdbsql.c index 32bea8b..9a3b8f8 100644 --- a/src/sql/mdbsql.c +++ b/src/sql/mdbsql.c @@ -99,29 +99,21 @@ void mdb_sql_set_maxrow(MdbSQL *sql, int maxrow) } void mdb_sql_free_column(MdbSQLColumn *c) { - if (c->name) g_free(c->name); + g_free(c->name); g_free(c); } MdbSQLColumn *mdb_sql_alloc_column() { -MdbSQLColumn *c; - - c = (MdbSQLColumn *) g_malloc(sizeof(MdbSQLColumn)); - memset(c,0,sizeof(MdbSQLColumn)); - return c; + return (MdbSQLColumn *) g_malloc0(sizeof(MdbSQLColumn)); } void mdb_sql_free_table(MdbSQLTable *t) { - if (t->name) g_free(t->name); + g_free(t->name); g_free(t); } MdbSQLTable *mdb_sql_alloc_table() { -MdbSQLTable *t; - - t = (MdbSQLTable *) g_malloc(sizeof(MdbSQLTable)); - memset(t,0,sizeof(MdbSQLTable)); - return t; + return (MdbSQLTable *) g_malloc0(sizeof(MdbSQLTable)); } void @@ -152,13 +144,11 @@ wordexp_t words; if (!(sql->mdb = mdb_open(db_namep, MDB_NOFLAGS))) { if (!strstr(db_namep, ".mdb")) { - char *tmpstr = (char *) malloc(strlen(db_namep)+5); - strcpy(tmpstr,db_namep); - strcat(tmpstr,".mdb"); + char *tmpstr = (char *) g_strconcat(db_namep, ".mdb", NULL); if (!(sql->mdb = mdb_open(tmpstr, MDB_NOFLAGS))) { fail++; } - free(tmpstr); + g_free(tmpstr); } else { fail++; } @@ -176,11 +166,7 @@ wordexp_t words; MdbSargNode * mdb_sql_alloc_node() { - MdbSargNode *node; - - node = g_malloc0(sizeof(MdbSargNode)); - - return node; + return (MdbSargNode *) g_malloc0(sizeof(MdbSargNode)); } void mdb_sql_free_tree(MdbSargNode *tree) @@ -809,7 +795,7 @@ mdb_sql_bind_all(MdbSQL *sql) int i; for (i=0;inum_columns;i++) { - sql->bound_values[i] = (char *) malloc(MDB_BIND_SIZE); + sql->bound_values[i] = (char *) g_malloc(MDB_BIND_SIZE); sql->bound_values[i][0] = '\0'; mdb_sql_bind_column(sql, i+1, sql->bound_values[i]); } @@ -880,7 +866,7 @@ MdbSQLColumn *sqlcol; fprintf(stdout,"\n"); /* clean up */ for (j=0;jnum_columns;j++) { - if (sql->bound_values[j]) free(sql->bound_values[j]); + g_free(sql->bound_values[j]); } /* the column and table names are no good now */