adium 4870:6535d5c9664e: Merged

commits at adium.im commits at adium.im
Wed Jun 20 21:31:30 UTC 2012


details:	http://hg.adium.im/adium/rev/6535d5c9664e
revision:	4870:6535d5c9664e
branch:		(none)
author:		Thijs Alkemade <thijsalkemade at gmail.com>
date:		Wed Jun 20 23:31:00 2012 +0200

Merged

diffs (146 lines):

diff -r 05168b11a63b -r 6535d5c9664e ChangeLogs/Changes.txt
--- a/ChangeLogs/Changes.txt	Sat Jun 09 18:13:30 2012 -0400
+++ b/ChangeLogs/Changes.txt	Wed Jun 20 23:31:00 2012 +0200
@@ -1,6 +1,10 @@
 				Adium Version History
 				-----------------------
-Version 1.5.1
+Version 1.5.2 (X/X/X)
+ * Fixed crash when closing the Novell Groupwise account options. (#16041)
+
+
+Version 1.5.1 (6/7/2012)
   * Adium is now securely signed with an Apple Developer ID for OS X 10.8 / GateKeeper compatibility.
   * Updated to libpurple 2.10.4
     * AIM/ICQ: Fixed communication with buddies containing periods and underscores.
@@ -18,6 +22,7 @@
   * Fixed alphabetical contact list sorting involving diacritics such as "å" and "ä" (Rafael Glauber) (#12678)
   * Made "View Release Notes" localizable. (#15914)
 
+
 Version 1.5 (3/15/2012)
  Major changes
   * Requires Mac OS X 10.6.8 or later.
diff -r 05168b11a63b -r 6535d5c9664e Copyright.txt
--- a/Copyright.txt	Sat Jun 09 18:13:30 2012 -0400
+++ b/Copyright.txt	Wed Jun 20 23:31:00 2012 +0200
@@ -72,6 +72,7 @@
 Paul R. Livesey
 Daniel Ljungborg
 Casey Lutz
+Jeff Mahoney
 Sam McCandlish
 Pietro Modi
 Nicola Del Monaco
diff -r 05168b11a63b -r 6535d5c9664e Frameworks/Adium Framework/Source/AIAccountViewController.m
--- a/Frameworks/Adium Framework/Source/AIAccountViewController.m	Sat Jun 09 18:13:30 2012 -0400
+++ b/Frameworks/Adium Framework/Source/AIAccountViewController.m	Wed Jun 20 23:31:00 2012 +0200
@@ -94,7 +94,8 @@
 {    
 	[view_setup release];
 	[view_profile release];
-	[view_options release];
+	if (view_setup != view_options)
+		[view_options release];
 	[changedPrefDict release];
 
     [[NSNotificationCenter defaultCenter] removeObserver:self];
diff -r 05168b11a63b -r 6535d5c9664e Source/AILoggerPlugin.m
--- a/Source/AILoggerPlugin.m	Sat Jun 09 18:13:30 2012 -0400
+++ b/Source/AILoggerPlugin.m	Wed Jun 20 23:31:00 2012 +0200
@@ -1445,10 +1445,13 @@
 		return;
 	}
 	
+	CFRetain(searchIndex);
+	
 	// logsIndexed = 0;
 	OSAtomicCompareAndSwap64Barrier(logsIndexed, 0, (int64_t*)&logsIndexed);
 	
 	if (self.indexingAllowed) {
+		
 		self.isIndexing = YES;
 		__block UInt32  lastUpdate = TickCount();
 		__block SInt32  unsavedChanges = 0;
@@ -1456,7 +1459,9 @@
 		AILogWithSignature(@"Cleaning %i dirty logs", [localLogSet count]);
 		[localLogSet retain];
 		dispatch_group_async(loggerPluginGroup, searchIndexQueue, blockWithAutoreleasePool(^{
+			
 			dispatch_group_enter(logIndexingGroup);
+			
 			while (_remainingLogs > 0 && bself.indexingAllowed) {
 				NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 				__block NSString *__logPath = nil;
@@ -1540,6 +1545,9 @@
                                         CFRelease(documentText);
 										dispatch_semaphore_signal(jobSemaphore);
                                     } else {
+										OSAtomicIncrement64Barrier((int64_t *)&(bself->logsIndexed));
+										OSAtomicDecrement64Barrier((int64_t *)&_remainingLogs);
+										
 										dispatch_semaphore_signal(jobSemaphore);
 									}
 									
@@ -1555,6 +1563,7 @@
 							AILogWithSignature(@"Could not create document for %@ [%@]",logPath,[NSURL fileURLWithPath:logPath]);
 							if (document) CFRelease(document);
 							OSAtomicIncrement64Barrier((int64_t *)&(bself->logsIndexed));
+							OSAtomicDecrement64Barrier((int64_t *)&_remainingLogs);
 							OSAtomicIncrement32Barrier((int32_t *)&unsavedChanges);
 							dispatch_semaphore_signal(jobSemaphore);
 							dispatch_semaphore_signal(logLoadingPrefetchSemaphore);
@@ -1568,6 +1577,7 @@
 			if (unsavedChanges) {
 				[bself _saveDirtyLogSet];
 			}
+			dispatch_group_enter(closingIndexGroup);
 			dispatch_group_leave(logIndexingGroup);
 			dispatch_group_notify(logIndexingGroup, searchIndexQueue, ^{
 				dispatch_async(dispatch_get_main_queue(), ^{
@@ -1577,10 +1587,14 @@
 				AILogWithSignature(@"After cleaning dirty logs, the search index has a max ID of %i and a count of %i",
 								   SKIndexGetMaximumDocumentID(searchIndex),
 								   SKIndexGetDocumentCount(searchIndex));
+				CFRelease(searchIndex);
 				[bself _didCleanDirtyLogs];
 				[localLogSet release];
 			});
+			dispatch_group_leave(closingIndexGroup);
 		}));
+	} else {
+		CFRelease(searchIndex);
 	}
 }
 
@@ -1654,7 +1668,7 @@
 			[bself _flushIndex:bself->logIndex];
 			if (bself.canCloseIndex) {
 				SKIndexClose(bself->logIndex);
-                AILogWithSignature(@"**** Finished closing index %p", bself->logIndex);
+                AILogWithSignature(@"**** %@ Released its index %p", bself, bself->logIndex);
 				bself->logIndex = nil;
 			}
 		}
@@ -1671,7 +1685,7 @@
 		SKIndexFlush(inIndex);
 		SKIndexCompact(inIndex);
 		CFRelease(inIndex);
-		AILogWithSignature(@"**** Finished flushing index %p, and released it",inIndex);
+		AILogWithSignature(@"**** Finished flushing index %p",inIndex);
 		self.indexIsFlushing = NO;
 	}
 	
diff -r 05168b11a63b -r 6535d5c9664e Source/GBQuestionHandlerPlugin.m
--- a/Source/GBQuestionHandlerPlugin.m	Sat Jun 09 18:13:30 2012 -0400
+++ b/Source/GBQuestionHandlerPlugin.m	Wed Jun 20 23:31:00 2012 +0200
@@ -105,7 +105,8 @@
 		ret = NO;
 	else
 	{
-		[currentAlert release];
+		// Note: Explicitly not released here: ESTextAndButtonsWindowController will autorelease itself in -windowWillClose:
+		[currentAlert close];
 		currentAlert = nil;
 	}
 	return ret;




More information about the commits mailing list