nsServiceManager::GetService("@mozilla.org/xbl;1", NS_GET_IID(nsIXBLService), (nsISupports**) &gXBLService);
  mInsertionPointTable(nsnull){  NS_INIT_REFCNT();    mXBLDocInfoWeak = getter_AddRefs(NS_GetWeakReference(aInfo));    gRefCnt++;  //  printf("REF COUNT UP: %d %s\n", gRefCnt, (const char*)mID);  if (gRefCnt == 1) {    kPool.Init("XBL Attribute Entries", kBucketSizes, kNumBuckets, kInitialSize);    kInheritStyleAtom = NS_NewAtom("inheritstyle");    kHandlersAtom = NS_NewAtom("handlers");    kChildrenAtom = NS_NewAtom("children");    kContentAtom = NS_NewAtom("content");    kIncludesAtom = NS_NewAtom("includes");    kInheritsAtom = NS_NewAtom("inherits");    kHTMLAtom = NS_NewAtom("html");    kValueAtom = NS_NewAtom("value");        nsServiceManager::GetService("@mozilla.org/xbl;1",                                   NS_GET_IID(nsIXBLService),                                   (nsISupports**) &gXBLService);  }  // These all use atoms, so we have to do these ops last to ensure  // the atoms exist.  SetBindingElement(aElement);  PRBool allowScripts;  aInfo->GetScriptAccess(&allowScripts);  if (allowScripts) {    ConstructHandlers();  }  nsCOMPtr<nsIContent> content;  GetImmediateChild(kContentAtom, getter_AddRefs(content));  if (content) {    ConstructAttributeTable(content);    ConstructInsertionTable(content);  }}