Bug 1288590: Use GetAttrInfoAt in nsXBLBinding.cpp draft
authorEmilio Cobos Álvarez <ecoal95@gmail.com>
Thu, 21 Jul 2016 19:32:38 -0700
changeset 391420 49511aabe2481d77b02d2af6d9126c992c73d9ca
parent 391419 b3e847bf4009e9684addbc87fb6f619339830701
child 391421 f437971509021bed6d4604a3a52410583b59cb05
push id23902
push userbmo:ealvarez@mozilla.com
push dateFri, 22 Jul 2016 18:21:53 +0000
bugs1288590
milestone50.0a1
Bug 1288590: Use GetAttrInfoAt in nsXBLBinding.cpp MozReview-Commit-ID: Bm29ogNHXwR
dom/xbl/nsXBLBinding.cpp
--- a/dom/xbl/nsXBLBinding.cpp
+++ b/dom/xbl/nsXBLBinding.cpp
@@ -401,28 +401,28 @@ nsXBLBinding::GenerateAnonymousContent()
     }
 
     mPrototypeBinding->SetInitialAttributes(mBoundElement, mContent);
   }
 
   // Always check the content element for potential attributes.
   // This shorthand hack always happens, even when we didn't
   // build anonymous content.
-  const nsAttrName* attrName;
-  for (uint32_t i = 0; (attrName = content->GetAttrNameAt(i)); ++i) {
-    int32_t namespaceID = attrName->NamespaceID();
+  nsAttrInfo attrInfo;
+  for (uint32_t i = 0; (attrInfo = content->GetAttrInfoAt(i)); ++i) {
+    int32_t namespaceID = attrInfo.mName->NamespaceID();
     // Hold a strong reference here so that the atom doesn't go away during
     // UnsetAttr.
-    nsCOMPtr<nsIAtom> name = attrName->LocalName();
+    nsCOMPtr<nsIAtom> name = attrInfo.mName->LocalName();
 
     if (name != nsGkAtoms::includes) {
       if (!nsContentUtils::HasNonEmptyAttr(mBoundElement, namespaceID, name)) {
         nsAutoString value2;
-        content->GetAttr(namespaceID, name, value2);
-        mBoundElement->SetAttr(namespaceID, name, attrName->GetPrefix(),
+        attrInfo.mValue->ToString(value2);
+        mBoundElement->SetAttr(namespaceID, name, attrInfo.mName->GetPrefix(),
                                value2, false);
       }
     }
 
     // Conserve space by wiping the attributes off the clone.
     if (mContent)
       mContent->UnsetAttr(namespaceID, name, false);
   }