diff --git a/KissMeme/Sources/KissDB.swift b/KissMeme/Sources/KissDB.swift index ecd3294..7501413 100644 --- a/KissMeme/Sources/KissDB.swift +++ b/KissMeme/Sources/KissDB.swift @@ -134,12 +134,16 @@ public class KissDB: NSObject { // TODO: impl. more public func insertData(from: @escaping ((Int)->DataItem?), count: Int) throws { + throw KissDBError.general(-99, "unimplemented") + + #if false let obj = InsertDataItemCallbackObject(insertCallback: from, maxCount: count) let userPtr = Unmanaged.passUnretained(obj).toOpaque() guard kiss_db_insert_from(cPtr, false, InsertDataItemCallbackObject.insertCallback, userPtr, cError) else { throw KissDBError.general(cError.code, cError.message) } + #endif } public func delete(key: String) throws { diff --git a/kissdb/Sources/kissdb/kissdb.c b/kissdb/Sources/kissdb/kissdb.c index 4a6d589..c1b361c 100644 --- a/kissdb/Sources/kissdb/kissdb.c +++ b/kissdb/Sources/kissdb/kissdb.c @@ -77,6 +77,9 @@ void kiss_db_destroy(kiss_db_ptr ptr) if (ptr == NULL) { return; } + if (ptr->txn) { + mdb_txn_abort(ptr->txn); + } mdb_dbi_close(ptr->env, ptr->dbi); mdb_env_close(ptr->env); free(ptr); @@ -102,6 +105,7 @@ kiss_bool kiss_db_commit(kiss_db_ptr ptr, kiss_db_error_t* error) { _kiss_db_update_count(ptr); mdb_txn_commit(ptr->txn); + ptr->txn = NULL; return true; } @@ -110,7 +114,7 @@ kiss_bool kiss_db_rollback(kiss_db_ptr ptr, kiss_db_error_t* error) { _kiss_db_update_count(ptr); mdb_txn_abort(ptr->txn); - + ptr->txn = NULL; return true; }