adium/adium

Merged

2012-06-20, Thijs Alkemade
6535d5c9664e
Merged
--- 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.
--- 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
--- 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];
--- 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;
}
--- 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;