Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed a few bugs

  • Loading branch information...
commit 3b7739e4244e6ac77300df2526e1f47850f16582 1 parent 97ec6c1
Chris Suter authored
View
2  ClickToFlash.xcodeproj/project.pbxproj
@@ -232,8 +232,10 @@
A494CC2B0F9F2446007D5EEB /* ctf.icns */,
D9566C2B0F37EA0800358646 /* deSIFR Resources */,
);
+ indentWidth = 4;
name = Plugin;
sourceTree = "<group>";
+ tabWidth = 4;
};
55EB70550E04A8A40016593D /* Frameworks */ = {
isa = PBXGroup;
View
26 Plugin/CTFURLConnection.m
@@ -36,7 +36,9 @@ - (NSHTTPURLResponse *)getURLResponseHeaders:(NSURL *)URL
[request release];
[theLock lockWhenCondition:1];
+ [theLock unlock];
if (error) (*error) = errorToReturn;
+
return [responseToReturn autorelease];
}
@@ -53,25 +55,29 @@ + (NSHTTPURLResponse *)getURLResponseHeaders:(NSURL *)URL
- (void)startRequest:(NSURLRequest *)request;
{
-
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- [request retain];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
delegate:self
startImmediately:YES];
- [[NSRunLoop currentRunLoop] run];
+
+ NSRunLoop *rl = [NSRunLoop currentRunLoop];
+
+ while ([rl runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]) {
+ if ([theLock tryLockWhenCondition:1]) {
+ [theLock unlock];
+ break;
+ }
+ }
+
[connection release];
- [request release];
[pool drain];
-
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;
{
-
- [theLock tryLock];
+ [theLock lock];
errorToReturn = error;
[theLock unlockWithCondition:1];
@@ -79,8 +85,7 @@ - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)err
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSHTTPURLResponse *)theResponse;
{
-
- [theLock tryLock];
+ [theLock lock];
// we cancel here, because otherwise NSURLConnection will continue to download
// data due to a bug; even though we made a HEAD request, it still downloads
@@ -93,8 +98,7 @@ - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSHTTPURLRe
- (void)connectionDidFinishLoading:(NSURLConnection *)connection;
{
-
- [theLock tryLock];
+ [theLock lock];
[theLock unlockWithCondition:1];
}
View
39 Plugin/Plugin.m
@@ -381,26 +381,35 @@ - (id) initWithArguments:(NSDictionary *)arguments
return self;
}
-- (void) dealloc
+- (void)webPlugInDestroy
{
- [self _removeTrackingAreaForCTF];
- [NSObject cancelPreviousPerformRequestsWithTarget:self];
+ [self _removeTrackingAreaForCTF];
+ [NSObject cancelPreviousPerformRequestsWithTarget:self];
[self _abortAlert]; // to be on the safe side
// notify that this ClickToFlash plugin is going away
- [[CTFMenubarMenuController sharedController] unregisterView: self];
-
- [self setContainer:nil];
- [self setHost:nil];
- [self setWebView:nil];
- [self setBaseURL:nil];
- [self setAttributes:nil];
-
- [_flashVars release];
- [_badgeText release];
-
- [[NSNotificationCenter defaultCenter] removeObserver: self];
+ [[CTFMenubarMenuController sharedController] unregisterView:self];
+
+ [self setContainer:nil];
+ [self setHost:nil];
+ [self setWebView:nil];
+ [self setBaseURL:nil];
+ [self setAttributes:nil];
+
+ [_flashVars release];
+ _flashVars = nil;
+ [_badgeText release];
+ _badgeText = nil;
+
+ [[NSNotificationCenter defaultCenter] removeObserver:self];
+}
+
+- (void) dealloc
+{
+ // Just in case...
+ [self webPlugInDestroy];
+
#if LOGGING_ENABLED
NSLog(@"ClickToFlash:\tdealloc");
#endif
Please sign in to comment.
Something went wrong with that request. Please try again.