Bug 224901 oom crash in MakeContentObject for form controls

r=dbaron sr=dbaron


git-svn-id: svn://10.0.0.236/trunk@148932 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
timeless%mozdev.org
2003-11-06 23:10:45 +00:00
parent e93919c453
commit b7e5034597

View File

@@ -862,7 +862,7 @@ static void
SetForm(nsIHTMLContent* aContent, nsIDOMHTMLFormElement* aForm)
{
nsCOMPtr<nsIFormControl> formControl(do_QueryInterface(aContent));
NS_ASSERTION(formControl, "nsIDOMHTMLFormElement doesnt implement nsIFormControl?");
NS_ASSERTION(formControl, "nsIDOMHTMLFormElement doesn't implement nsIFormControl?");
formControl->SetForm(aForm);
}
@@ -1090,7 +1090,7 @@ MakeContentObject(nsHTMLTag aNodeType, nsINodeInfo *aNodeInfo,
// table
if (aNodeType == eHTMLTag_input) {
rv = NS_NewHTMLInputElement(aResult, aNodeInfo, aFromParser);
if (!aInsideNoXXXTag) {
if (NS_SUCCEEDED(rv) && !aInsideNoXXXTag) {
SetForm(*aResult, aForm);
}
return rv;
@@ -1098,7 +1098,7 @@ MakeContentObject(nsHTMLTag aNodeType, nsINodeInfo *aNodeInfo,
if (aNodeType == eHTMLTag_select) {
rv = NS_NewHTMLSelectElement(aResult, aNodeInfo, aFromParser);
if (!aInsideNoXXXTag) {
if (NS_SUCCEEDED(rv) && !aInsideNoXXXTag) {
SetForm(*aResult, aForm);
}
return rv;
@@ -1106,15 +1106,18 @@ MakeContentObject(nsHTMLTag aNodeType, nsINodeInfo *aNodeInfo,
rv = sContentCreatorCallbacks[aNodeType](aResult, aNodeInfo);
switch (aNodeType) {
case eHTMLTag_button:
case eHTMLTag_fieldset:
case eHTMLTag_label:
case eHTMLTag_legend:
case eHTMLTag_object:
case eHTMLTag_textarea:
if (!aInsideNoXXXTag) {
if (NS_SUCCEEDED(rv) && !aInsideNoXXXTag) {
switch (aNodeType) {
case eHTMLTag_button:
case eHTMLTag_fieldset:
case eHTMLTag_label:
case eHTMLTag_legend:
case eHTMLTag_object:
case eHTMLTag_textarea:
SetForm(*aResult, aForm);
break;
default:
break;
}
}