diff --git a/symmetric-client-clib/inc/db/sqlite/SqliteSqlTemplate.h b/symmetric-client-clib/inc/db/sqlite/SqliteSqlTemplate.h index 0f25616b65..aa0ef0b634 100644 --- a/symmetric-client-clib/inc/db/sqlite/SqliteSqlTemplate.h +++ b/symmetric-client-clib/inc/db/sqlite/SqliteSqlTemplate.h @@ -33,7 +33,6 @@ typedef struct SymSqliteSqlTemplate { SymSqlTemplate super; sqlite3 *db; - void (*destroy)(struct SymSqliteSqlTemplate *this); } SymSqliteSqlTemplate; SymSqliteSqlTemplate * SymSqliteSqlTemplate_new(SymSqliteSqlTemplate *this, sqlite3 *db); diff --git a/symmetric-client-clib/src/db/platform/sqlite/SqlitePlatform.c b/symmetric-client-clib/src/db/platform/sqlite/SqlitePlatform.c index bd0ee1b3ef..7ac3b4e8d1 100644 --- a/symmetric-client-clib/src/db/platform/sqlite/SqlitePlatform.c +++ b/symmetric-client-clib/src/db/platform/sqlite/SqlitePlatform.c @@ -48,11 +48,11 @@ SymSqliteSqlTemplate * SymSqlitePlatform_getSqlTemplate(SymSqlitePlatform *this) void SymSqlitePlatform_destroy(SymDatabasePlatform *super) { SymLog_info("Closing SQLite database"); -// SymSqlitePlatform *this = (SymSqlitePlatform *) super; + SymSqlitePlatform *this = (SymSqlitePlatform *) super; // sqlite3_close(this->db); -// this->sqlTemplate->destroy(this->sqlTemplate); + this->sqlTemplate->destroy(this->sqlTemplate); // free(super->ddlReader); -// free(super); + free(this); } SymSqlitePlatform * SymSqlitePlatform_new(SymSqlitePlatform *this, SymProperties *properties) { diff --git a/symmetric-client-clib/src/db/platform/sqlite/SqliteSqlTemplate.c b/symmetric-client-clib/src/db/platform/sqlite/SqliteSqlTemplate.c index 94d8edcdd7..a5d80fae7d 100644 --- a/symmetric-client-clib/src/db/platform/sqlite/SqliteSqlTemplate.c +++ b/symmetric-client-clib/src/db/platform/sqlite/SqliteSqlTemplate.c @@ -207,6 +207,6 @@ SymSqliteSqlTemplate * SymSqliteSqlTemplate_new(SymSqliteSqlTemplate *this, sqli super->queryWithUserData = (void *) &SymSqliteSqlTemplate_queryWithUserData; super->update = (void *) &SymSqliteSqlTemplate_update; super->startSqlTransaction = (void *) &SymSqliteSqlTemplate_startSqlTransaction; - this->destroy = (void *) &SymSqliteSqlTemplate_destroy; + super->destroy = (void *) &SymSqliteSqlTemplate_destroy; return this; } diff --git a/symmetric-client-clib/src/io/writer/DefaultDatabaseWriter.c b/symmetric-client-clib/src/io/writer/DefaultDatabaseWriter.c index 509cc3cb5c..7ba535c7aa 100644 --- a/symmetric-client-clib/src/io/writer/DefaultDatabaseWriter.c +++ b/symmetric-client-clib/src/io/writer/DefaultDatabaseWriter.c @@ -280,6 +280,8 @@ void SymDefaultDatabaseWriter_endBatch(SymDefaultDatabaseWriter *this, SymBatch void SymDefaultDatabaseWriter_close(SymDefaultDatabaseWriter *this) { this->sqlTransaction->close(this->sqlTransaction); + this->sqlTransaction->destroy(this->sqlTransaction); + this->sqlTransaction = NULL; } void SymDefaultDatabaseWriter_destroy(SymDefaultDatabaseWriter *this) {