[Webkit-unassigned] [Bug 6152] New: When a windowScriptObject is released, it doesn't release the values it retained

bugzilla-daemon at opendarwin.org bugzilla-daemon at opendarwin.org
Mon Dec 19 17:43:16 PST 2005


http://bugzilla.opendarwin.org/show_bug.cgi?id=6152

           Summary: When a windowScriptObject is released, it doesn't
                    release the values it retained
           Product: WebKit
           Version: 412+
          Platform: Macintosh
        OS/Version: Mac OS X 10.4
            Status: NEW
          Severity: normal
          Priority: P2
         Component: JavaScript
        AssignedTo: webkit-unassigned at opendarwin.org
        ReportedBy: dwood at karelia.com


After you set some values (using setValue:forKey) on a "window script object" (Abbrev: WSO), the retain 
count of those values properly increments by one. But when that WSO is deallocated, it does not release 
the values it retained.

This is tricky to test, because the WSO does not seem to be dealloced at any specific time from what I 
can tell.  This may be a separate bug; I'll keep testing.

Anyhow, if you intercept webView: windowScriptObjectAvailable:  and, as a test, deallocate that WSO, 
you can see that the values are not released.

Here is the snippet of code from my modified MiniBrowser:


- (void)webView:(WebView *)sender windowScriptObjectAvailable:(WebScriptObject *)
aWindowScriptObject
{
	NSLog(@"BEFORE SETTING OF KEY: MyDocument retainCount = %d  WebScriptObject retainCount = 
%d", [self retainCount], [aWindowScriptObject retainCount]);
	[aWindowScriptObject setValue:self forKey:@"controller"];
	NSLog(@"AFTER SETTING OF KEY: MyDocument retainCount = %d ", [self retainCount]);

// ^^ Above, we see the retain count of 'self' increment.  Also, we see that the WSO's retain count is 1, 
so we can force deallocating it below.


	/* see what happens to the retain count of self */
	[aWindowScriptObject release];
	NSLog(@"AFTER RELEASE: MyDocument retainCount = %d .... should be back to 'before' value", 
[self retainCount]);
	

// ^^^^ Above, the retain count of self has *not* been decremented.  This is a nasty leak!

}

-- 
Configure bugmail: http://bugzilla.opendarwin.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list