summaryrefslogtreecommitdiff
path: root/UICaboodle
diff options
context:
space:
mode:
authorJay Freeman (saurik) <saurik@saurik.com>2011-02-23 02:41:38 -0800
committerJay Freeman (saurik) <saurik@saurik.com>2011-02-23 02:48:53 -0800
commit46d3a5cfc2959b65fef514faa666d735b91afbc6 (patch)
treea9e7db4388803dd2814cd9398977bbe423706580 /UICaboodle
parent3fb1a73c977a3163429cde749b51590186d0ed2f (diff)
Simplify memory management of custom buttons.
Diffstat (limited to 'UICaboodle')
-rw-r--r--UICaboodle/BrowserView.h8
-rw-r--r--UICaboodle/BrowserView.mm58
2 files changed, 14 insertions, 52 deletions
diff --git a/UICaboodle/BrowserView.h b/UICaboodle/BrowserView.h
index 51cb345..32ef3b4 100644
--- a/UICaboodle/BrowserView.h
+++ b/UICaboodle/BrowserView.h
@@ -10,6 +10,8 @@
#import <JavaScriptCore/JavaScriptCore.h>
+#include "substrate.h"
+
@class NSMutableArray;
@class NSString;
@class NSURL;
@@ -77,10 +79,10 @@
NSMutableSet *loading_;
// XXX: NSString * or UIImage *
- id custom_;
- NSString *style_;
+ _H<NSObject> custom_;
+ _H<NSString> style_;
- WebScriptObject *function_;
+ _H<WebScriptObject> function_;
WebScriptObject *closer_;
float width_;
diff --git a/UICaboodle/BrowserView.mm b/UICaboodle/BrowserView.mm
index 43f2905..b5a7b90 100644
--- a/UICaboodle/BrowserView.mm
+++ b/UICaboodle/BrowserView.mm
@@ -483,13 +483,6 @@ static void $UIWebViewWebViewDelegate$webViewClose$(UIWebViewWebViewDelegate *se
if (request_ != nil)
[request_ release];
- if (custom_ != nil)
- [custom_ release];
- if (style_ != nil)
- [style_ release];
-
- if (function_ != nil)
- [function_ release];
if (closer_ != nil)
[closer_ release];
@@ -579,51 +572,18 @@ static void $UIWebViewWebViewDelegate$webViewClose$(UIWebViewWebViewDelegate *se
}
- (void) setButtonImage:(NSString *)button withStyle:(NSString *)style toFunction:(id)function {
- if (custom_ != nil)
- [custom_ autorelease];
- if (button == nil)
- custom_ = nil;
- else
- custom_ = [[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:button]]] retain];
-
- if (style_ != nil)
- [style_ autorelease];
- if (style == nil)
- style_ = nil;
- else
- style_ = [style retain];
-
- if (function_ != nil)
- [function_ autorelease];
- if (function == nil)
- function_ = nil;
- else
- function_ = [function retain];
+ custom_ = button;
+ style_ = style;
+ function_ = function;
[self performSelectorOnMainThread:@selector(applyRightButton) withObject:nil waitUntilDone:NO];
}
- (void) setButtonTitle:(NSString *)button withStyle:(NSString *)style toFunction:(id)function {
- if (custom_ != nil)
- [custom_ autorelease];
- if (button == nil)
- custom_ = nil;
- else
- custom_ = [button retain];
-
- if (style_ != nil)
- [style_ autorelease];
- if (style == nil)
- style_ = nil;
- else
- style_ = [style retain];
+ custom_ = button;
+ style_ = style;
+ function_ = function;
- if (function_ != nil)
- [function_ autorelease];
- if (function == nil)
- function_ = nil;
- else
- function_ = [function retain];
[self performSelectorOnMainThread:@selector(applyRightButton) withObject:nil waitUntilDone:NO];
}
@@ -840,9 +800,9 @@ static void $UIWebViewWebViewDelegate$webViewClose$(UIWebViewWebViewDelegate *se
if ([frame parentFrame] == nil) {
CYRelease(title_);
- CYRelease(custom_);
- CYRelease(style_);
- CYRelease(function_);
+ custom_ = nil;
+ style_ = nil;
+ function_ = nil;
CYRelease(closer_);
// XXX: do we still need to do this?