mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-11-26 10:29:27 +08:00
better utilize glib functions, fix memory leak
This commit is contained in:
@@ -3,6 +3,8 @@ Sun May 30 00:04:55 CDT 2004 Jeff Smith <whydoubt@yahoo.com>
|
|||||||
* src/libmdb/file.c:
|
* src/libmdb/file.c:
|
||||||
* src/libmdb/mem.c:
|
* src/libmdb/mem.c:
|
||||||
* src/libmdb/table.c: malloc to g_malloc
|
* 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 <whydoubt@yahoo.com>
|
Sat May 29 14:14:21 CDT 2004 Jeff Smith <whydoubt@yahoo.com>
|
||||||
* src/libmdb/backend.c:
|
* src/libmdb/backend.c:
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ int done = 0;
|
|||||||
|
|
||||||
/* give the buffer an initial size */
|
/* give the buffer an initial size */
|
||||||
bufsz = 4096;
|
bufsz = 4096;
|
||||||
mybuf = (char *) malloc(bufsz);
|
mybuf = (char *) g_malloc(bufsz);
|
||||||
mybuf[0]='\0';
|
mybuf[0]='\0';
|
||||||
|
|
||||||
sprintf(prompt,"1 => ");
|
sprintf(prompt,"1 => ");
|
||||||
@@ -92,7 +92,7 @@ int done = 0;
|
|||||||
} else {
|
} else {
|
||||||
while (strlen(mybuf) + strlen(s) > bufsz) {
|
while (strlen(mybuf) + strlen(s) > bufsz) {
|
||||||
bufsz *= 2;
|
bufsz *= 2;
|
||||||
mybuf = (char *) realloc(mybuf, bufsz);
|
mybuf = (char *) g_realloc(mybuf, bufsz);
|
||||||
}
|
}
|
||||||
add_history(s);
|
add_history(s);
|
||||||
strcat(mybuf,s);
|
strcat(mybuf,s);
|
||||||
@@ -106,5 +106,7 @@ int done = 0;
|
|||||||
done = 1;
|
done = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
free(s);
|
||||||
|
g_free(mybuf);
|
||||||
mdb_sql_exit(g_sql);
|
mdb_sql_exit(g_sql);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -99,29 +99,21 @@ void mdb_sql_set_maxrow(MdbSQL *sql, int maxrow)
|
|||||||
}
|
}
|
||||||
void mdb_sql_free_column(MdbSQLColumn *c)
|
void mdb_sql_free_column(MdbSQLColumn *c)
|
||||||
{
|
{
|
||||||
if (c->name) g_free(c->name);
|
g_free(c->name);
|
||||||
g_free(c);
|
g_free(c);
|
||||||
}
|
}
|
||||||
MdbSQLColumn *mdb_sql_alloc_column()
|
MdbSQLColumn *mdb_sql_alloc_column()
|
||||||
{
|
{
|
||||||
MdbSQLColumn *c;
|
return (MdbSQLColumn *) g_malloc0(sizeof(MdbSQLColumn));
|
||||||
|
|
||||||
c = (MdbSQLColumn *) g_malloc(sizeof(MdbSQLColumn));
|
|
||||||
memset(c,0,sizeof(MdbSQLColumn));
|
|
||||||
return c;
|
|
||||||
}
|
}
|
||||||
void mdb_sql_free_table(MdbSQLTable *t)
|
void mdb_sql_free_table(MdbSQLTable *t)
|
||||||
{
|
{
|
||||||
if (t->name) g_free(t->name);
|
g_free(t->name);
|
||||||
g_free(t);
|
g_free(t);
|
||||||
}
|
}
|
||||||
MdbSQLTable *mdb_sql_alloc_table()
|
MdbSQLTable *mdb_sql_alloc_table()
|
||||||
{
|
{
|
||||||
MdbSQLTable *t;
|
return (MdbSQLTable *) g_malloc0(sizeof(MdbSQLTable));
|
||||||
|
|
||||||
t = (MdbSQLTable *) g_malloc(sizeof(MdbSQLTable));
|
|
||||||
memset(t,0,sizeof(MdbSQLTable));
|
|
||||||
return t;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -152,13 +144,11 @@ wordexp_t words;
|
|||||||
|
|
||||||
if (!(sql->mdb = mdb_open(db_namep, MDB_NOFLAGS))) {
|
if (!(sql->mdb = mdb_open(db_namep, MDB_NOFLAGS))) {
|
||||||
if (!strstr(db_namep, ".mdb")) {
|
if (!strstr(db_namep, ".mdb")) {
|
||||||
char *tmpstr = (char *) malloc(strlen(db_namep)+5);
|
char *tmpstr = (char *) g_strconcat(db_namep, ".mdb", NULL);
|
||||||
strcpy(tmpstr,db_namep);
|
|
||||||
strcat(tmpstr,".mdb");
|
|
||||||
if (!(sql->mdb = mdb_open(tmpstr, MDB_NOFLAGS))) {
|
if (!(sql->mdb = mdb_open(tmpstr, MDB_NOFLAGS))) {
|
||||||
fail++;
|
fail++;
|
||||||
}
|
}
|
||||||
free(tmpstr);
|
g_free(tmpstr);
|
||||||
} else {
|
} else {
|
||||||
fail++;
|
fail++;
|
||||||
}
|
}
|
||||||
@@ -176,11 +166,7 @@ wordexp_t words;
|
|||||||
MdbSargNode *
|
MdbSargNode *
|
||||||
mdb_sql_alloc_node()
|
mdb_sql_alloc_node()
|
||||||
{
|
{
|
||||||
MdbSargNode *node;
|
return (MdbSargNode *) g_malloc0(sizeof(MdbSargNode));
|
||||||
|
|
||||||
node = g_malloc0(sizeof(MdbSargNode));
|
|
||||||
|
|
||||||
return node;
|
|
||||||
}
|
}
|
||||||
void
|
void
|
||||||
mdb_sql_free_tree(MdbSargNode *tree)
|
mdb_sql_free_tree(MdbSargNode *tree)
|
||||||
@@ -809,7 +795,7 @@ mdb_sql_bind_all(MdbSQL *sql)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i=0;i<sql->num_columns;i++) {
|
for (i=0;i<sql->num_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';
|
sql->bound_values[i][0] = '\0';
|
||||||
mdb_sql_bind_column(sql, i+1, sql->bound_values[i]);
|
mdb_sql_bind_column(sql, i+1, sql->bound_values[i]);
|
||||||
}
|
}
|
||||||
@@ -880,7 +866,7 @@ MdbSQLColumn *sqlcol;
|
|||||||
fprintf(stdout,"\n");
|
fprintf(stdout,"\n");
|
||||||
/* clean up */
|
/* clean up */
|
||||||
for (j=0;j<sql->num_columns;j++) {
|
for (j=0;j<sql->num_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 */
|
/* the column and table names are no good now */
|
||||||
|
|||||||
Reference in New Issue
Block a user