NS_RELEASE(res); } NS_RELEASE(domElement); }
NS_RELEASE(res); } NS_RELEASE(domElement); } }
RDFTreeBuilderImpl::Notify(nsITimer *timer){	if (!mTimer)	return;	if (mRoot)	{		nsresult		rv;#ifdef	DEBUG		nsIDOMXULElement	*domElement;		if (NS_SUCCEEDED(rv = mRoot->QueryInterface(kIDomXulElementIID, (void **)&domElement)))		{			nsIRDFResource		*res;			if (NS_SUCCEEDED(rv = domElement->GetResource(&res)))			{				nsXPIDLCString	uri;				res->GetValue( getter_Copies(uri) );				const char	*url = uri;				printf("Timer fired for '%s'\n", url);				NS_RELEASE(res);			}			NS_RELEASE(domElement);		}#endif		nsIContent	*treeBody;		if (NS_SUCCEEDED(rv = nsRDFContentUtils::FindTreeBodyElement(mRoot, &treeBody)))		{			UpdateContainer(treeBody);			NS_RELEASE(treeBody);		}	}	mTimer->Cancel();	NS_RELEASE(mTimer);	mTimer = nsnull;	// reschedule timer (if document still around)	if (mDocument)	{		NS_VERIFY(NS_SUCCEEDED(NS_NewTimer(&mTimer)), "couldn't get timer");		if (mTimer)		{			mTimer->Init(this, /* PR_TRUE, */ BUILDER_NOTIFY_MINIMUM_TIMEOUT);		}	}}