tag = getter_AddRefs(NS_NewAtom("CSSStyleSheetInner"));
tag = getter_AddRefs(NS_NewAtom("CSSRuleProcessor"));
void CSSStyleSheetInner::SizeOf(nsISizeOfHandler *aSizeOfHandler, PRUint32 &aSize){  NS_ASSERTION(aSizeOfHandler != nsnull, "SizeOf handler cannot be null");  // first get the unique items collection  UNIQUE_STYLE_ITEMS(uniqueItems);  if(! uniqueItems->AddItem((void*)this)){    // this style sheet is lared accounted for    return;  }  PRUint32 localSize=0;  PRBool rulesCounted=PR_FALSE;  // create a tag for this instance  nsCOMPtr<nsIAtom> tag;  tag = getter_AddRefs(NS_NewAtom("CSSStyleSheetInner"));  // get the size of an empty instance and add to the sizeof handler  aSize = sizeof(CSSStyleSheetInner);  // add in the size of the mSheets array itself  mSheets.SizeOf(aSizeOfHandler,&localSize);  aSize += localSize;  // and the mOrderedRules array (if there is one)  if(mOrderedRules && uniqueItems->AddItem(mOrderedRules)){    rulesCounted=PR_TRUE;    // no SizeOf method so we just get the basic object size    aSize += sizeof(*mOrderedRules);  }  aSizeOfHandler->AddSize(tag,aSize);  // delegate to the contained containers  // mSheets : nsVoidArray  {    PRUint32 sheetCount, sheetCur;    sheetCount = mSheets.Count();    for(sheetCur=0; sheetCur < sheetCount; sheetCur++){      nsICSSStyleSheet* sheet = (nsICSSStyleSheet*)mSheets.ElementAt(sheetCur);      if(sheet){        sheet->SizeOf(aSizeOfHandler, localSize);      }    }  }  // mOrderedRules : nsISupportsArray*  if(mOrderedRules && rulesCounted){    PRUint32 ruleCount, ruleCur;    mOrderedRules->Count(&ruleCount);    for(ruleCur=0; ruleCur < ruleCount; ruleCur++){      nsICSSRule* rule = (nsICSSRule*)mOrderedRules->ElementAt(ruleCur);      if(rule){        rule->SizeOf(aSizeOfHandler, localSize);        NS_IF_RELEASE(rule);      }    }  }}