if (urlSpec) {
if (NS_SUCCEEDED(rv) && urlSpec) {
void CSSStyleSheetImpl::List(FILE* out, PRInt32 aIndent) const{  PRInt32 index;  // Indent  for (index = aIndent; --index >= 0; ) fputs("  ", out);  if (! mInner) {    fputs("CSS Style Sheet - without inner data storage - ERROR\n", out);    return;  }  fputs("CSS Style Sheet: ", out);#ifdef NECKO  char* urlSpec = nsnull;  nsresult rv = mInner->mURL->GetSpec(&urlSpec);  if (urlSpec) {    fputs(urlSpec, out);    nsCRT::free(urlSpec);  }#else  PRUnichar* urlSpec = nsnull;  mInner->mURL->ToString(&urlSpec);  if (urlSpec) {    nsAutoString buffer(urlSpec);    delete [] urlSpec;    fputs(buffer, out);  }#endif  if (mMedia) {    fputs(" media: ", out);    index = 0;    PRUint32 count;    mMedia->Count(&count);    nsAutoString  buffer;    while (index < PRInt32(count)) {      nsIAtom* medium = (nsIAtom*)mMedia->ElementAt(index++);      medium->ToString(buffer);      fputs(buffer, out);      if (index < PRInt32(count)) {        fputs(", ", out);      }      NS_RELEASE(medium);    }  }  fputs("\n", out);  const CSSStyleSheetImpl*  child = mFirstChild;  while (nsnull != child) {    child->List(out, aIndent + 1);    child = child->mNext;  }  fputs("Rules in source order:\n", out);  ListRules(mInner->mOrderedRules, out, aIndent);  if (mInner->mMediumCascadeTable) {    ListEnumData  data(out, aIndent);    mInner->mMediumCascadeTable->Enumerate(ListCascade, &data);  }}