nsITimer *timer=nsnull; refreshData *data;
nsWebShell::RefreshURL(const char* aURI, PRInt32 millis, PRBool repeat){  nsresult rv = NS_OK;  nsITimer *timer=nsnull;  refreshData *data;  if (nsnull == aURI) {    NS_PRECONDITION((aURI != nsnull), "Null pointer");    rv = NS_ERROR_NULL_POINTER;    goto done;  }  NS_NEWXPCOM(data, refreshData);  if (nsnull == data) {    rv = NS_ERROR_OUT_OF_MEMORY;    goto done;  }  // Set the reference count to one...  NS_ADDREF(data);  data->mShell = this;  NS_ADDREF(data->mShell);  data->mUrlSpec  = aURI;  data->mDelay    = millis;  data->mRepeat   = repeat;  /* Create the timer. */  if (NS_OK == NS_NewTimer(&timer)) {      /* Add the timer to our array. */      NS_LOCK_INSTANCE();      mRefreshments.AppendElement(timer);      timer->Init(data, millis);      NS_UNLOCK_INSTANCE();  }  NS_RELEASE(data);done:  return rv;}