adium 2340:a5d4f6cc2e54: Fix setting a status message from apple...
commits at adium.im
commits at adium.im
Tue May 26 17:33:33 UTC 2009
details: http://hg.adium.im/adium/rev/a5d4f6cc2e54
revision: 2340:a5d4f6cc2e54
author: Zachary West <zacw at adium.im>
date: Tue May 26 13:33:22 2009 -0400
Fix setting a status message from applescript. Fixes #12219.
Despite its name, this was *not* returning a mutableCopy for non-builtin statuses, so an extra -autorelease would cause it to die off, get popped, and error like crazy.
diffstat:
Frameworks/Adium Framework/Source/AIAccount.m | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diffs (42 lines):
diff -r e17bcab9a10f -r a5d4f6cc2e54 Frameworks/Adium Framework/Source/AIAccount.m
--- a/Frameworks/Adium Framework/Source/AIAccount.m Tue May 26 12:41:54 2009 -0400
+++ b/Frameworks/Adium Framework/Source/AIAccount.m Tue May 26 13:33:22 2009 -0400
@@ -1216,17 +1216,21 @@
}
/**
- * @brief Returns current status (or mutable copy if built in)
+ * @brief Returns a mutable status
*
* If the current status is built in, we create a temporary copy of the current status and set that.
+ *
+ * @return An AIStatus fit for being modified.
*/
-- (AIStatus *)mutableCopyOfCurrentStatusIfBuiltIn
+- (AIStatus *)modifyableCurrentStatus
{
AIStatus *currentStatus = self.statusState;
+
if ([currentStatus mutabilityType] != AITemporaryEditableStatusState) {
currentStatus = [[currentStatus mutableCopy] autorelease];
[currentStatus setMutabilityType:AITemporaryEditableStatusState];
}
+
return currentStatus;
}
@@ -1237,11 +1241,13 @@
*/
- (void)setScriptingStatusMessageWithAttributedString:(id)message
{
- AIStatus *currentStatus = [[self mutableCopyOfCurrentStatusIfBuiltIn] autorelease];
+ AIStatus *currentStatus = [self modifyableCurrentStatus];
+
if ([message isKindOfClass:[NSAttributedString class]])
[currentStatus setStatusMessage:(NSAttributedString *)message];
else
[currentStatus setStatusMessageString:message];
+
[adium.statusController setActiveStatusState:currentStatus forAccount:self];
}
More information about the commits
mailing list