Use @autoreleasepool directive
[pithos-macos] / pithos-macos / PithosSubdirNode.m
index bcec8fe..371324c 100644 (file)
@@ -169,89 +169,89 @@ static NSImage *sharedIcon = nil;
 #pragma mark ASIHTTPRequestDelegate
 
 - (void)objectRequestFinished:(ASIPithosObjectRequest *)request {
-    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-    DLog(@"URL: %@", [request url]);
-    DLog(@"cached: %d", [request didUseCachedResponse]);
-    
-    if ([request isEqualTo:applyMetadataObjectRequest]) {
-        int responseStatusCode = applyMetadataObjectRequest.responseStatusCode;
-        if ((responseStatusCode != 201) && (responseStatusCode != 202))
-            [PithosUtilities unexpectedResponseStatusAlertWithRequest:applyMetadataObjectRequest];
-        @synchronized(self) {
-            [applyMetadataObjectRequest release];
-            applyMetadataObjectRequest = nil;
-        }
-        if ((responseStatusCode == 201) || (responseStatusCode == 202))
-            [self refreshInfo];
-    } else if ([request isEqualTo:refreshMetadataObjectRequest]) {
-        [[pithosNodeInfoController window] makeFirstResponder:nil];
-        self.pithosObject = [refreshMetadataObjectRequest object];
-        if (refreshParent) {
-            // Ask the parent for refresh for the case where an object was removed
-            // It is done here so that it doesn't affect the info window refresh
-            [parent refresh];
-            refreshParent = NO;
-        }
-        @synchronized(self) {
-            [refreshMetadataObjectRequest release];
-            refreshMetadataObjectRequest = nil;
-        }
-    } else if ([request isEqualTo:refreshVersionsObjectRequest]) {
-        [[pithosNodeInfoController window] makeFirstResponder:nil];
-        self.versions = [refreshVersionsObjectRequest versions];
-        @synchronized(self) {
-            [refreshVersionsObjectRequest release];
-            refreshVersionsObjectRequest = nil;
-        }
-    }
-    [pool drain];
-}
-
-- (void)objectRequestFailed:(ASIPithosObjectRequest *)request {
-    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-    NSUInteger retries = [[request.userInfo objectForKey:@"retries"] unsignedIntegerValue];
-    if (retries > 0) {
-        ASIPithosObjectRequest *newRequest = (ASIPithosObjectRequest *)[PithosUtilities copyRequest:request];
-        [(NSMutableDictionary *)(newRequest.userInfo)setObject:[NSNumber numberWithUnsignedInteger:(--retries)] forKey:@"retries"];
-        if ([request isEqualTo:applyMetadataObjectRequest]) {
-            @synchronized(self) {
-                [applyMetadataObjectRequest release];
-                applyMetadataObjectRequest = newRequest;
-            }
-        } else if ([request isEqualTo:refreshMetadataObjectRequest]) {
-            @synchronized(self) {
-                [refreshMetadataObjectRequest release];
-                refreshMetadataObjectRequest = newRequest;
-            }
-        } else if ([request isEqualTo:refreshVersionsObjectRequest]) {
-            @synchronized(self) {
-                [refreshVersionsObjectRequest release];
-                refreshVersionsObjectRequest = newRequest;
-            }
-        }
-        [[PithosUtilities prepareRequest:newRequest priority:[[newRequest.userInfo objectForKey:@"priority"] integerValue]] startAsynchronous];
-    } else {
+    @autoreleasepool {
+        DLog(@"URL: %@", [request url]);
+        DLog(@"cached: %d", [request didUseCachedResponse]);
+        
         if ([request isEqualTo:applyMetadataObjectRequest]) {
-            [PithosUtilities httpRequestErrorAlertWithRequest:applyMetadataObjectRequest];
+            int responseStatusCode = applyMetadataObjectRequest.responseStatusCode;
+            if ((responseStatusCode != 201) && (responseStatusCode != 202))
+                [PithosUtilities unexpectedResponseStatusAlertWithRequest:applyMetadataObjectRequest];
             @synchronized(self) {
                 [applyMetadataObjectRequest release];
                 applyMetadataObjectRequest = nil;
             }
+            if ((responseStatusCode == 201) || (responseStatusCode == 202))
+                [self refreshInfo];
         } else if ([request isEqualTo:refreshMetadataObjectRequest]) {
-            [PithosUtilities httpRequestErrorAlertWithRequest:refreshMetadataObjectRequest];
+            [[pithosNodeInfoController window] makeFirstResponder:nil];
+            self.pithosObject = [refreshMetadataObjectRequest object];
+            if (refreshParent) {
+                // Ask the parent for refresh for the case where an object was removed
+                // It is done here so that it doesn't affect the info window refresh
+                [parent refresh];
+                refreshParent = NO;
+            }
             @synchronized(self) {
                 [refreshMetadataObjectRequest release];
                 refreshMetadataObjectRequest = nil;
             }
         } else if ([request isEqualTo:refreshVersionsObjectRequest]) {
-            [PithosUtilities httpRequestErrorAlertWithRequest:refreshVersionsObjectRequest];
+            [[pithosNodeInfoController window] makeFirstResponder:nil];
+            self.versions = [refreshVersionsObjectRequest versions];
             @synchronized(self) {
                 [refreshVersionsObjectRequest release];
                 refreshVersionsObjectRequest = nil;
             }
         }
     }
-    [pool drain];
+}
+
+- (void)objectRequestFailed:(ASIPithosObjectRequest *)request {
+    @autoreleasepool {
+        NSUInteger retries = [[request.userInfo objectForKey:@"retries"] unsignedIntegerValue];
+        if (retries > 0) {
+            ASIPithosObjectRequest *newRequest = (ASIPithosObjectRequest *)[PithosUtilities copyRequest:request];
+            [(NSMutableDictionary *)(newRequest.userInfo)setObject:[NSNumber numberWithUnsignedInteger:(--retries)] forKey:@"retries"];
+            if ([request isEqualTo:applyMetadataObjectRequest]) {
+                @synchronized(self) {
+                    [applyMetadataObjectRequest release];
+                    applyMetadataObjectRequest = newRequest;
+                }
+            } else if ([request isEqualTo:refreshMetadataObjectRequest]) {
+                @synchronized(self) {
+                    [refreshMetadataObjectRequest release];
+                    refreshMetadataObjectRequest = newRequest;
+                }
+            } else if ([request isEqualTo:refreshVersionsObjectRequest]) {
+                @synchronized(self) {
+                    [refreshVersionsObjectRequest release];
+                    refreshVersionsObjectRequest = newRequest;
+                }
+            }
+            [[PithosUtilities prepareRequest:newRequest priority:[[newRequest.userInfo objectForKey:@"priority"] integerValue]] startAsynchronous];
+        } else {
+            if ([request isEqualTo:applyMetadataObjectRequest]) {
+                [PithosUtilities httpRequestErrorAlertWithRequest:applyMetadataObjectRequest];
+                @synchronized(self) {
+                    [applyMetadataObjectRequest release];
+                    applyMetadataObjectRequest = nil;
+                }
+            } else if ([request isEqualTo:refreshMetadataObjectRequest]) {
+                [PithosUtilities httpRequestErrorAlertWithRequest:refreshMetadataObjectRequest];
+                @synchronized(self) {
+                    [refreshMetadataObjectRequest release];
+                    refreshMetadataObjectRequest = nil;
+                }
+            } else if ([request isEqualTo:refreshVersionsObjectRequest]) {
+                [PithosUtilities httpRequestErrorAlertWithRequest:refreshVersionsObjectRequest];
+                @synchronized(self) {
+                    [refreshVersionsObjectRequest release];
+                    refreshVersionsObjectRequest = nil;
+                }
+            }
+        }
+    }
 }
 
 #pragma mark -