NS_ENSURE_ARG_POINTER(_retval); *_retval = nsnull;
NS_ENSURE_ARG_POINTER(aResult); *aResult = nsnull;
nsBase64BinaryEncoder::Decode(nsISOAPEncoding * aEncoding,                              nsIDOMElement * aSource,                              nsISchemaType * aSchemaType,                              nsISOAPAttachments * aAttachments,                              nsIVariant ** _retval){  NS_ENSURE_ARG_POINTER(aEncoding);  NS_ENSURE_ARG_POINTER(aSource);  NS_ENSURE_ARG_POINTER(_retval);  *_retval = nsnull;  nsString value;  nsresult rv = nsSOAPUtils::GetElementTextContent(aSource, value);  NS_ENSURE_SUCCESS(rv, rv);  NS_LossyConvertUTF16toASCII valueStr(value);  valueStr.StripChars(" \n\r\t");  char* decodedVal = PL_Base64Decode(valueStr.get(), valueStr.Length(), nsnull);  if (!decodedVal) {    return SOAP_EXCEPTION(NS_ERROR_ILLEGAL_VALUE,                          "SOAP_ILLEGAL_BASE64",                          "Data cannot be decoded as Base64");  }  nsCOMPtr<nsIWritableVariant> p =     do_CreateInstance(NS_VARIANT_CONTRACTID, &rv);  if (NS_SUCCEEDED(rv)) {    rv = p->SetAsArray(nsIDataType::VTYPE_UINT8, nsnull,                       strlen(decodedVal), decodedVal);  }  PR_Free(decodedVal);  NS_ENSURE_SUCCESS(rv, rv);  NS_ADDREF(*_retval = p);  return NS_OK;}