diff --git a/content/xul/templates/src/nsXULContentBuilder.cpp b/content/xul/templates/src/nsXULContentBuilder.cpp index 48f84b706434..4c7630166152 100644 --- a/content/xul/templates/src/nsXULContentBuilder.cpp +++ b/content/xul/templates/src/nsXULContentBuilder.cpp @@ -1360,7 +1360,7 @@ nsXULContentBuilder::CreateTemplateContents(nsIContent* aElement, nsCOMPtr resource; nsCOMPtr element = aElement; - while (element) { + while (1) { nsXULContentUtils::GetElementRefResource(element, getter_AddRefs(resource)); if (resource) break; @@ -1369,11 +1369,16 @@ nsXULContentBuilder::CreateTemplateContents(nsIContent* aElement, element->GetParent(*getter_AddRefs(parent)); element = parent; + + NS_ASSERTION(element != nsnull, + "walked to the root of the content model without finding template root"); } - nsTemplateMatch* match; + nsTemplateMatch* match = nsnull; mContentSupportMap.Get(element, &match); + NS_ASSERTION(match != nsnull, "no match in the content support map"); + rv = BuildContentFromTemplate(aTemplateElement, aElement, aElement, PR_FALSE, resource, PR_FALSE, match, aContainer, aNewIndexInContainer);