You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Sanjiva Weerawarana <sa...@opensource.lk> on 2004/11/15 21:56:38 UTC

Re: [AXIS C++ 1.3] Bug in SoapDeSerializer::getBasicArray when there is more than one array

Wrong list :) .. pls post to axis-c-dev@ws.apache.org.

Sanjiva.

----- Original Message ----- 
From: <Ju...@fr.thalesgroup.com>
To: <ax...@ws.apache.org>
Sent: Monday, November 15, 2004 8:01 PM
Subject: RE: [AXIS C++ 1.3] Bug in SoapDeSerializer::getBasicArray when
there is more than one array


> The previous patch was not working when there is other type than array
> in the message. This one is better :
>
> diff -bBdNrw -U5 axis-c-src-1-3-linux/src/soap/SoapDeSerializer.cpp
> axis-c-src-1-3-linux.modif/src/soap/SoapDeSerializer.cpp
> --- axis-c-src-1-3-linux/src/soap/SoapDeSerializer.cpp 2004-10-22
> 14:50:49.000000000 +0200
> +++ axis-c-src-1-3-linux.modif/src/soap/SoapDeSerializer.cpp 2004-11-15
> 13:59:12.000000000 +0100
> @@ -726,10 +726,11 @@
>      free(Array.m_Array);\
>      Array.m_Array = 0;\
>      Array.m_Size = 0;\
>      return Array;\
>  }\
> +m_pNode = m_pParser->next(); /* skip end element node too */\
>  return Array;
>
>  #define DESERIALIZE_LITERAL_ARRAY_BLOCK(cpp_type, conv_func) \
>              Array.m_Array = malloc(sizeof(cpp_type)*INITIAL_ARRAY_SIZE);\
>              if (!Array.m_Array) return Array;\
> @@ -848,10 +849,11 @@
>                      free(Array.m_Array);
>                      Array.m_Array = 0;
>                      Array.m_Size = 0;
>                      return Array;
>                  }
> +                m_pNode = m_pParser->next(); /* skip end element node too
> */
>                  return Array;
>              case XSD_UNSIGNEDINT:
>                  DESERIALIZE_ENCODED_ARRAY_BLOCK(unsigned int,
CONV_STRTOUL)
>              case XSD_SHORT:
>                  DESERIALIZE_ENCODED_ARRAY_BLOCK(short, CONV_STRTOL)
>
> Best Regards.
> -- 
> Julien Lemoine
>