Browse Source

Merge pull request #194 from GrahamDennis/issue-193

Fix issue #193: inSavepoint: should release savepoints that are rolled back
August "Gus" Mueller 12 years ago
parent
commit
d0c59ffa3f
3 changed files with 6 additions and 9 deletions
  1. 2 3
      src/FMDatabase.m
  2. 2 3
      src/FMDatabasePool.m
  3. 2 3
      src/FMDatabaseQueue.m

+ 2 - 3
src/FMDatabase.m

@@ -1147,11 +1147,10 @@ - (NSError*)inSavePoint:(void (^)(BOOL *rollback))block {
     block(&shouldRollback);
     block(&shouldRollback);
     
     
     if (shouldRollback) {
     if (shouldRollback) {
+        // We need to rollback and release this savepoint to remove it
         [self rollbackToSavePointWithName:name error:&err];
         [self rollbackToSavePointWithName:name error:&err];
     }
     }
-    else {
-        [self releaseSavePointWithName:name error:&err];
-    }
+    [self releaseSavePointWithName:name error:&err];
     
     
     return err;
     return err;
 }
 }

+ 2 - 3
src/FMDatabasePool.m

@@ -229,11 +229,10 @@ - (NSError*)inSavePoint:(void (^)(FMDatabase *db, BOOL *rollback))block {
     block(db, &shouldRollback);
     block(db, &shouldRollback);
     
     
     if (shouldRollback) {
     if (shouldRollback) {
+        // We need to rollback and release this savepoint to remove it
         [db rollbackToSavePointWithName:name error:&err];
         [db rollbackToSavePointWithName:name error:&err];
     }
     }
-    else {
-        [db releaseSavePointWithName:name error:&err];
-    }
+    [db releaseSavePointWithName:name error:&err];
     
     
     [self pushDatabaseBackInPool:db];
     [self pushDatabaseBackInPool:db];
     
     

+ 2 - 3
src/FMDatabaseQueue.m

@@ -185,11 +185,10 @@ - (NSError*)inSavePoint:(void (^)(FMDatabase *db, BOOL *rollback))block {
             block([self database], &shouldRollback);
             block([self database], &shouldRollback);
             
             
             if (shouldRollback) {
             if (shouldRollback) {
+                // We need to rollback and release this savepoint to remove it
                 [[self database] rollbackToSavePointWithName:name error:&err];
                 [[self database] rollbackToSavePointWithName:name error:&err];
             }
             }
-            else {
-                [[self database] releaseSavePointWithName:name error:&err];
-            }
+            [[self database] releaseSavePointWithName:name error:&err];
             
             
         }
         }
     });
     });