зеркало из https://github.com/mozilla/pjs.git
A bunch of minor fixes from Heikki's reviews. Passes my tests.
SOAP is not part of default build.
This commit is contained in:
Родитель
fc2707491d
Коммит
a85de4f437
|
@ -246,11 +246,11 @@ EncodeSimpleValue(nsISOAPEncoding * aEncoding,
|
|||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
nsCOMPtr < nsIDOMElement > element;
|
||||
rc = document->CreateElementNS(ns, aName, _retval);
|
||||
rc = document->CreateElementNS(ns, aName, getter_AddRefs(element));
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
nsCOMPtr < nsIDOMNode > ignore;
|
||||
rc = aDestination->AppendChild(*_retval, getter_AddRefs(ignore));
|
||||
rc = aDestination->AppendChild(element, getter_AddRefs(ignore));
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
if (aSchemaType) {
|
||||
|
@ -262,7 +262,7 @@ EncodeSimpleValue(nsISOAPEncoding * aEncoding,
|
|||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
nsAutoString type;
|
||||
rc = nsSOAPUtils::MakeNamespacePrefix(aEncoding, *_retval,
|
||||
rc = nsSOAPUtils::MakeNamespacePrefix(aEncoding, element,
|
||||
ns, type);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
|
@ -271,16 +271,22 @@ EncodeSimpleValue(nsISOAPEncoding * aEncoding,
|
|||
rc = aEncoding->GetExternalSchemaURI(nsSOAPUtils::kXSIURI, ns);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
rc = (*_retval)->
|
||||
rc = (element)->
|
||||
SetAttributeNS(ns, nsSOAPUtils::kXSITypeAttribute, type);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
}
|
||||
if (!aValue.IsEmpty()) {
|
||||
nsCOMPtr < nsIDOMText > text;
|
||||
rc = document->CreateTextNode(aValue, getter_AddRefs(text));
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
return (*_retval)->AppendChild(text, getter_AddRefs(ignore));
|
||||
rc = (element)->AppendChild(text, getter_AddRefs(ignore));
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
}
|
||||
*_retval = element;
|
||||
NS_IF_ADDREF(element);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
@ -556,6 +562,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
if (aSource == nsnull) {
|
||||
nsAutoString ns;
|
||||
nsCOMPtr<nsIDOMElement> cloneable;
|
||||
|
@ -692,6 +704,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsAutoString nativeSchemaType;
|
||||
nsAutoString nativeSchemaURI;
|
||||
PRUint16 typevalue;
|
||||
|
@ -809,8 +827,7 @@ static nsresult EncodeStructParticle(nsISOAPEncoding* aEncoding, nsIPropertyBag*
|
|||
return rc;
|
||||
}
|
||||
}
|
||||
if (minOccurs == 0
|
||||
&& rc == NS_ERROR_NOT_AVAILABLE) // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
if (minOccurs == 0 && rc == NS_ERROR_NOT_AVAILABLE) // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
rc = NS_OK;
|
||||
return rc;
|
||||
}
|
||||
|
@ -851,8 +868,7 @@ static nsresult EncodeStructParticle(nsISOAPEncoding* aEncoding, nsIPropertyBag*
|
|||
}
|
||||
if (compositor == nsISchemaModelGroup::COMPOSITOR_CHOICE) // If choice selected nothing, this is recoverable failure
|
||||
rc = NS_ERROR_NOT_AVAILABLE;
|
||||
if (minOccurs == 0
|
||||
&& rc == NS_ERROR_NOT_AVAILABLE) // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
if (minOccurs == 0 && rc == NS_ERROR_NOT_AVAILABLE) // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
rc = NS_OK;
|
||||
return rc; // Return status
|
||||
}
|
||||
|
@ -903,6 +919,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsIID* iid;
|
||||
nsCOMPtr<nsISupports> ptr;
|
||||
nsresult rc = aSource->GetAsInterface(&iid, getter_AddRefs(ptr));
|
||||
|
@ -949,6 +971,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
nsAutoString value;
|
||||
rc = aSource->GetAsAString(value);
|
||||
|
@ -1021,7 +1049,7 @@ static nsresult GetArrayType(nsIVariant* aSource, PRUint32 aDimensionCount, PRUi
|
|||
{
|
||||
nsISupports** values = NS_STATIC_CAST(nsISupports**,array);
|
||||
for (i = 0; i < count; i++)
|
||||
values[i]->Release();
|
||||
NS_RELEASE(values[i]);
|
||||
}
|
||||
break;
|
||||
case nsIDataType::VTYPE_WCHAR_STR:
|
||||
|
@ -1105,6 +1133,7 @@ static nsresult EncodeArray(nsISOAPEncoding* aEncoding, nsIVariant* aSource, nsI
|
|||
XPType* values = NS_STATIC_CAST(XPType*, array);\
|
||||
nsCOMPtr < nsIWritableVariant > p =\
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID, &rc);\
|
||||
if (NS_FAILED(rc)) break;\
|
||||
for (i = 0; i < count; i++) {\
|
||||
if (NS_FAILED(rc))\
|
||||
break;\
|
||||
|
@ -1140,7 +1169,7 @@ static nsresult EncodeArray(nsISOAPEncoding* aEncoding, nsIVariant* aSource, nsI
|
|||
}
|
||||
}
|
||||
for (i = 0; i < count; i++)
|
||||
values[i]->Release();
|
||||
NS_RELEASE(values[i]);
|
||||
break;
|
||||
}
|
||||
case nsIDataType::VTYPE_WCHAR_STR:
|
||||
|
@ -1202,6 +1231,7 @@ static nsresult EncodeArray(nsISOAPEncoding* aEncoding, nsIVariant* aSource, nsI
|
|||
else {
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID, &rc);
|
||||
if (NS_FAILED(rc)) break;
|
||||
for (i = 0; i < count; i++) {
|
||||
if (NS_FAILED(rc))
|
||||
break;
|
||||
|
@ -1219,7 +1249,7 @@ static nsresult EncodeArray(nsISOAPEncoding* aEncoding, nsIVariant* aSource, nsI
|
|||
}
|
||||
}
|
||||
for (i = 0; i < count; i++)
|
||||
values[i]->Release();
|
||||
NS_RELEASE(values[i]);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1253,6 +1283,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
PRUint16 arrayNativeType;
|
||||
PRUint32 dimensionSizes[MAX_ARRAY_DIMENSIONS];
|
||||
PRUint32 i;
|
||||
|
@ -1364,6 +1400,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
nsAutoString value;
|
||||
rc = aSource->GetAsAString(value);
|
||||
|
@ -1392,6 +1434,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRBool b;
|
||||
rc = aSource->GetAsBool(&b);
|
||||
|
@ -1421,6 +1469,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
double f;
|
||||
rc = aSource->GetAsDouble(&f); // Check that double works.
|
||||
|
@ -1455,6 +1509,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
float f;
|
||||
rc = aSource->GetAsFloat(&f); // Check that float works.
|
||||
|
@ -1488,6 +1548,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRInt64 f;
|
||||
rc = aSource->GetAsInt64(&f); // Get as a long number.
|
||||
|
@ -1521,6 +1587,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRInt32 f;
|
||||
rc = aSource->GetAsInt32(&f); // Get as a long number.
|
||||
|
@ -1554,6 +1626,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRInt16 f;
|
||||
rc = aSource->GetAsInt16(&f); // Get as a long number.
|
||||
|
@ -1587,6 +1665,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRUint8 f;
|
||||
rc = aSource->GetAsInt8(&f); // Get as a long number.
|
||||
|
@ -1620,6 +1704,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRUint64 f;
|
||||
rc = aSource->GetAsUint64(&f); // Get as a long number.
|
||||
|
@ -1653,6 +1743,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRUint32 f;
|
||||
rc = aSource->GetAsUint32(&f); // Get as a long number.
|
||||
|
@ -1686,6 +1782,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRUint16 f;
|
||||
rc = aSource->GetAsUint16(&f); // Get as a long number.
|
||||
|
@ -1719,6 +1821,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRUint8 f;
|
||||
rc = aSource->GetAsUint8(&f); // Get as a long number.
|
||||
|
@ -1747,6 +1855,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsCOMPtr < nsISOAPEncoding > encoding = aEncoding; // First, handle encoding redesignation, if any
|
||||
|
||||
{
|
||||
|
@ -1895,7 +2007,7 @@ NS_IMETHODIMP
|
|||
}
|
||||
}
|
||||
if (!decoder) {
|
||||
PRBool simple;
|
||||
PRBool simple = PR_TRUE;
|
||||
if (type) {
|
||||
nsresult rc = HasSimpleValue(type, &simple);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -1904,7 +2016,7 @@ NS_IMETHODIMP
|
|||
if (simple) {
|
||||
nsCOMPtr<nsIDOMElement> child;
|
||||
nsSOAPUtils::GetFirstChildElement(aSource, getter_AddRefs(child));
|
||||
simple = child == nsnull;
|
||||
simple = !child;
|
||||
}
|
||||
nsAutoString decodingKey;
|
||||
if (!simple) {
|
||||
|
@ -1933,7 +2045,11 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
PRBool simple;
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
PRBool simple = PR_TRUE;
|
||||
if (aSchemaType) {
|
||||
nsresult rc = HasSimpleValue(aSchemaType, &simple);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -1942,7 +2058,7 @@ NS_IMETHODIMP
|
|||
if (simple) {
|
||||
nsCOMPtr<nsIDOMElement> child;
|
||||
nsSOAPUtils::GetFirstChildElement(aSource, getter_AddRefs(child));
|
||||
simple = child == nsnull;
|
||||
simple = !child;
|
||||
}
|
||||
nsAutoString decodingKey;
|
||||
if (!simple) {
|
||||
|
@ -2031,11 +2147,11 @@ static nsresult DecodeStructParticle(nsISOAPEncoding* aEncoding, nsIDOMElement*
|
|||
return rc;
|
||||
nsSOAPUtils::GetNextSiblingElement(aElement, _retElement);
|
||||
}
|
||||
if (minOccurs == 0
|
||||
&& rc == NS_ERROR_NOT_AVAILABLE) // If we failed recoverably, but we were permitted to, then return success
|
||||
if (minOccurs == 0 && rc == NS_ERROR_NOT_AVAILABLE) { // If we failed recoverably, but we were permitted to, then return success
|
||||
*_retElement = aElement;
|
||||
NS_IF_ADDREF(*_retElement);
|
||||
rc = NS_OK;
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
case nsISchemaParticle::PARTICLE_TYPE_MODEL_GROUP:
|
||||
|
@ -2096,8 +2212,7 @@ static nsresult DecodeStructParticle(nsISOAPEncoding* aEncoding, nsIDOMElement*
|
|||
*_retElement = next;
|
||||
NS_IF_ADDREF(*_retElement);
|
||||
}
|
||||
if (minOccurs == 0
|
||||
&& rc == NS_ERROR_NOT_AVAILABLE) { // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
if (minOccurs == 0 && rc == NS_ERROR_NOT_AVAILABLE) { // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
*_retElement = aElement;
|
||||
NS_IF_ADDREF(*_retElement);
|
||||
rc = NS_OK;
|
||||
|
@ -2140,8 +2255,7 @@ static nsresult DecodeStructParticle(nsISOAPEncoding* aEncoding, nsIDOMElement*
|
|||
*_retElement = next;
|
||||
NS_IF_ADDREF(*_retElement);
|
||||
}
|
||||
if (minOccurs == 0
|
||||
&& rc == NS_ERROR_NOT_AVAILABLE) { // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
if (minOccurs == 0 && rc == NS_ERROR_NOT_AVAILABLE) { // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
*_retElement = aElement;
|
||||
NS_IF_ADDREF(*_retElement);
|
||||
rc = NS_OK;
|
||||
|
@ -2157,7 +2271,7 @@ static nsresult DecodeStructParticle(nsISOAPEncoding* aEncoding, nsIDOMElement*
|
|||
}
|
||||
|
||||
nsCOMPtr<nsIDOMElement> child = aElement;
|
||||
while (child != nsnull) {
|
||||
while (child) {
|
||||
nsAutoString name;
|
||||
nsAutoString namespaceURI;
|
||||
nsCOMPtr<nsIVariant>value;
|
||||
|
@ -2192,6 +2306,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsresult rc;
|
||||
nsCOMPtr<nsISOAPPropertyBagMutator> mutator = do_CreateInstance(NS_SOAPPROPERTYBAGMUTATOR_CONTRACTID, &rc);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2237,6 +2355,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2278,7 +2400,7 @@ static PRUint32 DecodeArrayDimensions(const nsAString& src, PRInt32* aDimensionS
|
|||
src.EndReading(i2);
|
||||
if (src.IsEmpty()) return 0;
|
||||
while (i1 != i2 // Loop past white space
|
||||
&& *(--i2) <= ' ')
|
||||
&& *(--i2) <= ' ') // In XML, all valid characters <= space are the only whitespace
|
||||
;
|
||||
if (*i2 != ']') { // In this case, not an array dimension
|
||||
int len = Distance(i1, i2) - 1; // This is the size to truncate to at the end.
|
||||
|
@ -2303,7 +2425,7 @@ static PRUint32 DecodeArrayDimensions(const nsAString& src, PRInt32* aDimensionS
|
|||
{
|
||||
nsReadingIterator < PRUnichar > i3 = i2++; // Cover any extra white space
|
||||
while (i1 != i3) { // Loop past white space
|
||||
if (*(--i3) > ' ') {
|
||||
if (*(--i3) > ' ') { // In XML, all valid characters <= space are the only whitespace
|
||||
i3++;
|
||||
break;
|
||||
}
|
||||
|
@ -2328,7 +2450,7 @@ static PRUint32 DecodeArrayDimensions(const nsAString& src, PRInt32* aDimensionS
|
|||
PRUnichar c = *(i1++);
|
||||
if (c < '0' || c > '9') {
|
||||
// There may be slightly more to do here if alternative radixes are supported.
|
||||
if (c <= ' ') { // Accept anything < space as whitespace
|
||||
if (c <= ' ') { // In XML, all valid characters <= space are the only whitespace
|
||||
if (aDimensionSizes[dimensionCount] >= 0) {
|
||||
finished = PR_TRUE;
|
||||
}
|
||||
|
@ -2388,8 +2510,9 @@ static PRInt32 DecodeArrayPosition(const nsAString& src, PRUint32 aDimensionCoun
|
|||
if (++i < aDimensionCount) // Multiply for next round.
|
||||
result = result * aDimensionSizes[i];
|
||||
else
|
||||
return result;
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2411,6 +2534,8 @@ static nsresult CreateArray(nsIWritableVariant* aResult, PRUint16 aType, const n
|
|||
PRUint32 size = aSizeof / count;
|
||||
PRInt32 i;
|
||||
nsIVariant** a = new nsIVariant*[count]; // Create variant array.
|
||||
if (!a)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
nsresult rc = NS_OK;
|
||||
|
||||
|
@ -2432,7 +2557,7 @@ static nsresult CreateArray(nsIWritableVariant* aResult, PRUint16 aType, const n
|
|||
for (i = 0; i < count; i++) { // Release variants for array
|
||||
nsIVariant* v = a[i];
|
||||
if (v)
|
||||
v->Release();
|
||||
NS_RELEASE(v);
|
||||
}
|
||||
delete[] a;
|
||||
return rc;
|
||||
|
@ -2450,6 +2575,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString ns;
|
||||
nsAutoString name;
|
||||
nsCOMPtr < nsISchemaType > schemaArrayType;
|
||||
|
@ -2761,7 +2890,7 @@ NS_IMETHODIMP
|
|||
}
|
||||
if (unhandled) { // Handle all the other cases
|
||||
DECODE_ARRAY(nsIVariant*,INTERFACE,&NS_GET_IID(nsIVariant),a[p] = v;,
|
||||
for (si = 0; si < size; si++) a[si]->Release(););
|
||||
for (si = 0; si < size; si++) NS_RELEASE(a[si]););
|
||||
}
|
||||
if (NS_FAILED(rc))\
|
||||
return rc;
|
||||
|
@ -2777,6 +2906,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2800,6 +2933,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2815,7 +2952,9 @@ NS_IMETHODIMP
|
|||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_BOOLEAN","Illegal value discovered for boolean");
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsBool(b);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -2829,6 +2968,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2840,7 +2983,9 @@ NS_IMETHODIMP
|
|||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_DOUBLE","Illegal value discovered for double");
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsDouble(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -2854,6 +2999,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2863,10 +3012,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %f %n", &f, &n);
|
||||
if (r == 0 || n < value.Length())
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_FLOAT","Illegal value discovered for float");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsFloat(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -2880,6 +3030,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2889,10 +3043,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %lld %n", &f, &n);
|
||||
if (r == 0 || n < value.Length())
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_LONG","Illegal value discovered for long");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsInt64(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -2906,6 +3061,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2915,10 +3074,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %ld %n", &f, &n);
|
||||
if (r == 0 || n < value.Length())
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_INT","Illegal value discovered for int");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsInt32(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -2932,6 +3092,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2941,10 +3105,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %hd %n", &f, &n);
|
||||
if (r == 0 || n < value.Length())
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_SHORT","Illegal value discovered for short");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsInt16(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -2958,6 +3123,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2967,10 +3136,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %hd %n", &f, &n);
|
||||
if (r == 0 || n < value.Length() || f < -128 || f > 127)
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_BYTE","Illegal value discovered for byte");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsInt8((PRUint8) f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -2984,6 +3154,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2993,10 +3167,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %llu %n", &f, &n);
|
||||
if (r == 0 || n < value.Length())
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_ULONG","Illegal value discovered for unsigned long");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsUint64(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -3010,6 +3185,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -3019,10 +3198,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %lu %n", &f, &n);
|
||||
if (r == 0 || n < value.Length())
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_UINT","Illegal value discovered for unsigned int");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsUint32(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -3036,6 +3216,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -3045,10 +3229,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %hu %n", &f, &n);
|
||||
if (r == 0 || n < value.Length())
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_USHORT","Illegal value discovered for unsigned short");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsUint16(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -3062,6 +3247,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -3071,10 +3260,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %hu %n", &f, &n);
|
||||
if (r == 0 || n < value.Length() || f > 255)
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_UBYTE","Illegal value discovered for unsigned byte");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsUint8((PRUint8) f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
|
|
@ -355,6 +355,7 @@ nsHTTPSOAPTransportCompletion::~nsHTTPSOAPTransportCompletion()
|
|||
/* readonly attribute nsISOAPCall call; */
|
||||
NS_IMETHODIMP nsHTTPSOAPTransportCompletion::GetCall(nsISOAPCall * *aCall)
|
||||
{
|
||||
NS_ENSURE_ARG(aCall);
|
||||
*aCall = mCall;
|
||||
NS_IF_ADDREF(*aCall);
|
||||
return NS_OK;
|
||||
|
@ -365,6 +366,7 @@ NS_IMETHODIMP
|
|||
nsHTTPSOAPTransportCompletion::GetResponse(nsISOAPResponse *
|
||||
*aResponse)
|
||||
{
|
||||
NS_ENSURE_ARG(aResponse);
|
||||
*aResponse =
|
||||
mRequest ? (nsCOMPtr < nsISOAPResponse >) nsnull : mResponse;
|
||||
NS_IF_ADDREF(*aResponse);
|
||||
|
@ -376,6 +378,7 @@ NS_IMETHODIMP
|
|||
nsHTTPSOAPTransportCompletion::GetListener(nsISOAPResponseListener *
|
||||
*aListener)
|
||||
{
|
||||
NS_ENSURE_ARG(aListener);
|
||||
*aListener = mListener;
|
||||
NS_IF_ADDREF(*aListener);
|
||||
return NS_OK;
|
||||
|
@ -385,6 +388,7 @@ NS_IMETHODIMP
|
|||
NS_IMETHODIMP
|
||||
nsHTTPSOAPTransportCompletion::GetIsComplete(PRBool * aIsComplete)
|
||||
{
|
||||
NS_ENSURE_ARG(aIsComplete);
|
||||
*aIsComplete = mRequest == nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -392,6 +396,7 @@ NS_IMETHODIMP
|
|||
/* boolean abort (); */
|
||||
NS_IMETHODIMP nsHTTPSOAPTransportCompletion::Abort(PRBool * _retval)
|
||||
{
|
||||
NS_ENSURE_ARG(_retval);
|
||||
if (mRequest) {
|
||||
if (NS_SUCCEEDED(mRequest->Abort())) {
|
||||
*_retval = PR_TRUE;
|
||||
|
@ -406,6 +411,7 @@ NS_IMETHODIMP nsHTTPSOAPTransportCompletion::Abort(PRBool * _retval)
|
|||
NS_IMETHODIMP
|
||||
nsHTTPSOAPTransportCompletion::HandleEvent(nsIDOMEvent * aEvent)
|
||||
{
|
||||
NS_ENSURE_ARG(aEvent);
|
||||
// PRUint32 status;
|
||||
nsresult rv = NS_OK;
|
||||
if (mRequest) { // Avoid if it has been aborted.
|
||||
|
@ -441,6 +447,7 @@ NS_IMETHODIMP
|
|||
nsISOAPCallCompletion ** aCompletion)
|
||||
{
|
||||
NS_ENSURE_ARG(aCall);
|
||||
NS_ENSURE_ARG(aCompletion);
|
||||
|
||||
nsresult rv;
|
||||
nsCOMPtr < nsIXMLHttpRequest > request;
|
||||
|
|
|
@ -87,6 +87,7 @@ NS_IMETHODIMP nsSOAPBlock::GetNamespaceURI(nsAString & aNamespaceURI)
|
|||
|
||||
NS_IMETHODIMP nsSOAPBlock::SetNamespaceURI(const nsAString & aNamespaceURI)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
nsresult rc = SetElement(nsnull);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
|
@ -108,6 +109,7 @@ NS_IMETHODIMP nsSOAPBlock::GetName(nsAString & aName)
|
|||
|
||||
NS_IMETHODIMP nsSOAPBlock::SetName(const nsAString & aName)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
nsresult rc = SetElement(nsnull);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
|
|
|
@ -70,8 +70,8 @@ protected:
|
|||
nsCOMPtr < nsIDOMElement > mElement;
|
||||
nsCOMPtr < nsIVariant > mValue;
|
||||
nsresult mStatus;
|
||||
PRBool mComputeValue;
|
||||
PRBool mVersion;
|
||||
PRPackedBool mComputeValue;
|
||||
PRPackedBool mVersion;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -167,6 +167,7 @@ NS_IMETHODIMP
|
|||
nsSOAPCall::AsyncInvoke(nsISOAPResponseListener * listener,
|
||||
nsISOAPCallCompletion ** aCompletion)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aCompletion);
|
||||
nsresult rv;
|
||||
nsCOMPtr < nsISOAPTransport > transport;
|
||||
|
||||
|
|
|
@ -334,7 +334,7 @@ NS_IMETHODIMP
|
|||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
nsStringKey nameKey(aKey);
|
||||
*_retval = (nsISOAPEncoder *) mEncoders->Get(&nameKey);
|
||||
if (*_retval == nsnull && mDefaultEncoding != nsnull) {
|
||||
if (*_retval == nsnull && mDefaultEncoding) {
|
||||
return mDefaultEncoding->GetEncoder(aKey, _retval);
|
||||
}
|
||||
return NS_OK;
|
||||
|
@ -365,7 +365,7 @@ NS_IMETHODIMP
|
|||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
nsStringKey nameKey(aKey);
|
||||
*_retval = (nsISOAPDecoder *) mDecoders->Get(&nameKey);
|
||||
if (*_retval == nsnull && mDefaultEncoding != nsnull) {
|
||||
if (*_retval == nsnull && mDefaultEncoding) {
|
||||
return mDefaultEncoding->GetDecoder(aKey, _retval);
|
||||
}
|
||||
return NS_OK;
|
||||
|
@ -462,45 +462,49 @@ NS_IMETHODIMP
|
|||
/* boolean mapSchemaURI (in AString aExternalURI, in AString aInternalURI, in boolean aOutput); */
|
||||
NS_IMETHODIMP nsSOAPEncoding::MapSchemaURI(const nsAString & aExternalURI, const nsAString & aInternalURI, PRBool aOutput, PRBool *_retval)
|
||||
{
|
||||
if (aExternalURI.IsEmpty() || aInternalURI.IsEmpty()) // Permit no empty URIs.
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
nsStringKey externalKey(aExternalURI);
|
||||
if (mMappedExternal->Exists(&externalKey)) {
|
||||
*_retval = PR_FALSE; // Do not permit duplicate external
|
||||
NS_ENSURE_ARG_POINTER(&aExternalURI);
|
||||
NS_ENSURE_ARG_POINTER(&aInternalURI);
|
||||
if (aExternalURI.IsEmpty() || aInternalURI.IsEmpty()) // Permit no empty URIs.
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
nsStringKey externalKey(aExternalURI);
|
||||
if (mMappedExternal->Exists(&externalKey)) {
|
||||
*_retval = PR_FALSE; // Do not permit duplicate external
|
||||
return NS_OK;
|
||||
}
|
||||
if (aOutput) {
|
||||
nsStringKey internalKey(aInternalURI);
|
||||
if (mMappedInternal->Exists(&internalKey)) {
|
||||
*_retval = PR_FALSE; // Do not permit duplicate internal
|
||||
return NS_OK;
|
||||
}
|
||||
if (aOutput) {
|
||||
nsStringKey internalKey(aInternalURI);
|
||||
if (mMappedInternal->Exists(&internalKey)) {
|
||||
*_retval = PR_FALSE; // Do not permit duplicate internal
|
||||
return NS_OK;
|
||||
}
|
||||
nsresult rc;
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID, &rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsAString(aExternalURI);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
mMappedInternal->Put(&internalKey, p);
|
||||
}
|
||||
nsresult rc;
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID, &rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsAString(aInternalURI);
|
||||
p->SetAsAString(aExternalURI);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
mMappedExternal->Put(&externalKey, p);
|
||||
mMappedInternal->Put(&internalKey, p);
|
||||
}
|
||||
nsresult rc;
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID, &rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsAString(aInternalURI);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
mMappedExternal->Put(&externalKey, p);
|
||||
if (_retval)
|
||||
*_retval = PR_TRUE;
|
||||
return NS_OK;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* boolean unmapSchemaURI (in AString aExternalURI); */
|
||||
NS_IMETHODIMP nsSOAPEncoding::UnmapSchemaURI(const nsAString & aExternalURI, PRBool *_retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(&aExternalURI);
|
||||
nsStringKey externalKey(aExternalURI);
|
||||
nsCOMPtr<nsIVariant> internal = dont_AddRef(NS_STATIC_CAST(nsIVariant*,mMappedExternal->Get(&externalKey)));
|
||||
if (internal) {
|
||||
|
@ -511,10 +515,12 @@ NS_IMETHODIMP nsSOAPEncoding::UnmapSchemaURI(const nsAString & aExternalURI, PRB
|
|||
nsStringKey internalKey(internalstr);
|
||||
mMappedExternal->Remove(&externalKey);
|
||||
mMappedInternal->Remove(&internalKey);
|
||||
*_retval = PR_TRUE;
|
||||
if (_retval)
|
||||
*_retval = PR_TRUE;
|
||||
}
|
||||
else {
|
||||
*_retval = PR_FALSE;
|
||||
if (_retval)
|
||||
*_retval = PR_FALSE;
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -522,6 +528,8 @@ NS_IMETHODIMP nsSOAPEncoding::UnmapSchemaURI(const nsAString & aExternalURI, PRB
|
|||
/* AString getInternalSchemaURI (in AString aExternalURI); */
|
||||
NS_IMETHODIMP nsSOAPEncoding::GetInternalSchemaURI(const nsAString & aExternalURI, nsAString & _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(&aExternalURI);
|
||||
NS_ENSURE_ARG_POINTER(&_retval);
|
||||
if (mMappedExternal->Count()) {
|
||||
nsStringKey externalKey(aExternalURI);
|
||||
nsCOMPtr<nsIVariant> internal = dont_AddRef(NS_STATIC_CAST(nsIVariant*,mMappedExternal->Get(&externalKey)));
|
||||
|
@ -539,6 +547,8 @@ NS_IMETHODIMP nsSOAPEncoding::GetInternalSchemaURI(const nsAString & aExternalUR
|
|||
/* AString getExternalSchemaURI (in AString aInternalURI); */
|
||||
NS_IMETHODIMP nsSOAPEncoding::GetExternalSchemaURI(const nsAString & aInternalURI, nsAString & _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(&aInternalURI);
|
||||
NS_ENSURE_ARG_POINTER(&_retval);
|
||||
if (mMappedInternal->Count()) {
|
||||
nsStringKey internalKey(aInternalURI);
|
||||
nsCOMPtr<nsIVariant> external = dont_AddRef(NS_STATIC_CAST(nsIVariant*,mMappedInternal->Get(&internalKey)));
|
||||
|
|
|
@ -168,6 +168,7 @@ static NS_NAMED_LITERAL_STRING(kErrorSeperator3, ", caused by ");
|
|||
NS_IMETHODIMP
|
||||
nsSOAPException::ToString(char **_retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
nsAutoString s;
|
||||
s.Append(mName);
|
||||
s.Append(kErrorSeperator1);
|
||||
|
|
|
@ -177,7 +177,6 @@ NS_IMETHODIMP nsSOAPFault::GetDetail(nsIDOMElement * *aDetail)
|
|||
if (!mFaultElement)
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIDOMElement > element;
|
||||
nsSOAPUtils::GetSpecificChildElement(nsnull, mFaultElement,
|
||||
kEmpty,
|
||||
nsSOAPUtils::kFaultDetailTagName,
|
||||
|
|
|
@ -118,6 +118,7 @@ NS_IMETHODIMP nsSOAPMessage::GetEnvelope(nsIDOMElement * *aEnvelope)
|
|||
/* readonly attribute PRUint16 version; */
|
||||
NS_IMETHODIMP nsSOAPMessage::GetVersion(PRUint16 * aVersion)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aVersion);
|
||||
if (mMessage) {
|
||||
nsCOMPtr < nsIDOMElement > root;
|
||||
mMessage->GetDocumentElement(getter_AddRefs(root));
|
||||
|
@ -152,6 +153,7 @@ NS_IMETHODIMP nsSOAPMessage::GetVersion(PRUint16 * aVersion)
|
|||
/* Internal method for getting envelope and version */
|
||||
PRUint16 nsSOAPMessage::GetEnvelopeWithVersion(nsIDOMElement * *aEnvelope)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEnvelope);
|
||||
if (mMessage) {
|
||||
nsCOMPtr < nsIDOMElement > root;
|
||||
mMessage->GetDocumentElement(getter_AddRefs(root));
|
||||
|
@ -226,6 +228,7 @@ NS_IMETHODIMP nsSOAPMessage::GetActionURI(nsAString & aActionURI)
|
|||
|
||||
NS_IMETHODIMP nsSOAPMessage::SetActionURI(const nsAString & aActionURI)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(&aActionURI);
|
||||
mActionURI.Assign(aActionURI);
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -292,6 +295,8 @@ NS_IMETHODIMP
|
|||
PRUint32 aParameterCount,
|
||||
nsISOAPParameter ** aParameters)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(&aMethodName);
|
||||
NS_ENSURE_ARG_POINTER(&aTargetObjectURI);
|
||||
if (aVersion != nsISOAPMessage::VERSION_1_1
|
||||
&& aVersion != nsISOAPMessage::VERSION_1_2)
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
@ -360,22 +365,19 @@ NS_IMETHODIMP
|
|||
rv = GetHeader(getter_AddRefs(parent));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
nsCOMPtr < nsISupports > next;
|
||||
nsCOMPtr < nsISOAPHeaderBlock > header;
|
||||
nsCOMPtr < nsIDOMElement > element;
|
||||
nsCOMPtr < nsISchemaType > schemaType;
|
||||
nsCOMPtr < nsIVariant > value;
|
||||
nsAutoString name;
|
||||
nsAutoString namespaceURI;
|
||||
nsAutoString actorURI;
|
||||
PRBool mustUnderstand;
|
||||
for (PRUint32 i = 0; i < aHeaderBlockCount; i++) {
|
||||
PRUint32 i;
|
||||
for (i = 0; i < aHeaderBlockCount; i++) {
|
||||
header = aHeaderBlocks[i];
|
||||
if (!header)
|
||||
return NS_ERROR_FAILURE;
|
||||
rv = header->GetElement(getter_AddRefs(element));
|
||||
if (element) {
|
||||
nsCOMPtr < nsIDOMNode > node1 = (nsIDOMElement *) element;
|
||||
nsCOMPtr < nsIDOMNode > node1;
|
||||
node1 = element;
|
||||
nsCOMPtr < nsIDOMNode > node2;
|
||||
rv = mMessage->ImportNode(node1, PR_TRUE, getter_AddRefs(node1));
|
||||
if (NS_FAILED(rv))
|
||||
|
@ -391,9 +393,11 @@ NS_IMETHODIMP
|
|||
rv = header->GetName(name);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
nsAutoString actorURI;
|
||||
rv = header->GetActorURI(actorURI);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
PRBool mustUnderstand;
|
||||
rv = header->GetMustUnderstand(&mustUnderstand);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
@ -405,9 +409,11 @@ NS_IMETHODIMP
|
|||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
}
|
||||
nsCOMPtr < nsISchemaType > schemaType;
|
||||
rv = header->GetSchemaType(getter_AddRefs(schemaType));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
nsCOMPtr < nsIVariant > value;
|
||||
rv = header->GetValue(getter_AddRefs(value));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
@ -463,21 +469,20 @@ NS_IMETHODIMP
|
|||
}
|
||||
// Encode and add all of the parameters into the body
|
||||
|
||||
nsCOMPtr < nsISupports > next;
|
||||
nsCOMPtr < nsISOAPParameter > param;
|
||||
nsCOMPtr < nsIDOMElement > element;
|
||||
nsCOMPtr < nsISOAPEncoding > newencoding;
|
||||
nsCOMPtr < nsISchemaType > schemaType;
|
||||
nsCOMPtr < nsIVariant > value;
|
||||
nsAutoString name;
|
||||
nsAutoString namespaceURI;
|
||||
for (PRUint32 i = 0; i < aParameterCount; i++) {
|
||||
PRUint32 i;
|
||||
for (i = 0; i < aParameterCount; i++) {
|
||||
param = aParameters[i];
|
||||
if (!param)
|
||||
return NS_ERROR_FAILURE;
|
||||
rv = param->GetElement(getter_AddRefs(element));
|
||||
if (element) {
|
||||
nsCOMPtr < nsIDOMNode > node1 = (nsIDOMElement *) element;
|
||||
nsCOMPtr < nsIDOMNode > node1;
|
||||
node1 = element;
|
||||
nsCOMPtr < nsIDOMNode > node2;
|
||||
rv = mMessage->ImportNode(node1, PR_TRUE, getter_AddRefs(node1));
|
||||
if (NS_FAILED(rv))
|
||||
|
@ -499,9 +504,11 @@ NS_IMETHODIMP
|
|||
if (!newencoding) {
|
||||
newencoding = encoding;
|
||||
}
|
||||
nsCOMPtr < nsISchemaType > schemaType;
|
||||
rv = param->GetSchemaType(getter_AddRefs(schemaType));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
nsCOMPtr < nsIVariant > value;
|
||||
rv = param->GetValue(getter_AddRefs(value));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
@ -587,7 +594,8 @@ NS_IMETHODIMP
|
|||
nsSOAPMessage::GetHeaderBlocks(PRUint32 * aCount,
|
||||
nsISOAPHeaderBlock *** aHeaderBlocks)
|
||||
{
|
||||
nsCOMPtr < nsIMemory > memory = do_GetService(kMemoryCID);
|
||||
NS_ENSURE_ARG_POINTER(aHeaderBlocks);
|
||||
nsISOAPHeaderBlock** headerBlocks = nsnull;
|
||||
*aCount = 0;
|
||||
*aHeaderBlocks = nsnull;
|
||||
int count = 0;
|
||||
|
@ -609,36 +617,50 @@ NS_IMETHODIMP
|
|||
while (next) {
|
||||
if (length == count) {
|
||||
length = length ? 2 * length : 10;
|
||||
*aHeaderBlocks =
|
||||
(nsISOAPHeaderBlock * *)memory->Realloc(*aHeaderBlocks,
|
||||
headerBlocks =
|
||||
(nsISOAPHeaderBlock * *)nsMemory::Realloc(headerBlocks,
|
||||
length *
|
||||
sizeof(**aHeaderBlocks));
|
||||
sizeof(*headerBlocks));
|
||||
}
|
||||
element = next;
|
||||
header = do_CreateInstance(NS_SOAPHEADERBLOCK_CONTRACTID);
|
||||
if (!header)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
if (!header) {
|
||||
rv = NS_ERROR_OUT_OF_MEMORY;
|
||||
break;
|
||||
}
|
||||
header->Init(nsnull, version);
|
||||
|
||||
(*aHeaderBlocks)[(*aCount)] = header;
|
||||
NS_ADDREF((*aHeaderBlocks)[(*aCount)]);
|
||||
(*aCount)++;
|
||||
(headerBlocks)[(count)] = header;
|
||||
NS_ADDREF((headerBlocks)[(count)]);
|
||||
(count)++;
|
||||
|
||||
rv = header->SetElement(element);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
break;
|
||||
rv = header->SetEncoding(encoding);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
break;
|
||||
nsSOAPUtils::GetNextSiblingElement(element, getter_AddRefs(next));
|
||||
}
|
||||
if (*aCount) {
|
||||
*aHeaderBlocks =
|
||||
(nsISOAPHeaderBlock * *)memory->Realloc(*aHeaderBlocks,
|
||||
(*aCount) *
|
||||
sizeof(**aHeaderBlocks));
|
||||
if (!NS_FAILED(rv)) {
|
||||
if (count) {
|
||||
headerBlocks =
|
||||
(nsISOAPHeaderBlock * *)nsMemory::Realloc(headerBlocks,
|
||||
count *
|
||||
sizeof(*headerBlocks));
|
||||
}
|
||||
}
|
||||
return NS_OK;
|
||||
else {
|
||||
while (--count >= 0) {
|
||||
NS_IF_RELEASE(headerBlocks[count]);
|
||||
}
|
||||
count = 0;
|
||||
nsMemory::Free(headerBlocks);
|
||||
headerBlocks = nsnull;
|
||||
}
|
||||
*aCount = count;
|
||||
*aHeaderBlocks = headerBlocks;
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* void getParameters (in boolean aDocumentStyle, out PRUint32 aCount, [array, size_is (aCount), retval] out nsISOAPParameter aParameters); */
|
||||
|
@ -646,7 +668,8 @@ NS_IMETHODIMP
|
|||
nsSOAPMessage::GetParameters(PRBool aDocumentStyle, PRUint32 * aCount,
|
||||
nsISOAPParameter *** aParameters)
|
||||
{
|
||||
nsCOMPtr < nsIMemory > memory = do_GetService(kMemoryCID);
|
||||
NS_ENSURE_ARG_POINTER(aParameters);
|
||||
nsISOAPParameter** parameters = nsnull;
|
||||
*aCount = 0;
|
||||
*aParameters = nsnull;
|
||||
int count = 0;
|
||||
|
@ -672,35 +695,54 @@ NS_IMETHODIMP
|
|||
while (next) {
|
||||
if (length == count) {
|
||||
length = length ? 2 * length : 10;
|
||||
*aParameters =
|
||||
(nsISOAPParameter * *)memory->Realloc(*aParameters,
|
||||
parameters =
|
||||
(nsISOAPParameter * *)nsMemory::Realloc(parameters,
|
||||
length *
|
||||
sizeof(**aParameters));
|
||||
sizeof(*parameters));
|
||||
}
|
||||
element = next;
|
||||
param = do_CreateInstance(NS_SOAPPARAMETER_CONTRACTID);
|
||||
if (!param)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
(*aParameters)[(*aCount)] = param;
|
||||
NS_ADDREF((*aParameters)[(*aCount)]);
|
||||
(*aCount)++;
|
||||
if (!param) {
|
||||
rv = NS_ERROR_OUT_OF_MEMORY;
|
||||
break;
|
||||
}
|
||||
parameters[count] = param;
|
||||
NS_ADDREF(parameters[count]);
|
||||
count++;
|
||||
|
||||
rv = param->SetElement(element);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
break;
|
||||
rv = param->SetEncoding(encoding);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
break;
|
||||
nsSOAPUtils::GetNextSiblingElement(element, getter_AddRefs(next));
|
||||
}
|
||||
if (*aCount) {
|
||||
*aParameters =
|
||||
(nsISOAPParameter * *)memory->Realloc(*aParameters,
|
||||
(*aCount) *
|
||||
sizeof(**aParameters));
|
||||
if (!NS_FAILED(rv)) {
|
||||
if (count) {
|
||||
parameters =
|
||||
(nsISOAPParameter * *)nsMemory::Realloc(parameters,
|
||||
count *
|
||||
sizeof(*parameters));
|
||||
}
|
||||
}
|
||||
return NS_OK;
|
||||
else {
|
||||
while (--count >= 0) {
|
||||
NS_IF_RELEASE(parameters[count]);
|
||||
}
|
||||
count = 0;
|
||||
nsMemory::Free(parameters);
|
||||
parameters = nsnull;
|
||||
}
|
||||
*aCount = count;
|
||||
*aParameters = parameters;
|
||||
if (count) {
|
||||
parameters =
|
||||
(nsISOAPParameter * *)nsMemory::Realloc(parameters,
|
||||
count *
|
||||
sizeof(*parameters));
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* attribute nsISOAPEncoding encoding; */
|
||||
|
|
|
@ -145,7 +145,7 @@ NS_IMETHODIMP
|
|||
nsCOMPtr < nsIVariant > value =
|
||||
dont_AddRef(NS_STATIC_CAST
|
||||
(nsIVariant *, mProperties->Get(&nameKey)));
|
||||
if (value == nsnull)
|
||||
if (!value)
|
||||
return NS_OK;
|
||||
void *mark;
|
||||
jsval *argv = JS_PushArguments(cx, &mark, "%iv", value.get());
|
||||
|
|
|
@ -356,7 +356,7 @@ nsresult
|
|||
nsCOMPtr < nsIDOMNamedNodeMap > attrs;
|
||||
nsCOMPtr < nsIDOMNode > temp;
|
||||
nsAutoString value;
|
||||
while (current != nsnull) {
|
||||
while (current) {
|
||||
rc = current->GetAttributes(getter_AddRefs(attrs));
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
|
@ -365,7 +365,7 @@ nsresult
|
|||
getter_AddRefs(temp));
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
if (temp != nsnull) {
|
||||
if (temp) {
|
||||
rc = temp->GetNodeValue(result);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
|
@ -572,7 +572,8 @@ PRBool nsSOAPUtils::GetAttribute(nsISOAPEncoding *aEncoding,
|
|||
rc = attrs->GetLength(&count);
|
||||
if (NS_FAILED(rc))
|
||||
return PR_FALSE;
|
||||
for (PRUint32 i = 0; i < count; i++) {
|
||||
PRUint32 i;
|
||||
for (i = 0; i < count; i++) {
|
||||
nsCOMPtr<nsIDOMNode> attrnode;
|
||||
rc = attrs->Item(i, getter_AddRefs(attrnode));
|
||||
if (NS_FAILED(rc))
|
||||
|
|
|
@ -246,11 +246,11 @@ EncodeSimpleValue(nsISOAPEncoding * aEncoding,
|
|||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
nsCOMPtr < nsIDOMElement > element;
|
||||
rc = document->CreateElementNS(ns, aName, _retval);
|
||||
rc = document->CreateElementNS(ns, aName, getter_AddRefs(element));
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
nsCOMPtr < nsIDOMNode > ignore;
|
||||
rc = aDestination->AppendChild(*_retval, getter_AddRefs(ignore));
|
||||
rc = aDestination->AppendChild(element, getter_AddRefs(ignore));
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
if (aSchemaType) {
|
||||
|
@ -262,7 +262,7 @@ EncodeSimpleValue(nsISOAPEncoding * aEncoding,
|
|||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
nsAutoString type;
|
||||
rc = nsSOAPUtils::MakeNamespacePrefix(aEncoding, *_retval,
|
||||
rc = nsSOAPUtils::MakeNamespacePrefix(aEncoding, element,
|
||||
ns, type);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
|
@ -271,16 +271,22 @@ EncodeSimpleValue(nsISOAPEncoding * aEncoding,
|
|||
rc = aEncoding->GetExternalSchemaURI(nsSOAPUtils::kXSIURI, ns);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
rc = (*_retval)->
|
||||
rc = (element)->
|
||||
SetAttributeNS(ns, nsSOAPUtils::kXSITypeAttribute, type);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
}
|
||||
if (!aValue.IsEmpty()) {
|
||||
nsCOMPtr < nsIDOMText > text;
|
||||
rc = document->CreateTextNode(aValue, getter_AddRefs(text));
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
return (*_retval)->AppendChild(text, getter_AddRefs(ignore));
|
||||
rc = (element)->AppendChild(text, getter_AddRefs(ignore));
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
}
|
||||
*_retval = element;
|
||||
NS_IF_ADDREF(element);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
@ -556,6 +562,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
if (aSource == nsnull) {
|
||||
nsAutoString ns;
|
||||
nsCOMPtr<nsIDOMElement> cloneable;
|
||||
|
@ -692,6 +704,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsAutoString nativeSchemaType;
|
||||
nsAutoString nativeSchemaURI;
|
||||
PRUint16 typevalue;
|
||||
|
@ -809,8 +827,7 @@ static nsresult EncodeStructParticle(nsISOAPEncoding* aEncoding, nsIPropertyBag*
|
|||
return rc;
|
||||
}
|
||||
}
|
||||
if (minOccurs == 0
|
||||
&& rc == NS_ERROR_NOT_AVAILABLE) // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
if (minOccurs == 0 && rc == NS_ERROR_NOT_AVAILABLE) // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
rc = NS_OK;
|
||||
return rc;
|
||||
}
|
||||
|
@ -851,8 +868,7 @@ static nsresult EncodeStructParticle(nsISOAPEncoding* aEncoding, nsIPropertyBag*
|
|||
}
|
||||
if (compositor == nsISchemaModelGroup::COMPOSITOR_CHOICE) // If choice selected nothing, this is recoverable failure
|
||||
rc = NS_ERROR_NOT_AVAILABLE;
|
||||
if (minOccurs == 0
|
||||
&& rc == NS_ERROR_NOT_AVAILABLE) // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
if (minOccurs == 0 && rc == NS_ERROR_NOT_AVAILABLE) // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
rc = NS_OK;
|
||||
return rc; // Return status
|
||||
}
|
||||
|
@ -903,6 +919,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsIID* iid;
|
||||
nsCOMPtr<nsISupports> ptr;
|
||||
nsresult rc = aSource->GetAsInterface(&iid, getter_AddRefs(ptr));
|
||||
|
@ -949,6 +971,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
nsAutoString value;
|
||||
rc = aSource->GetAsAString(value);
|
||||
|
@ -1021,7 +1049,7 @@ static nsresult GetArrayType(nsIVariant* aSource, PRUint32 aDimensionCount, PRUi
|
|||
{
|
||||
nsISupports** values = NS_STATIC_CAST(nsISupports**,array);
|
||||
for (i = 0; i < count; i++)
|
||||
values[i]->Release();
|
||||
NS_RELEASE(values[i]);
|
||||
}
|
||||
break;
|
||||
case nsIDataType::VTYPE_WCHAR_STR:
|
||||
|
@ -1105,6 +1133,7 @@ static nsresult EncodeArray(nsISOAPEncoding* aEncoding, nsIVariant* aSource, nsI
|
|||
XPType* values = NS_STATIC_CAST(XPType*, array);\
|
||||
nsCOMPtr < nsIWritableVariant > p =\
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID, &rc);\
|
||||
if (NS_FAILED(rc)) break;\
|
||||
for (i = 0; i < count; i++) {\
|
||||
if (NS_FAILED(rc))\
|
||||
break;\
|
||||
|
@ -1140,7 +1169,7 @@ static nsresult EncodeArray(nsISOAPEncoding* aEncoding, nsIVariant* aSource, nsI
|
|||
}
|
||||
}
|
||||
for (i = 0; i < count; i++)
|
||||
values[i]->Release();
|
||||
NS_RELEASE(values[i]);
|
||||
break;
|
||||
}
|
||||
case nsIDataType::VTYPE_WCHAR_STR:
|
||||
|
@ -1202,6 +1231,7 @@ static nsresult EncodeArray(nsISOAPEncoding* aEncoding, nsIVariant* aSource, nsI
|
|||
else {
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID, &rc);
|
||||
if (NS_FAILED(rc)) break;
|
||||
for (i = 0; i < count; i++) {
|
||||
if (NS_FAILED(rc))
|
||||
break;
|
||||
|
@ -1219,7 +1249,7 @@ static nsresult EncodeArray(nsISOAPEncoding* aEncoding, nsIVariant* aSource, nsI
|
|||
}
|
||||
}
|
||||
for (i = 0; i < count; i++)
|
||||
values[i]->Release();
|
||||
NS_RELEASE(values[i]);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1253,6 +1283,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
PRUint16 arrayNativeType;
|
||||
PRUint32 dimensionSizes[MAX_ARRAY_DIMENSIONS];
|
||||
PRUint32 i;
|
||||
|
@ -1364,6 +1400,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
nsAutoString value;
|
||||
rc = aSource->GetAsAString(value);
|
||||
|
@ -1392,6 +1434,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRBool b;
|
||||
rc = aSource->GetAsBool(&b);
|
||||
|
@ -1421,6 +1469,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
double f;
|
||||
rc = aSource->GetAsDouble(&f); // Check that double works.
|
||||
|
@ -1455,6 +1509,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
float f;
|
||||
rc = aSource->GetAsFloat(&f); // Check that float works.
|
||||
|
@ -1488,6 +1548,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRInt64 f;
|
||||
rc = aSource->GetAsInt64(&f); // Get as a long number.
|
||||
|
@ -1521,6 +1587,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRInt32 f;
|
||||
rc = aSource->GetAsInt32(&f); // Get as a long number.
|
||||
|
@ -1554,6 +1626,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRInt16 f;
|
||||
rc = aSource->GetAsInt16(&f); // Get as a long number.
|
||||
|
@ -1587,6 +1665,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRUint8 f;
|
||||
rc = aSource->GetAsInt8(&f); // Get as a long number.
|
||||
|
@ -1620,6 +1704,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRUint64 f;
|
||||
rc = aSource->GetAsUint64(&f); // Get as a long number.
|
||||
|
@ -1653,6 +1743,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRUint32 f;
|
||||
rc = aSource->GetAsUint32(&f); // Get as a long number.
|
||||
|
@ -1686,6 +1782,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRUint16 f;
|
||||
rc = aSource->GetAsUint16(&f); // Get as a long number.
|
||||
|
@ -1719,6 +1821,12 @@ NS_IMETHODIMP
|
|||
nsIDOMElement * aDestination,
|
||||
nsIDOMElement * *aReturnValue)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
NS_ENSURE_ARG_POINTER(aDestination);
|
||||
NS_ENSURE_ARG_POINTER(aReturnValue);
|
||||
*aReturnValue = nsnull;
|
||||
nsresult rc;
|
||||
PRUint8 f;
|
||||
rc = aSource->GetAsUint8(&f); // Get as a long number.
|
||||
|
@ -1747,6 +1855,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsCOMPtr < nsISOAPEncoding > encoding = aEncoding; // First, handle encoding redesignation, if any
|
||||
|
||||
{
|
||||
|
@ -1895,7 +2007,7 @@ NS_IMETHODIMP
|
|||
}
|
||||
}
|
||||
if (!decoder) {
|
||||
PRBool simple;
|
||||
PRBool simple = PR_TRUE;
|
||||
if (type) {
|
||||
nsresult rc = HasSimpleValue(type, &simple);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -1904,7 +2016,7 @@ NS_IMETHODIMP
|
|||
if (simple) {
|
||||
nsCOMPtr<nsIDOMElement> child;
|
||||
nsSOAPUtils::GetFirstChildElement(aSource, getter_AddRefs(child));
|
||||
simple = child == nsnull;
|
||||
simple = !child;
|
||||
}
|
||||
nsAutoString decodingKey;
|
||||
if (!simple) {
|
||||
|
@ -1933,7 +2045,11 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
PRBool simple;
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
PRBool simple = PR_TRUE;
|
||||
if (aSchemaType) {
|
||||
nsresult rc = HasSimpleValue(aSchemaType, &simple);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -1942,7 +2058,7 @@ NS_IMETHODIMP
|
|||
if (simple) {
|
||||
nsCOMPtr<nsIDOMElement> child;
|
||||
nsSOAPUtils::GetFirstChildElement(aSource, getter_AddRefs(child));
|
||||
simple = child == nsnull;
|
||||
simple = !child;
|
||||
}
|
||||
nsAutoString decodingKey;
|
||||
if (!simple) {
|
||||
|
@ -2031,11 +2147,11 @@ static nsresult DecodeStructParticle(nsISOAPEncoding* aEncoding, nsIDOMElement*
|
|||
return rc;
|
||||
nsSOAPUtils::GetNextSiblingElement(aElement, _retElement);
|
||||
}
|
||||
if (minOccurs == 0
|
||||
&& rc == NS_ERROR_NOT_AVAILABLE) // If we failed recoverably, but we were permitted to, then return success
|
||||
if (minOccurs == 0 && rc == NS_ERROR_NOT_AVAILABLE) { // If we failed recoverably, but we were permitted to, then return success
|
||||
*_retElement = aElement;
|
||||
NS_IF_ADDREF(*_retElement);
|
||||
rc = NS_OK;
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
case nsISchemaParticle::PARTICLE_TYPE_MODEL_GROUP:
|
||||
|
@ -2096,8 +2212,7 @@ static nsresult DecodeStructParticle(nsISOAPEncoding* aEncoding, nsIDOMElement*
|
|||
*_retElement = next;
|
||||
NS_IF_ADDREF(*_retElement);
|
||||
}
|
||||
if (minOccurs == 0
|
||||
&& rc == NS_ERROR_NOT_AVAILABLE) { // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
if (minOccurs == 0 && rc == NS_ERROR_NOT_AVAILABLE) { // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
*_retElement = aElement;
|
||||
NS_IF_ADDREF(*_retElement);
|
||||
rc = NS_OK;
|
||||
|
@ -2140,8 +2255,7 @@ static nsresult DecodeStructParticle(nsISOAPEncoding* aEncoding, nsIDOMElement*
|
|||
*_retElement = next;
|
||||
NS_IF_ADDREF(*_retElement);
|
||||
}
|
||||
if (minOccurs == 0
|
||||
&& rc == NS_ERROR_NOT_AVAILABLE) { // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
if (minOccurs == 0 && rc == NS_ERROR_NOT_AVAILABLE) { // If we succeeded or failed recoverably, but we were permitted to, then return success
|
||||
*_retElement = aElement;
|
||||
NS_IF_ADDREF(*_retElement);
|
||||
rc = NS_OK;
|
||||
|
@ -2157,7 +2271,7 @@ static nsresult DecodeStructParticle(nsISOAPEncoding* aEncoding, nsIDOMElement*
|
|||
}
|
||||
|
||||
nsCOMPtr<nsIDOMElement> child = aElement;
|
||||
while (child != nsnull) {
|
||||
while (child) {
|
||||
nsAutoString name;
|
||||
nsAutoString namespaceURI;
|
||||
nsCOMPtr<nsIVariant>value;
|
||||
|
@ -2192,6 +2306,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsresult rc;
|
||||
nsCOMPtr<nsISOAPPropertyBagMutator> mutator = do_CreateInstance(NS_SOAPPROPERTYBAGMUTATOR_CONTRACTID, &rc);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2237,6 +2355,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2278,7 +2400,7 @@ static PRUint32 DecodeArrayDimensions(const nsAString& src, PRInt32* aDimensionS
|
|||
src.EndReading(i2);
|
||||
if (src.IsEmpty()) return 0;
|
||||
while (i1 != i2 // Loop past white space
|
||||
&& *(--i2) <= ' ')
|
||||
&& *(--i2) <= ' ') // In XML, all valid characters <= space are the only whitespace
|
||||
;
|
||||
if (*i2 != ']') { // In this case, not an array dimension
|
||||
int len = Distance(i1, i2) - 1; // This is the size to truncate to at the end.
|
||||
|
@ -2303,7 +2425,7 @@ static PRUint32 DecodeArrayDimensions(const nsAString& src, PRInt32* aDimensionS
|
|||
{
|
||||
nsReadingIterator < PRUnichar > i3 = i2++; // Cover any extra white space
|
||||
while (i1 != i3) { // Loop past white space
|
||||
if (*(--i3) > ' ') {
|
||||
if (*(--i3) > ' ') { // In XML, all valid characters <= space are the only whitespace
|
||||
i3++;
|
||||
break;
|
||||
}
|
||||
|
@ -2328,7 +2450,7 @@ static PRUint32 DecodeArrayDimensions(const nsAString& src, PRInt32* aDimensionS
|
|||
PRUnichar c = *(i1++);
|
||||
if (c < '0' || c > '9') {
|
||||
// There may be slightly more to do here if alternative radixes are supported.
|
||||
if (c <= ' ') { // Accept anything < space as whitespace
|
||||
if (c <= ' ') { // In XML, all valid characters <= space are the only whitespace
|
||||
if (aDimensionSizes[dimensionCount] >= 0) {
|
||||
finished = PR_TRUE;
|
||||
}
|
||||
|
@ -2388,8 +2510,9 @@ static PRInt32 DecodeArrayPosition(const nsAString& src, PRUint32 aDimensionCoun
|
|||
if (++i < aDimensionCount) // Multiply for next round.
|
||||
result = result * aDimensionSizes[i];
|
||||
else
|
||||
return result;
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2411,6 +2534,8 @@ static nsresult CreateArray(nsIWritableVariant* aResult, PRUint16 aType, const n
|
|||
PRUint32 size = aSizeof / count;
|
||||
PRInt32 i;
|
||||
nsIVariant** a = new nsIVariant*[count]; // Create variant array.
|
||||
if (!a)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
nsresult rc = NS_OK;
|
||||
|
||||
|
@ -2432,7 +2557,7 @@ static nsresult CreateArray(nsIWritableVariant* aResult, PRUint16 aType, const n
|
|||
for (i = 0; i < count; i++) { // Release variants for array
|
||||
nsIVariant* v = a[i];
|
||||
if (v)
|
||||
v->Release();
|
||||
NS_RELEASE(v);
|
||||
}
|
||||
delete[] a;
|
||||
return rc;
|
||||
|
@ -2450,6 +2575,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString ns;
|
||||
nsAutoString name;
|
||||
nsCOMPtr < nsISchemaType > schemaArrayType;
|
||||
|
@ -2761,7 +2890,7 @@ NS_IMETHODIMP
|
|||
}
|
||||
if (unhandled) { // Handle all the other cases
|
||||
DECODE_ARRAY(nsIVariant*,INTERFACE,&NS_GET_IID(nsIVariant),a[p] = v;,
|
||||
for (si = 0; si < size; si++) a[si]->Release(););
|
||||
for (si = 0; si < size; si++) NS_RELEASE(a[si]););
|
||||
}
|
||||
if (NS_FAILED(rc))\
|
||||
return rc;
|
||||
|
@ -2777,6 +2906,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2800,6 +2933,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2815,7 +2952,9 @@ NS_IMETHODIMP
|
|||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_BOOLEAN","Illegal value discovered for boolean");
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsBool(b);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -2829,6 +2968,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2840,7 +2983,9 @@ NS_IMETHODIMP
|
|||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_DOUBLE","Illegal value discovered for double");
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsDouble(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -2854,6 +2999,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2863,10 +3012,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %f %n", &f, &n);
|
||||
if (r == 0 || n < value.Length())
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_FLOAT","Illegal value discovered for float");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsFloat(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -2880,6 +3030,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2889,10 +3043,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %lld %n", &f, &n);
|
||||
if (r == 0 || n < value.Length())
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_LONG","Illegal value discovered for long");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsInt64(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -2906,6 +3061,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2915,10 +3074,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %ld %n", &f, &n);
|
||||
if (r == 0 || n < value.Length())
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_INT","Illegal value discovered for int");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsInt32(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -2932,6 +3092,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2941,10 +3105,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %hd %n", &f, &n);
|
||||
if (r == 0 || n < value.Length())
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_SHORT","Illegal value discovered for short");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsInt16(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -2958,6 +3123,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2967,10 +3136,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %hd %n", &f, &n);
|
||||
if (r == 0 || n < value.Length() || f < -128 || f > 127)
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_BYTE","Illegal value discovered for byte");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsInt8((PRUint8) f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -2984,6 +3154,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -2993,10 +3167,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %llu %n", &f, &n);
|
||||
if (r == 0 || n < value.Length())
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_ULONG","Illegal value discovered for unsigned long");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsUint64(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -3010,6 +3185,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -3019,10 +3198,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %lu %n", &f, &n);
|
||||
if (r == 0 || n < value.Length())
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_UINT","Illegal value discovered for unsigned int");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsUint32(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -3036,6 +3216,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -3045,10 +3229,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %hu %n", &f, &n);
|
||||
if (r == 0 || n < value.Length())
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_USHORT","Illegal value discovered for unsigned short");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsUint16(f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
@ -3062,6 +3247,10 @@ NS_IMETHODIMP
|
|||
nsISOAPAttachments * aAttachments,
|
||||
nsIVariant ** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEncoding);
|
||||
NS_ENSURE_ARG_POINTER(aSource);
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
*_retval = nsnull;
|
||||
nsAutoString value;
|
||||
nsresult rc = nsSOAPUtils::GetElementTextContent(aSource, value);
|
||||
if (NS_FAILED(rc))
|
||||
|
@ -3071,10 +3260,11 @@ NS_IMETHODIMP
|
|||
int r = PR_sscanf(NS_ConvertUCS2toUTF8(value).get(), " %hu %n", &f, &n);
|
||||
if (r == 0 || n < value.Length() || f > 255)
|
||||
return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,"SOAP_ILLEGAL_UBYTE","Illegal value discovered for unsigned byte");
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID);
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID,&rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsUint8((PRUint8) f);
|
||||
*_retval = p;
|
||||
NS_ADDREF(*_retval);
|
||||
|
|
|
@ -355,6 +355,7 @@ nsHTTPSOAPTransportCompletion::~nsHTTPSOAPTransportCompletion()
|
|||
/* readonly attribute nsISOAPCall call; */
|
||||
NS_IMETHODIMP nsHTTPSOAPTransportCompletion::GetCall(nsISOAPCall * *aCall)
|
||||
{
|
||||
NS_ENSURE_ARG(aCall);
|
||||
*aCall = mCall;
|
||||
NS_IF_ADDREF(*aCall);
|
||||
return NS_OK;
|
||||
|
@ -365,6 +366,7 @@ NS_IMETHODIMP
|
|||
nsHTTPSOAPTransportCompletion::GetResponse(nsISOAPResponse *
|
||||
*aResponse)
|
||||
{
|
||||
NS_ENSURE_ARG(aResponse);
|
||||
*aResponse =
|
||||
mRequest ? (nsCOMPtr < nsISOAPResponse >) nsnull : mResponse;
|
||||
NS_IF_ADDREF(*aResponse);
|
||||
|
@ -376,6 +378,7 @@ NS_IMETHODIMP
|
|||
nsHTTPSOAPTransportCompletion::GetListener(nsISOAPResponseListener *
|
||||
*aListener)
|
||||
{
|
||||
NS_ENSURE_ARG(aListener);
|
||||
*aListener = mListener;
|
||||
NS_IF_ADDREF(*aListener);
|
||||
return NS_OK;
|
||||
|
@ -385,6 +388,7 @@ NS_IMETHODIMP
|
|||
NS_IMETHODIMP
|
||||
nsHTTPSOAPTransportCompletion::GetIsComplete(PRBool * aIsComplete)
|
||||
{
|
||||
NS_ENSURE_ARG(aIsComplete);
|
||||
*aIsComplete = mRequest == nsnull;
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -392,6 +396,7 @@ NS_IMETHODIMP
|
|||
/* boolean abort (); */
|
||||
NS_IMETHODIMP nsHTTPSOAPTransportCompletion::Abort(PRBool * _retval)
|
||||
{
|
||||
NS_ENSURE_ARG(_retval);
|
||||
if (mRequest) {
|
||||
if (NS_SUCCEEDED(mRequest->Abort())) {
|
||||
*_retval = PR_TRUE;
|
||||
|
@ -406,6 +411,7 @@ NS_IMETHODIMP nsHTTPSOAPTransportCompletion::Abort(PRBool * _retval)
|
|||
NS_IMETHODIMP
|
||||
nsHTTPSOAPTransportCompletion::HandleEvent(nsIDOMEvent * aEvent)
|
||||
{
|
||||
NS_ENSURE_ARG(aEvent);
|
||||
// PRUint32 status;
|
||||
nsresult rv = NS_OK;
|
||||
if (mRequest) { // Avoid if it has been aborted.
|
||||
|
@ -441,6 +447,7 @@ NS_IMETHODIMP
|
|||
nsISOAPCallCompletion ** aCompletion)
|
||||
{
|
||||
NS_ENSURE_ARG(aCall);
|
||||
NS_ENSURE_ARG(aCompletion);
|
||||
|
||||
nsresult rv;
|
||||
nsCOMPtr < nsIXMLHttpRequest > request;
|
||||
|
|
|
@ -87,6 +87,7 @@ NS_IMETHODIMP nsSOAPBlock::GetNamespaceURI(nsAString & aNamespaceURI)
|
|||
|
||||
NS_IMETHODIMP nsSOAPBlock::SetNamespaceURI(const nsAString & aNamespaceURI)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(&aNamespaceURI);
|
||||
nsresult rc = SetElement(nsnull);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
|
@ -108,6 +109,7 @@ NS_IMETHODIMP nsSOAPBlock::GetName(nsAString & aName)
|
|||
|
||||
NS_IMETHODIMP nsSOAPBlock::SetName(const nsAString & aName)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(&aName);
|
||||
nsresult rc = SetElement(nsnull);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
|
|
|
@ -70,8 +70,8 @@ protected:
|
|||
nsCOMPtr < nsIDOMElement > mElement;
|
||||
nsCOMPtr < nsIVariant > mValue;
|
||||
nsresult mStatus;
|
||||
PRBool mComputeValue;
|
||||
PRBool mVersion;
|
||||
PRPackedBool mComputeValue;
|
||||
PRPackedBool mVersion;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -167,6 +167,7 @@ NS_IMETHODIMP
|
|||
nsSOAPCall::AsyncInvoke(nsISOAPResponseListener * listener,
|
||||
nsISOAPCallCompletion ** aCompletion)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aCompletion);
|
||||
nsresult rv;
|
||||
nsCOMPtr < nsISOAPTransport > transport;
|
||||
|
||||
|
|
|
@ -334,7 +334,7 @@ NS_IMETHODIMP
|
|||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
nsStringKey nameKey(aKey);
|
||||
*_retval = (nsISOAPEncoder *) mEncoders->Get(&nameKey);
|
||||
if (*_retval == nsnull && mDefaultEncoding != nsnull) {
|
||||
if (*_retval == nsnull && mDefaultEncoding) {
|
||||
return mDefaultEncoding->GetEncoder(aKey, _retval);
|
||||
}
|
||||
return NS_OK;
|
||||
|
@ -365,7 +365,7 @@ NS_IMETHODIMP
|
|||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
nsStringKey nameKey(aKey);
|
||||
*_retval = (nsISOAPDecoder *) mDecoders->Get(&nameKey);
|
||||
if (*_retval == nsnull && mDefaultEncoding != nsnull) {
|
||||
if (*_retval == nsnull && mDefaultEncoding) {
|
||||
return mDefaultEncoding->GetDecoder(aKey, _retval);
|
||||
}
|
||||
return NS_OK;
|
||||
|
@ -462,45 +462,49 @@ NS_IMETHODIMP
|
|||
/* boolean mapSchemaURI (in AString aExternalURI, in AString aInternalURI, in boolean aOutput); */
|
||||
NS_IMETHODIMP nsSOAPEncoding::MapSchemaURI(const nsAString & aExternalURI, const nsAString & aInternalURI, PRBool aOutput, PRBool *_retval)
|
||||
{
|
||||
if (aExternalURI.IsEmpty() || aInternalURI.IsEmpty()) // Permit no empty URIs.
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
nsStringKey externalKey(aExternalURI);
|
||||
if (mMappedExternal->Exists(&externalKey)) {
|
||||
*_retval = PR_FALSE; // Do not permit duplicate external
|
||||
NS_ENSURE_ARG_POINTER(&aExternalURI);
|
||||
NS_ENSURE_ARG_POINTER(&aInternalURI);
|
||||
if (aExternalURI.IsEmpty() || aInternalURI.IsEmpty()) // Permit no empty URIs.
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
nsStringKey externalKey(aExternalURI);
|
||||
if (mMappedExternal->Exists(&externalKey)) {
|
||||
*_retval = PR_FALSE; // Do not permit duplicate external
|
||||
return NS_OK;
|
||||
}
|
||||
if (aOutput) {
|
||||
nsStringKey internalKey(aInternalURI);
|
||||
if (mMappedInternal->Exists(&internalKey)) {
|
||||
*_retval = PR_FALSE; // Do not permit duplicate internal
|
||||
return NS_OK;
|
||||
}
|
||||
if (aOutput) {
|
||||
nsStringKey internalKey(aInternalURI);
|
||||
if (mMappedInternal->Exists(&internalKey)) {
|
||||
*_retval = PR_FALSE; // Do not permit duplicate internal
|
||||
return NS_OK;
|
||||
}
|
||||
nsresult rc;
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID, &rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsAString(aExternalURI);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
mMappedInternal->Put(&internalKey, p);
|
||||
}
|
||||
nsresult rc;
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID, &rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsAString(aInternalURI);
|
||||
p->SetAsAString(aExternalURI);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
mMappedExternal->Put(&externalKey, p);
|
||||
mMappedInternal->Put(&internalKey, p);
|
||||
}
|
||||
nsresult rc;
|
||||
nsCOMPtr < nsIWritableVariant > p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID, &rc);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
p->SetAsAString(aInternalURI);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
mMappedExternal->Put(&externalKey, p);
|
||||
if (_retval)
|
||||
*_retval = PR_TRUE;
|
||||
return NS_OK;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* boolean unmapSchemaURI (in AString aExternalURI); */
|
||||
NS_IMETHODIMP nsSOAPEncoding::UnmapSchemaURI(const nsAString & aExternalURI, PRBool *_retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(&aExternalURI);
|
||||
nsStringKey externalKey(aExternalURI);
|
||||
nsCOMPtr<nsIVariant> internal = dont_AddRef(NS_STATIC_CAST(nsIVariant*,mMappedExternal->Get(&externalKey)));
|
||||
if (internal) {
|
||||
|
@ -511,10 +515,12 @@ NS_IMETHODIMP nsSOAPEncoding::UnmapSchemaURI(const nsAString & aExternalURI, PRB
|
|||
nsStringKey internalKey(internalstr);
|
||||
mMappedExternal->Remove(&externalKey);
|
||||
mMappedInternal->Remove(&internalKey);
|
||||
*_retval = PR_TRUE;
|
||||
if (_retval)
|
||||
*_retval = PR_TRUE;
|
||||
}
|
||||
else {
|
||||
*_retval = PR_FALSE;
|
||||
if (_retval)
|
||||
*_retval = PR_FALSE;
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -522,6 +528,8 @@ NS_IMETHODIMP nsSOAPEncoding::UnmapSchemaURI(const nsAString & aExternalURI, PRB
|
|||
/* AString getInternalSchemaURI (in AString aExternalURI); */
|
||||
NS_IMETHODIMP nsSOAPEncoding::GetInternalSchemaURI(const nsAString & aExternalURI, nsAString & _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(&aExternalURI);
|
||||
NS_ENSURE_ARG_POINTER(&_retval);
|
||||
if (mMappedExternal->Count()) {
|
||||
nsStringKey externalKey(aExternalURI);
|
||||
nsCOMPtr<nsIVariant> internal = dont_AddRef(NS_STATIC_CAST(nsIVariant*,mMappedExternal->Get(&externalKey)));
|
||||
|
@ -539,6 +547,8 @@ NS_IMETHODIMP nsSOAPEncoding::GetInternalSchemaURI(const nsAString & aExternalUR
|
|||
/* AString getExternalSchemaURI (in AString aInternalURI); */
|
||||
NS_IMETHODIMP nsSOAPEncoding::GetExternalSchemaURI(const nsAString & aInternalURI, nsAString & _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(&aInternalURI);
|
||||
NS_ENSURE_ARG_POINTER(&_retval);
|
||||
if (mMappedInternal->Count()) {
|
||||
nsStringKey internalKey(aInternalURI);
|
||||
nsCOMPtr<nsIVariant> external = dont_AddRef(NS_STATIC_CAST(nsIVariant*,mMappedInternal->Get(&internalKey)));
|
||||
|
|
|
@ -168,6 +168,7 @@ static NS_NAMED_LITERAL_STRING(kErrorSeperator3, ", caused by ");
|
|||
NS_IMETHODIMP
|
||||
nsSOAPException::ToString(char **_retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
nsAutoString s;
|
||||
s.Append(mName);
|
||||
s.Append(kErrorSeperator1);
|
||||
|
|
|
@ -177,7 +177,6 @@ NS_IMETHODIMP nsSOAPFault::GetDetail(nsIDOMElement * *aDetail)
|
|||
if (!mFaultElement)
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
||||
nsCOMPtr < nsIDOMElement > element;
|
||||
nsSOAPUtils::GetSpecificChildElement(nsnull, mFaultElement,
|
||||
kEmpty,
|
||||
nsSOAPUtils::kFaultDetailTagName,
|
||||
|
|
|
@ -118,6 +118,7 @@ NS_IMETHODIMP nsSOAPMessage::GetEnvelope(nsIDOMElement * *aEnvelope)
|
|||
/* readonly attribute PRUint16 version; */
|
||||
NS_IMETHODIMP nsSOAPMessage::GetVersion(PRUint16 * aVersion)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aVersion);
|
||||
if (mMessage) {
|
||||
nsCOMPtr < nsIDOMElement > root;
|
||||
mMessage->GetDocumentElement(getter_AddRefs(root));
|
||||
|
@ -152,6 +153,7 @@ NS_IMETHODIMP nsSOAPMessage::GetVersion(PRUint16 * aVersion)
|
|||
/* Internal method for getting envelope and version */
|
||||
PRUint16 nsSOAPMessage::GetEnvelopeWithVersion(nsIDOMElement * *aEnvelope)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aEnvelope);
|
||||
if (mMessage) {
|
||||
nsCOMPtr < nsIDOMElement > root;
|
||||
mMessage->GetDocumentElement(getter_AddRefs(root));
|
||||
|
@ -226,6 +228,7 @@ NS_IMETHODIMP nsSOAPMessage::GetActionURI(nsAString & aActionURI)
|
|||
|
||||
NS_IMETHODIMP nsSOAPMessage::SetActionURI(const nsAString & aActionURI)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(&aActionURI);
|
||||
mActionURI.Assign(aActionURI);
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -292,6 +295,8 @@ NS_IMETHODIMP
|
|||
PRUint32 aParameterCount,
|
||||
nsISOAPParameter ** aParameters)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(&aMethodName);
|
||||
NS_ENSURE_ARG_POINTER(&aTargetObjectURI);
|
||||
if (aVersion != nsISOAPMessage::VERSION_1_1
|
||||
&& aVersion != nsISOAPMessage::VERSION_1_2)
|
||||
return NS_ERROR_ILLEGAL_VALUE;
|
||||
|
@ -360,22 +365,19 @@ NS_IMETHODIMP
|
|||
rv = GetHeader(getter_AddRefs(parent));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
nsCOMPtr < nsISupports > next;
|
||||
nsCOMPtr < nsISOAPHeaderBlock > header;
|
||||
nsCOMPtr < nsIDOMElement > element;
|
||||
nsCOMPtr < nsISchemaType > schemaType;
|
||||
nsCOMPtr < nsIVariant > value;
|
||||
nsAutoString name;
|
||||
nsAutoString namespaceURI;
|
||||
nsAutoString actorURI;
|
||||
PRBool mustUnderstand;
|
||||
for (PRUint32 i = 0; i < aHeaderBlockCount; i++) {
|
||||
PRUint32 i;
|
||||
for (i = 0; i < aHeaderBlockCount; i++) {
|
||||
header = aHeaderBlocks[i];
|
||||
if (!header)
|
||||
return NS_ERROR_FAILURE;
|
||||
rv = header->GetElement(getter_AddRefs(element));
|
||||
if (element) {
|
||||
nsCOMPtr < nsIDOMNode > node1 = (nsIDOMElement *) element;
|
||||
nsCOMPtr < nsIDOMNode > node1;
|
||||
node1 = element;
|
||||
nsCOMPtr < nsIDOMNode > node2;
|
||||
rv = mMessage->ImportNode(node1, PR_TRUE, getter_AddRefs(node1));
|
||||
if (NS_FAILED(rv))
|
||||
|
@ -391,9 +393,11 @@ NS_IMETHODIMP
|
|||
rv = header->GetName(name);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
nsAutoString actorURI;
|
||||
rv = header->GetActorURI(actorURI);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
PRBool mustUnderstand;
|
||||
rv = header->GetMustUnderstand(&mustUnderstand);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
@ -405,9 +409,11 @@ NS_IMETHODIMP
|
|||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
}
|
||||
nsCOMPtr < nsISchemaType > schemaType;
|
||||
rv = header->GetSchemaType(getter_AddRefs(schemaType));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
nsCOMPtr < nsIVariant > value;
|
||||
rv = header->GetValue(getter_AddRefs(value));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
@ -463,21 +469,20 @@ NS_IMETHODIMP
|
|||
}
|
||||
// Encode and add all of the parameters into the body
|
||||
|
||||
nsCOMPtr < nsISupports > next;
|
||||
nsCOMPtr < nsISOAPParameter > param;
|
||||
nsCOMPtr < nsIDOMElement > element;
|
||||
nsCOMPtr < nsISOAPEncoding > newencoding;
|
||||
nsCOMPtr < nsISchemaType > schemaType;
|
||||
nsCOMPtr < nsIVariant > value;
|
||||
nsAutoString name;
|
||||
nsAutoString namespaceURI;
|
||||
for (PRUint32 i = 0; i < aParameterCount; i++) {
|
||||
PRUint32 i;
|
||||
for (i = 0; i < aParameterCount; i++) {
|
||||
param = aParameters[i];
|
||||
if (!param)
|
||||
return NS_ERROR_FAILURE;
|
||||
rv = param->GetElement(getter_AddRefs(element));
|
||||
if (element) {
|
||||
nsCOMPtr < nsIDOMNode > node1 = (nsIDOMElement *) element;
|
||||
nsCOMPtr < nsIDOMNode > node1;
|
||||
node1 = element;
|
||||
nsCOMPtr < nsIDOMNode > node2;
|
||||
rv = mMessage->ImportNode(node1, PR_TRUE, getter_AddRefs(node1));
|
||||
if (NS_FAILED(rv))
|
||||
|
@ -499,9 +504,11 @@ NS_IMETHODIMP
|
|||
if (!newencoding) {
|
||||
newencoding = encoding;
|
||||
}
|
||||
nsCOMPtr < nsISchemaType > schemaType;
|
||||
rv = param->GetSchemaType(getter_AddRefs(schemaType));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
nsCOMPtr < nsIVariant > value;
|
||||
rv = param->GetValue(getter_AddRefs(value));
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
|
@ -587,7 +594,8 @@ NS_IMETHODIMP
|
|||
nsSOAPMessage::GetHeaderBlocks(PRUint32 * aCount,
|
||||
nsISOAPHeaderBlock *** aHeaderBlocks)
|
||||
{
|
||||
nsCOMPtr < nsIMemory > memory = do_GetService(kMemoryCID);
|
||||
NS_ENSURE_ARG_POINTER(aHeaderBlocks);
|
||||
nsISOAPHeaderBlock** headerBlocks = nsnull;
|
||||
*aCount = 0;
|
||||
*aHeaderBlocks = nsnull;
|
||||
int count = 0;
|
||||
|
@ -609,36 +617,50 @@ NS_IMETHODIMP
|
|||
while (next) {
|
||||
if (length == count) {
|
||||
length = length ? 2 * length : 10;
|
||||
*aHeaderBlocks =
|
||||
(nsISOAPHeaderBlock * *)memory->Realloc(*aHeaderBlocks,
|
||||
headerBlocks =
|
||||
(nsISOAPHeaderBlock * *)nsMemory::Realloc(headerBlocks,
|
||||
length *
|
||||
sizeof(**aHeaderBlocks));
|
||||
sizeof(*headerBlocks));
|
||||
}
|
||||
element = next;
|
||||
header = do_CreateInstance(NS_SOAPHEADERBLOCK_CONTRACTID);
|
||||
if (!header)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
if (!header) {
|
||||
rv = NS_ERROR_OUT_OF_MEMORY;
|
||||
break;
|
||||
}
|
||||
header->Init(nsnull, version);
|
||||
|
||||
(*aHeaderBlocks)[(*aCount)] = header;
|
||||
NS_ADDREF((*aHeaderBlocks)[(*aCount)]);
|
||||
(*aCount)++;
|
||||
(headerBlocks)[(count)] = header;
|
||||
NS_ADDREF((headerBlocks)[(count)]);
|
||||
(count)++;
|
||||
|
||||
rv = header->SetElement(element);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
break;
|
||||
rv = header->SetEncoding(encoding);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
break;
|
||||
nsSOAPUtils::GetNextSiblingElement(element, getter_AddRefs(next));
|
||||
}
|
||||
if (*aCount) {
|
||||
*aHeaderBlocks =
|
||||
(nsISOAPHeaderBlock * *)memory->Realloc(*aHeaderBlocks,
|
||||
(*aCount) *
|
||||
sizeof(**aHeaderBlocks));
|
||||
if (!NS_FAILED(rv)) {
|
||||
if (count) {
|
||||
headerBlocks =
|
||||
(nsISOAPHeaderBlock * *)nsMemory::Realloc(headerBlocks,
|
||||
count *
|
||||
sizeof(*headerBlocks));
|
||||
}
|
||||
}
|
||||
return NS_OK;
|
||||
else {
|
||||
while (--count >= 0) {
|
||||
NS_IF_RELEASE(headerBlocks[count]);
|
||||
}
|
||||
count = 0;
|
||||
nsMemory::Free(headerBlocks);
|
||||
headerBlocks = nsnull;
|
||||
}
|
||||
*aCount = count;
|
||||
*aHeaderBlocks = headerBlocks;
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* void getParameters (in boolean aDocumentStyle, out PRUint32 aCount, [array, size_is (aCount), retval] out nsISOAPParameter aParameters); */
|
||||
|
@ -646,7 +668,8 @@ NS_IMETHODIMP
|
|||
nsSOAPMessage::GetParameters(PRBool aDocumentStyle, PRUint32 * aCount,
|
||||
nsISOAPParameter *** aParameters)
|
||||
{
|
||||
nsCOMPtr < nsIMemory > memory = do_GetService(kMemoryCID);
|
||||
NS_ENSURE_ARG_POINTER(aParameters);
|
||||
nsISOAPParameter** parameters = nsnull;
|
||||
*aCount = 0;
|
||||
*aParameters = nsnull;
|
||||
int count = 0;
|
||||
|
@ -672,35 +695,54 @@ NS_IMETHODIMP
|
|||
while (next) {
|
||||
if (length == count) {
|
||||
length = length ? 2 * length : 10;
|
||||
*aParameters =
|
||||
(nsISOAPParameter * *)memory->Realloc(*aParameters,
|
||||
parameters =
|
||||
(nsISOAPParameter * *)nsMemory::Realloc(parameters,
|
||||
length *
|
||||
sizeof(**aParameters));
|
||||
sizeof(*parameters));
|
||||
}
|
||||
element = next;
|
||||
param = do_CreateInstance(NS_SOAPPARAMETER_CONTRACTID);
|
||||
if (!param)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
(*aParameters)[(*aCount)] = param;
|
||||
NS_ADDREF((*aParameters)[(*aCount)]);
|
||||
(*aCount)++;
|
||||
if (!param) {
|
||||
rv = NS_ERROR_OUT_OF_MEMORY;
|
||||
break;
|
||||
}
|
||||
parameters[count] = param;
|
||||
NS_ADDREF(parameters[count]);
|
||||
count++;
|
||||
|
||||
rv = param->SetElement(element);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
break;
|
||||
rv = param->SetEncoding(encoding);
|
||||
if (NS_FAILED(rv))
|
||||
return rv;
|
||||
break;
|
||||
nsSOAPUtils::GetNextSiblingElement(element, getter_AddRefs(next));
|
||||
}
|
||||
if (*aCount) {
|
||||
*aParameters =
|
||||
(nsISOAPParameter * *)memory->Realloc(*aParameters,
|
||||
(*aCount) *
|
||||
sizeof(**aParameters));
|
||||
if (!NS_FAILED(rv)) {
|
||||
if (count) {
|
||||
parameters =
|
||||
(nsISOAPParameter * *)nsMemory::Realloc(parameters,
|
||||
count *
|
||||
sizeof(*parameters));
|
||||
}
|
||||
}
|
||||
return NS_OK;
|
||||
else {
|
||||
while (--count >= 0) {
|
||||
NS_IF_RELEASE(parameters[count]);
|
||||
}
|
||||
count = 0;
|
||||
nsMemory::Free(parameters);
|
||||
parameters = nsnull;
|
||||
}
|
||||
*aCount = count;
|
||||
*aParameters = parameters;
|
||||
if (count) {
|
||||
parameters =
|
||||
(nsISOAPParameter * *)nsMemory::Realloc(parameters,
|
||||
count *
|
||||
sizeof(*parameters));
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* attribute nsISOAPEncoding encoding; */
|
||||
|
|
|
@ -145,7 +145,7 @@ NS_IMETHODIMP
|
|||
nsCOMPtr < nsIVariant > value =
|
||||
dont_AddRef(NS_STATIC_CAST
|
||||
(nsIVariant *, mProperties->Get(&nameKey)));
|
||||
if (value == nsnull)
|
||||
if (!value)
|
||||
return NS_OK;
|
||||
void *mark;
|
||||
jsval *argv = JS_PushArguments(cx, &mark, "%iv", value.get());
|
||||
|
|
|
@ -356,7 +356,7 @@ nsresult
|
|||
nsCOMPtr < nsIDOMNamedNodeMap > attrs;
|
||||
nsCOMPtr < nsIDOMNode > temp;
|
||||
nsAutoString value;
|
||||
while (current != nsnull) {
|
||||
while (current) {
|
||||
rc = current->GetAttributes(getter_AddRefs(attrs));
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
|
@ -365,7 +365,7 @@ nsresult
|
|||
getter_AddRefs(temp));
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
if (temp != nsnull) {
|
||||
if (temp) {
|
||||
rc = temp->GetNodeValue(result);
|
||||
if (NS_FAILED(rc))
|
||||
return rc;
|
||||
|
@ -572,7 +572,8 @@ PRBool nsSOAPUtils::GetAttribute(nsISOAPEncoding *aEncoding,
|
|||
rc = attrs->GetLength(&count);
|
||||
if (NS_FAILED(rc))
|
||||
return PR_FALSE;
|
||||
for (PRUint32 i = 0; i < count; i++) {
|
||||
PRUint32 i;
|
||||
for (i = 0; i < count; i++) {
|
||||
nsCOMPtr<nsIDOMNode> attrnode;
|
||||
rc = attrs->Item(i, getter_AddRefs(attrnode));
|
||||
if (NS_FAILED(rc))
|
||||
|
|
Загрузка…
Ссылка в новой задаче