From c0809ee785393d3a0ebc6d706e5ccc64295180ff Mon Sep 17 00:00:00 2001 From: "doronr%us.ibm.com" Date: Thu, 21 Apr 2005 20:50:36 +0000 Subject: [PATCH] xforms bug 289595 - Can't assume there is a non-null mSchema per model. r=aaronr,smaug a=mkaply git-svn-id: svn://10.0.0.236/trunk@172569 18797224-902f-48f8-a5cc-f745e15eee43 --- .../xforms/nsXFormsModelElement.cpp | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/mozilla/extensions/xforms/nsXFormsModelElement.cpp b/mozilla/extensions/xforms/nsXFormsModelElement.cpp index 30fe817d27d..524e79b9189 100644 --- a/mozilla/extensions/xforms/nsXFormsModelElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsModelElement.cpp @@ -804,15 +804,20 @@ nsXFormsModelElement::GetTypeForControl(nsIXFormsControl *aControl, } nsAutoString schemaTypeName, schemaTypeNamespace; - nsresult rv = GetTypeAndNSFromNode(boundNode, schemaTypeName, + nsresult rv = GetTypeAndNSFromNode(boundNode, schemaTypeName, schemaTypeNamespace); NS_ENSURE_SUCCESS(rv, rv); nsXFormsSchemaValidator validator; + nsCOMPtr schemaColl = do_QueryInterface(mSchemas); - nsCOMPtr schema; - schemaColl->GetSchema(schemaTypeNamespace, getter_AddRefs(schema)); - validator.LoadSchema(schema); + if (schemaColl) { + nsCOMPtr schema; + schemaColl->GetSchema(schemaTypeNamespace, getter_AddRefs(schema)); + // if no schema found, then we will only handle built-in types. + if (schema) + validator.LoadSchema(schema); + } return validator.GetType(schemaTypeName, schemaTypeNamespace, aType); } @@ -937,9 +942,13 @@ nsXFormsModelElement::ValidateNode(nsIDOMNode *aInstanceNode, PRBool *aResult) nsXFormsSchemaValidator validator; nsCOMPtr schemaColl = do_QueryInterface(mSchemas); - nsCOMPtr schema; - schemaColl->GetSchema(schemaTypeNamespace, getter_AddRefs(schema)); - validator.LoadSchema(schema); + if (schemaColl) { + nsCOMPtr schema; + schemaColl->GetSchema(schemaTypeNamespace, getter_AddRefs(schema)); + // if no schema found, then we will only handle built-in types. + if (schema) + validator.LoadSchema(schema); + } nsAutoString value; nsXFormsUtils::GetNodeValue(aInstanceNode, value);