1.1 --- a/Plugins/Displays/Bezel/GrowlBezelPrefs.m Sat Aug 01 20:37:33 2009 -0400
1.2 +++ b/Plugins/Displays/Bezel/GrowlBezelPrefs.m Sat Aug 01 20:43:39 2009 -0400
1.3 @@ -29,13 +29,16 @@
1.4 NSData *data = nil;
1.5 NSColor *color;
1.6 READ_GROWL_PREF_VALUE(key, GrowlBezelPrefDomain, NSData *, &data);
1.7 + if(data)
1.8 + CFMakeCollectable(data);
1.9 if (data && [data isKindOfClass:[NSData class]]) {
1.10 - color = [NSUnarchiver unarchiveObjectWithData:data];
1.11 + color = [NSUnarchiver unarchiveObjectWithData:data];
1.12 } else {
1.13 color = defaultColor;
1.14 }
1.15 [data release];
1.16 -
1.17 + data = nil;
1.18 +
1.19 return color;
1.20 }
1.21
2.1 --- a/Plugins/Displays/Bezel/GrowlBezelWindowView.m Sat Aug 01 20:37:33 2009 -0400
2.2 +++ b/Plugins/Displays/Bezel/GrowlBezelWindowView.m Sat Aug 01 20:43:39 2009 -0400
2.3 @@ -261,22 +261,27 @@
2.4 NSData *data = nil;
2.5
2.6 READ_GROWL_PREF_VALUE(key, GrowlBezelPrefDomain, NSData *, &data);
2.7 - if (data && [data isKindOfClass:NSDataClass])
2.8 - backgroundColor = [NSUnarchiver unarchiveObjectWithData:data];
2.9 - else
2.10 + if (data && [data isKindOfClass:NSDataClass]) {
2.11 + backgroundColor = [NSUnarchiver unarchiveObjectWithData:data];
2.12 + } else {
2.13 backgroundColor = [NSColor blackColor];
2.14 + }
2.15 [backgroundColor retain];
2.16 [data release];
2.17 data = nil;
2.18
2.19 [textColor release];
2.20 READ_GROWL_PREF_VALUE(textKey, GrowlBezelPrefDomain, NSData *, &data);
2.21 - if (data && [data isKindOfClass:NSDataClass])
2.22 - textColor = [NSUnarchiver unarchiveObjectWithData:data];
2.23 - else
2.24 + if(data)
2.25 + CFMakeCollectable(data);
2.26 + if (data && [data isKindOfClass:NSDataClass]) {
2.27 + textColor = [NSUnarchiver unarchiveObjectWithData:data];
2.28 + } else {
2.29 textColor = [NSColor whiteColor];
2.30 + }
2.31 [textColor retain];
2.32 [data release];
2.33 + data = nil;
2.34 }
2.35
2.36 - (CGFloat) descriptionHeight:(NSString *)theText attributes:(NSDictionary *)attributes width:(CGFloat)width {
3.1 --- a/Plugins/Displays/Brushed/GrowlBrushedPrefsController.m Sat Aug 01 20:37:33 2009 -0400
3.2 +++ b/Plugins/Displays/Brushed/GrowlBrushedPrefsController.m Sat Aug 01 20:43:39 2009 -0400
3.3 @@ -21,13 +21,16 @@
3.4 NSData *data = nil;
3.5 NSColor *color;
3.6 READ_GROWL_PREF_VALUE(key, GrowlBrushedPrefDomain, NSData *, &data);
3.7 + if(data)
3.8 + CFMakeCollectable(data);
3.9 if (data && [data isKindOfClass:[NSData class]]) {
3.10 - color = [NSUnarchiver unarchiveObjectWithData:data];
3.11 + color = [NSUnarchiver unarchiveObjectWithData:data];
3.12 } else {
3.13 color = defaultColor;
3.14 }
3.15 [data release];
3.16 -
3.17 + data = nil;
3.18 +
3.19 return color;
3.20 }
3.21
4.1 --- a/Plugins/Displays/Brushed/GrowlBrushedWindowView.m Sat Aug 01 20:37:33 2009 -0400
4.2 +++ b/Plugins/Displays/Brushed/GrowlBrushedWindowView.m Sat Aug 01 20:43:39 2009 -0400
4.3 @@ -249,13 +249,16 @@
4.4
4.5 [textColor release];
4.6 READ_GROWL_PREF_VALUE(textKey, GrowlBrushedPrefDomain, NSData *, &data);
4.7 + if(data)
4.8 + CFMakeCollectable(data);
4.9 if (data && [data isKindOfClass:[NSData class]]) {
4.10 - textColor = [NSUnarchiver unarchiveObjectWithData:data];
4.11 + textColor = [NSUnarchiver unarchiveObjectWithData:data];
4.12 } else {
4.13 - textColor = [NSColor colorWithCalibratedWhite:0.1 alpha:1.0];
4.14 + textColor = [NSColor colorWithCalibratedWhite:0.1f alpha:1.0f];
4.15 }
4.16 [textColor retain];
4.17 [data release];
4.18 + data = nil;
4.19 }
4.20
4.21 - (void) sizeToFit {
5.1 --- a/Plugins/Displays/Bubbles/GrowlBubblesPrefsController.m Sat Aug 01 20:37:33 2009 -0400
5.2 +++ b/Plugins/Displays/Bubbles/GrowlBubblesPrefsController.m Sat Aug 01 20:43:39 2009 -0400
5.3 @@ -19,13 +19,16 @@
5.4 NSData *data = nil;
5.5 NSColor *color;
5.6 READ_GROWL_PREF_VALUE(key, GrowlBubblesPrefDomain, NSData *, &data);
5.7 + if(data)
5.8 + CFMakeCollectable(data);
5.9 if (data && [data isKindOfClass:[NSData class]]) {
5.10 - color = [NSUnarchiver unarchiveObjectWithData:data];
5.11 + color = [NSUnarchiver unarchiveObjectWithData:data];
5.12 } else {
5.13 color = defaultColor;
5.14 }
5.15 [colorWell setColor:color];
5.16 [data release];
5.17 + data = nil;
5.18 }
5.19
5.20 - (void) mainViewDidLoad {
6.1 --- a/Plugins/Displays/Bubbles/GrowlBubblesWindowView.m Sat Aug 01 20:37:33 2009 -0400
6.2 +++ b/Plugins/Displays/Bubbles/GrowlBubblesWindowView.m Sat Aug 01 20:43:39 2009 -0400
6.3 @@ -227,12 +227,14 @@
6.4 CGFloat backgroundAlpha = 95.0;
6.5 READ_GROWL_PREF_FLOAT(GrowlBubblesOpacity, GrowlBubblesPrefDomain, &backgroundAlpha);
6.6 backgroundAlpha *= 0.01;
6.7 -
6.8 +
6.9 Class NSDataClass = [NSData class];
6.10 READ_GROWL_PREF_VALUE(key, GrowlBubblesPrefDomain, NSData *, &data);
6.11 + if(data)
6.12 + CFMakeCollectable(data);
6.13 if (data && [data isKindOfClass:NSDataClass]) {
6.14 - bgColor = [NSUnarchiver unarchiveObjectWithData:data];
6.15 - bgColor = [bgColor colorWithAlphaComponent:backgroundAlpha];
6.16 + bgColor = [NSUnarchiver unarchiveObjectWithData:data];
6.17 + bgColor = [bgColor colorWithAlphaComponent:backgroundAlpha];
6.18 } else {
6.19 bgColor = [NSColor colorWithCalibratedRed:0.69412
6.20 green:0.83147
6.21 @@ -244,6 +246,8 @@
6.22
6.23 data = nil;
6.24 READ_GROWL_PREF_VALUE(textKey, GrowlBubblesPrefDomain, NSData *, &data);
6.25 + if(data)
6.26 + CFMakeCollectable(data);
6.27 if (data && [data isKindOfClass:NSDataClass]) {
6.28 textColor = [NSUnarchiver unarchiveObjectWithData:data];
6.29 } else {
6.30 @@ -254,6 +258,8 @@
6.31
6.32 data = nil;
6.33 READ_GROWL_PREF_VALUE(topKey, GrowlBubblesPrefDomain, NSData *, &data);
6.34 + if(data)
6.35 + CFMakeCollectable(data);
6.36 if (data && [data isKindOfClass:NSDataClass]) {
6.37 lightColor = [NSUnarchiver unarchiveObjectWithData:data];
6.38 lightColor = [lightColor colorWithAlphaComponent:backgroundAlpha];
7.1 --- a/Plugins/Displays/MailMe/GrowlMailMeDisplay.m Sat Aug 01 20:37:33 2009 -0400
7.2 +++ b/Plugins/Displays/MailMe/GrowlMailMeDisplay.m Sat Aug 01 20:43:39 2009 -0400
7.3 @@ -40,38 +40,42 @@
7.4 READ_GROWL_PREF_VALUE(destAddressKey, @"com.Growl.MailMe", NSString *, &destAddress);
7.5 NSDictionary *noteDict = [notification dictionaryRepresentation];
7.6
7.7 - if (destAddress && [destAddress length]) {
7.8 - NSString *title = [noteDict objectForKey:GROWL_NOTIFICATION_TITLE];
7.9 - NSString *desc = [noteDict objectForKey:GROWL_NOTIFICATION_DESCRIPTION];
7.10 - //hopefully something can be worked out to use the imageData.
7.11 - //documentation, Apple, documentation!
7.12 - // NSData *imageData = [noteDict objectForKey:GROWL_NOTIFICATION_ICON];
7.13 -
7.14 + if (destAddress) {
7.15 + CFMakeCollectable(destAddress);
7.16 + if([destAddress length]) {
7.17 + NSString *title = [noteDict objectForKey:GROWL_NOTIFICATION_TITLE];
7.18 + NSString *desc = [noteDict objectForKey:GROWL_NOTIFICATION_DESCRIPTION];
7.19 + //hopefully something can be worked out to use the imageData.
7.20 + //documentation, Apple, documentation!
7.21 + // NSData *imageData = [noteDict objectForKey:GROWL_NOTIFICATION_ICON];
7.22 +
7.23 #ifdef __LP64__
7.24 - // On 64-bit, the Message framework is not available. Instead, use the Scripting Bridge.
7.25 - MailApplication *Mail = [SBApplication applicationWithBundleIdentifier:@"com.apple.Mail"];
7.26 - MailOutgoingMessage *message = [[[[Mail classForScriptingClass:@"outgoing message"] alloc] initWithProperties:[NSDictionary dictionaryWithObjectsAndKeys:title, @"subject", [NSString stringWithFormat:plainTextMessageFormat, desc], @"content", nil]] autorelease];
7.27 - MailToRecipient *recipient = [[[[Mail classForScriptingClass:@"to recipient"] alloc] initWithProperties:[NSDictionary dictionaryWithObjectsAndKeys:destAddress, @"address", nil]] autorelease];
7.28 - BOOL success;
7.29 -
7.30 - [[Mail outgoingMessages] addObject:message];
7.31 - [message.toRecipients addObject:recipient]; // don't ask me, I'm only following the sample code's example
7.32 - success = [message send];
7.33 + // On 64-bit, the Message framework is not available. Instead, use the Scripting Bridge.
7.34 + MailApplication *Mail = [SBApplication applicationWithBundleIdentifier:@"com.apple.Mail"];
7.35 + MailOutgoingMessage *message = [[[[Mail classForScriptingClass:@"outgoing message"] alloc] initWithProperties:[NSDictionary dictionaryWithObjectsAndKeys:title, @"subject", [NSString stringWithFormat:plainTextMessageFormat, desc], @"content", nil]] autorelease];
7.36 + MailToRecipient *recipient = [[[[Mail classForScriptingClass:@"to recipient"] alloc] initWithProperties:[NSDictionary dictionaryWithObjectsAndKeys:destAddress, @"address", nil]] autorelease];
7.37 + BOOL success;
7.38 +
7.39 + [[Mail outgoingMessages] addObject:message];
7.40 + [message.toRecipients addObject:recipient]; // don't ask me, I'm only following the sample code's example
7.41 + success = [message send];
7.42 #else
7.43 - BOOL success = [NSMailDelivery deliverMessage:[NSString stringWithFormat:plainTextMessageFormat, desc]
7.44 - subject:title
7.45 - to:destAddress];
7.46 + BOOL success = [NSMailDelivery deliverMessage:[NSString stringWithFormat:plainTextMessageFormat, desc]
7.47 + subject:title
7.48 + to:destAddress];
7.49 #endif
7.50 -
7.51 - if (!success) {
7.52 - NSLog(@"(MailMe) WARNING: Could not send email message \"%@\" to address %@", title, destAddress);
7.53 - NSLog(@"(MailMe) description of notification:\n%@", desc);
7.54 - } else
7.55 - NSLog(@"(MailMe) Successfully sent message \"%@\" to address %@", title, destAddress);
7.56 +
7.57 + if (!success) {
7.58 + NSLog(@"(MailMe) WARNING: Could not send email message \"%@\" to address %@", title, destAddress);
7.59 + NSLog(@"(MailMe) description of notification:\n%@", desc);
7.60 + } else
7.61 + NSLog(@"(MailMe) Successfully sent message \"%@\" to address %@", title, destAddress);
7.62 + } else {
7.63 + NSLog(@"(MailMe) WARNING: No destination address set");
7.64 + }
7.65 } else {
7.66 NSLog(@"(MailMe) WARNING: No destination address set");
7.67 }
7.68 -
7.69 [destAddress release];
7.70
7.71 id clickContext = [noteDict objectForKey:GROWL_NOTIFICATION_CLICK_CONTEXT];
8.1 --- a/Plugins/Displays/MailMe/GrowlMailMePrefs.m Sat Aug 01 20:37:33 2009 -0400
8.2 +++ b/Plugins/Displays/MailMe/GrowlMailMePrefs.m Sat Aug 01 20:43:39 2009 -0400
8.3 @@ -25,6 +25,9 @@
8.4 - (NSString *) getDestAddress {
8.5 NSString *value = nil;
8.6 READ_GROWL_PREF_VALUE(destAddressKey, @"com.Growl.MailMe", NSString *, &value);
8.7 + if(value) {
8.8 + CFMakeCollectable(value);
8.9 + }
8.10 return [value autorelease];
8.11 }
8.12
9.1 --- a/Plugins/Displays/MusicVideo/GrowlMusicVideoPrefs.m Sat Aug 01 20:37:33 2009 -0400
9.2 +++ b/Plugins/Displays/MusicVideo/GrowlMusicVideoPrefs.m Sat Aug 01 20:43:39 2009 -0400
9.3 @@ -29,6 +29,9 @@
9.4 NSData *data = nil;
9.5 NSColor *color;
9.6 READ_GROWL_PREF_VALUE(key, GrowlMusicVideoPrefDomain, NSData *, &data);
9.7 + if(data)
9.8 + CFMakeCollectable(data);
9.9 +
9.10 if (data && [data isKindOfClass:[NSData class]]) {
9.11 color = [NSUnarchiver unarchiveObjectWithData:data];
9.12 } else {
10.1 --- a/Plugins/Displays/MusicVideo/GrowlMusicVideoWindowView.m Sat Aug 01 20:37:33 2009 -0400
10.2 +++ b/Plugins/Displays/MusicVideo/GrowlMusicVideoWindowView.m Sat Aug 01 20:43:39 2009 -0400
10.3 @@ -199,6 +199,8 @@
10.4 NSData *data = nil;
10.5
10.6 READ_GROWL_PREF_VALUE(key, GrowlMusicVideoPrefDomain, NSData *, &data);
10.7 + if(data)
10.8 + CFMakeCollectable(data);
10.9 if (data && [data isKindOfClass:NSDataClass])
10.10 backgroundColor = [NSUnarchiver unarchiveObjectWithData:data];
10.11 else
10.12 @@ -209,6 +211,8 @@
10.13
10.14 [textColor release];
10.15 READ_GROWL_PREF_VALUE(textKey, GrowlMusicVideoPrefDomain, NSData *, &data);
10.16 + if(data)
10.17 + CFMakeCollectable(data);
10.18 if (data && [data isKindOfClass:NSDataClass])
10.19 textColor = [NSUnarchiver unarchiveObjectWithData:data];
10.20 else
11.1 --- a/Plugins/Displays/Nano/GrowlNanoPrefs.m Sat Aug 01 20:37:33 2009 -0400
11.2 +++ b/Plugins/Displays/Nano/GrowlNanoPrefs.m Sat Aug 01 20:43:39 2009 -0400
11.3 @@ -30,6 +30,8 @@
11.4 NSData *data = nil;
11.5 NSColor *color;
11.6 READ_GROWL_PREF_VALUE(key, GrowlNanoPrefDomain, NSData *, &data);
11.7 + if(data)
11.8 + CFMakeCollectable(data);
11.9 if (data && [data isKindOfClass:[NSData class]]) {
11.10 color = [NSUnarchiver unarchiveObjectWithData:data];
11.11 } else {
12.1 --- a/Plugins/Displays/Nano/GrowlNanoWindowView.m Sat Aug 01 20:37:33 2009 -0400
12.2 +++ b/Plugins/Displays/Nano/GrowlNanoWindowView.m Sat Aug 01 20:43:39 2009 -0400
12.3 @@ -226,6 +226,8 @@
12.4 NSData *data = nil;
12.5
12.6 READ_GROWL_PREF_VALUE(key, GrowlNanoPrefDomain, NSData *, &data);
12.7 + if(data)
12.8 + CFMakeCollectable(data);
12.9 if (data && [data isKindOfClass:NSDataClass])
12.10 backgroundColor = [NSUnarchiver unarchiveObjectWithData:data];
12.11 else
12.12 @@ -236,6 +238,8 @@
12.13
12.14 [textColor release];
12.15 READ_GROWL_PREF_VALUE(textKey, GrowlNanoPrefDomain, NSData *, &data);
12.16 + if(data)
12.17 + CFMakeCollectable(data);
12.18 if (data && [data isKindOfClass:NSDataClass])
12.19 textColor = [NSUnarchiver unarchiveObjectWithData:data];
12.20 else
13.1 --- a/Plugins/Displays/SMS/GrowlSMSDisplay.m Sat Aug 01 20:37:33 2009 -0400
13.2 +++ b/Plugins/Displays/SMS/GrowlSMSDisplay.m Sat Aug 01 20:43:39 2009 -0400
13.3 @@ -53,10 +53,16 @@
13.4 NSString *destinationNumberValue = nil;
13.5
13.6 READ_GROWL_PREF_VALUE(destinationNumberKey, GrowlSMSPrefDomain, NSString *, &destinationNumberValue);
13.7 + if(destinationNumberValue)
13.8 + CFMakeCollectable(destinationNumberValue);
13.9 [destinationNumberValue autorelease];
13.10 READ_GROWL_PREF_VALUE(accountAPIIDKey, GrowlSMSPrefDomain, NSString *, &apiIDValue);
13.11 + if(apiIDValue)
13.12 + CFMakeCollectable(apiIDValue);
13.13 [apiIDValue autorelease];
13.14 READ_GROWL_PREF_VALUE(accountNameKey, GrowlSMSPrefDomain, NSString *, &accountNameValue);
13.15 + if(accountNameValue)
13.16 + CFMakeCollectable(accountNameValue);
13.17 [accountNameValue autorelease];
13.18
13.19 if (!([destinationNumberValue length] && [apiIDValue length] && [accountNameValue length])) {
14.1 --- a/Plugins/Displays/SMS/GrowlSMSPrefs.m Sat Aug 01 20:37:33 2009 -0400
14.2 +++ b/Plugins/Displays/SMS/GrowlSMSPrefs.m Sat Aug 01 20:43:39 2009 -0400
14.3 @@ -36,6 +36,8 @@
14.4 - (NSString *) getAccountName {
14.5 NSString *value = nil;
14.6 READ_GROWL_PREF_VALUE(accountNameKey, GrowlSMSPrefDomain, NSString *, &value);
14.7 + if(value)
14.8 + CFMakeCollectable(value);
14.9 return [value autorelease];
14.10 }
14.11
14.12 @@ -50,6 +52,8 @@
14.13 - (NSString *) getAccountAPIID {
14.14 NSString *value = nil;
14.15 READ_GROWL_PREF_VALUE(accountAPIIDKey, GrowlSMSPrefDomain, NSString *, &value);
14.16 + if(value)
14.17 + CFMakeCollectable(value);
14.18 return [value autorelease];
14.19 }
14.20
14.21 @@ -64,6 +68,8 @@
14.22 - (NSString *) getDestinationNumber {
14.23 NSString *value = nil;
14.24 READ_GROWL_PREF_VALUE(destinationNumberKey, GrowlSMSPrefDomain, NSString *, &value);
14.25 + if(value)
14.26 + CFMakeCollectable(value);
14.27 return [value autorelease];
14.28 }
14.29
14.30 @@ -87,6 +93,8 @@
14.31 NSString *passwordString;
14.32 if (status == noErr) {
14.33 passwordString = (NSString *)CFStringCreateWithBytes(kCFAllocatorDefault, password, passwordLength, kCFStringEncodingUTF8, false);
14.34 + if(passwordString)
14.35 + CFMakeCollectable(passwordString);
14.36 [passwordString autorelease];
14.37 SecKeychainItemFreeContent(NULL, password);
14.38 } else {
15.1 --- a/Plugins/Displays/Smoke/GrowlSmokePrefsController.m Sat Aug 01 20:37:33 2009 -0400
15.2 +++ b/Plugins/Displays/Smoke/GrowlSmokePrefsController.m Sat Aug 01 20:43:39 2009 -0400
15.3 @@ -20,13 +20,16 @@
15.4 NSData *data = nil;
15.5 NSColor *color;
15.6 READ_GROWL_PREF_VALUE(key, GrowlSmokePrefDomain, NSData *, &data);
15.7 + if(data)
15.8 + CFMakeCollectable(data);
15.9 if (data && [data isKindOfClass:[NSData class]]) {
15.10 - color = [NSUnarchiver unarchiveObjectWithData:data];
15.11 + color = [NSUnarchiver unarchiveObjectWithData:data];
15.12 } else {
15.13 color = defaultColor;
15.14 }
15.15 [colorWell setColor:color];
15.16 [data release];
15.17 + data = nil;
15.18 }
15.19
15.20 - (void) mainViewDidLoad {
16.1 --- a/Plugins/Displays/Smoke/GrowlSmokeWindowView.m Sat Aug 01 20:37:33 2009 -0400
16.2 +++ b/Plugins/Displays/Smoke/GrowlSmokeWindowView.m Sat Aug 01 20:43:39 2009 -0400
16.3 @@ -290,9 +290,11 @@
16.4 NSData *data = nil;
16.5
16.6 READ_GROWL_PREF_VALUE(key, GrowlSmokePrefDomain, NSData *, &data);
16.7 + if(data)
16.8 + CFMakeCollectable(data);
16.9 if (data && [data isKindOfClass:NSDataClass]) {
16.10 - bgColor = [NSUnarchiver unarchiveObjectWithData:data];
16.11 - bgColor = [bgColor colorWithAlphaComponent:backgroundAlpha];
16.12 + bgColor = [NSUnarchiver unarchiveObjectWithData:data];
16.13 + bgColor = [bgColor colorWithAlphaComponent:backgroundAlpha];
16.14 } else {
16.15 bgColor = [NSColor colorWithCalibratedWhite:0.1 alpha:backgroundAlpha];
16.16 }
16.17 @@ -302,13 +304,17 @@
16.18
16.19 [textColor release];
16.20 READ_GROWL_PREF_VALUE(textKey, GrowlSmokePrefDomain, NSData *, &data);
16.21 - if (data && [data isKindOfClass:NSDataClass])
16.22 - textColor = [NSUnarchiver unarchiveObjectWithData:data];
16.23 - else
16.24 + if(data)
16.25 + CFMakeCollectable(data);
16.26 + if (data && [data isKindOfClass:NSDataClass]) {
16.27 + textColor = [NSUnarchiver unarchiveObjectWithData:data];
16.28 + } else {
16.29 textColor = [NSColor whiteColor];
16.30 + }
16.31 [textColor retain];
16.32 [data release];
16.33 -
16.34 + data = nil;
16.35 +
16.36 [textShadow setShadowColor:[bgColor blendedColorWithFraction:0.5 ofColor:[NSColor blackColor]]];
16.37 }
16.38
17.1 --- a/Plugins/Displays/Speech/GrowlSpeechDisplay.m Sat Aug 01 20:37:33 2009 -0400
17.2 +++ b/Plugins/Displays/Speech/GrowlSpeechDisplay.m Sat Aug 01 20:43:39 2009 -0400
17.3 @@ -30,11 +30,13 @@
17.4 - (void) displayNotification:(GrowlApplicationNotification *)notification {
17.5 NSString *voice = nil;
17.6 READ_GROWL_PREF_VALUE(GrowlSpeechVoicePref, GrowlSpeechPrefDomain, NSString *, &voice);
17.7 - if (voice)
17.8 + if (voice) {
17.9 + CFMakeCollectable(voice);
17.10 [voice autorelease];
17.11 - else
17.12 + } else {
17.13 voice = [NSSpeechSynthesizer defaultVoice];
17.14 -
17.15 + }
17.16 +
17.17 NSString *desc = [notification notificationDescription];
17.18
17.19 NSSpeechSynthesizer *syn = [[NSSpeechSynthesizer alloc] initWithVoice:voice];
18.1 --- a/Plugins/Displays/Speech/GrowlSpeechPrefs.m Sat Aug 01 20:37:33 2009 -0400
18.2 +++ b/Plugins/Displays/Speech/GrowlSpeechPrefs.m Sat Aug 01 20:43:39 2009 -0400
18.3 @@ -30,6 +30,7 @@
18.4 READ_GROWL_PREF_VALUE(GrowlSpeechVoicePref, GrowlSpeechPrefDomain, NSString *, &voice);
18.5 NSUInteger row = NSNotFound;
18.6 if (voice) {
18.7 + CFMakeCollectable(voice);
18.8 row = [availableVoices indexOfObject:voice];
18.9 [voice release];
18.10 }
19.1 --- a/Plugins/Displays/WebKit/GrowlWebKitPluginHandler.m Sat Aug 01 20:37:33 2009 -0400
19.2 +++ b/Plugins/Displays/WebKit/GrowlWebKitPluginHandler.m Sat Aug 01 20:43:39 2009 -0400
19.3 @@ -23,6 +23,7 @@
19.4 NSBundle *pluginBundle = [[NSBundle alloc] initWithPath:path];
19.5 if (!pluginBundle) {
19.6 NSLog(@"%@ Failed to load: %@",NSStringFromClass([self class]),path);
19.7 + [pluginBundle release];
19.8 return NO;
19.9 }
19.10
19.11 @@ -31,6 +32,7 @@
19.12 NSLog(@"%@ Failed to load: %@ - the bundle did not contain a valid WebKit plugin",
19.13 NSStringFromClass([self class]),
19.14 path);
19.15 + [pluginBundle release];
19.16 return NO;
19.17 }
19.18