Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

[DEV] Hand-merge with @simX since git refuses.

  • Loading branch information...
commit b4eb42b293436feee328a7672b8bb813315a293b 1 parent 62b300b
@rentzsch 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
15 Plugin/CTFURLConnection.m
@@ -43,7 +43,8 @@ - (NSHTTPURLResponse *)getURLResponseHeaders:(NSURL *)URL
[NSThread detachNewThreadSelector:@selector(startRequest:) toTarget:self withObject:request];
[request release];
- [theLock lockWhenCondition:1 beforeDate:[NSDate dateWithTimeIntervalSinceNow:10]];
+ [theLock lockWhenCondition:1];
+ [theLock unlock];
if (error) (*error) = errorToReturn;
return [responseToReturn autorelease];
@@ -67,12 +68,20 @@ - (void)startRequest:(NSURLRequest *)request;
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
delegate:self
startImmediately:YES];
- [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:10]];
+
+ 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;
View
39 Plugin/Plugin.m
@@ -401,26 +401,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.