A bunch of minor fixes from Heikki's reviews. Passes my tests.

SOAP is not part of default build.
This commit is contained in:
rayw%netscape.com 2002-02-15 15:54:20 +00:00
Родитель fc2707491d
Коммит a85de4f437
22 изменённых файлов: 768 добавлений и 262 удалений

Просмотреть файл

@ -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))