NS_NEWXPCOM(data, refreshData); if (nsnull == data) { rv = NS_ERROR_OUT_OF_MEMORY; goto done; }   NS_ADDREF(data);  data->mShell = this; NS_ADDREF(data->mShell);  data->mUrlSpec  = aURI; data->mDelay    = millis; data->mRepeat   = repeat;   if (NS_OK == NS_NewTimer(&timer)) {  NS_LOCK_INSTANCE(); mRefreshments.AppendElement(timer); timer->Init(data, millis); NS_UNLOCK_INSTANCE(); }  NS_RELEASE(data);
nsWebShell::RefreshURL(nsIURI* aURI, PRInt32 millis, PRBool repeat)#elsensWebShell::RefreshURI(nsIURI* aURI, PRInt32 millis, PRBool repeat)#endif // NECKO{    nsresult rv = NS_OK;  if (nsnull == aURI) {    NS_PRECONDITION((aURI != nsnull), "Null pointer");    rv = NS_ERROR_NULL_POINTER;    goto done;  }#ifdef NECKO  char* spec;#else  const char* spec;#endif  aURI->GetSpec(&spec);  rv = RefreshURL(spec, millis, repeat);#ifdef NECKO  nsCRT::free(spec);#endifdone:  return rv;}