You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2005/11/08 18:14:07 UTC

svn commit: r331849 - in /webservices/axis/trunk/c: include/axis/ include/axis/client/ src/cbindings/ src/cbindings/client/ src/common/ src/engine/client/ src/soap/ src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/li...

Author: dicka
Date: Tue Nov  8 09:13:51 2005
New Revision: 331849

URL: http://svn.apache.org/viewcvs?rev=331849&view=rev
Log:
Further updates to resolve Jira issue AXISCPP-149. 

Resolve compilation and runtime problems on Unix for arrays of simple types.

Modified:
    webservices/axis/trunk/c/include/axis/AxisUserAPI.hpp
    webservices/axis/trunk/c/include/axis/AxisWrapperAPI.hpp
    webservices/axis/trunk/c/include/axis/IWrapperSoapDeSerializer.hpp
    webservices/axis/trunk/c/include/axis/client/Call.hpp
    webservices/axis/trunk/c/src/cbindings/IWrapperSoapDeSerializerC.cpp
    webservices/axis/trunk/c/src/cbindings/client/CallC.cpp
    webservices/axis/trunk/c/src/common/AxisUserAPI.cpp
    webservices/axis/trunk/c/src/engine/client/Call.cpp
    webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp
    webservices/axis/trunk/c/src/soap/SoapDeSerializer.h
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java
    webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/ArraysClient.cpp
    webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/XSD_integerClient.cpp
    webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/XSD_stringClient.cpp

Modified: webservices/axis/trunk/c/include/axis/AxisUserAPI.hpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/include/axis/AxisUserAPI.hpp?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/include/axis/AxisUserAPI.hpp (original)
+++ webservices/axis/trunk/c/include/axis/AxisUserAPI.hpp Tue Nov  8 09:13:51 2005
@@ -331,7 +331,7 @@
     /**
      * Destructor
      */
-    virtual ~Axis_Array();
+    ~Axis_Array();
     
     /**
      * Clone the content of an existing Axis_Array
@@ -346,7 +346,7 @@
      * @param size of the array, including NULL entries.
      * @param type of data.
      */
-    void set(void* array, int size, const XSDTYPE type);
+    void set(void** array, int size, const XSDTYPE type);
     
     /**
      * Return a c-style array.
@@ -355,7 +355,7 @@
      * @param type, this will be updated with the type of the data returned.
      * @return c-style array of pointers to the array data.
      */
-    const void* get(int& size, XSDTYPE& type) const;
+    const void** get(int& size, XSDTYPE& type) const;
     
     /**
      * Clear the array, and it's data
@@ -366,7 +366,7 @@
     friend class SoapSerializer;
 
 protected:
-    void* m_Array; // Array of pointers to array elements
+    void** m_Array; // Array of pointers to array elements
     int m_Size; // Size of array
     XSDTYPE m_Type; // XSD datatype within this array
 };

Modified: webservices/axis/trunk/c/include/axis/AxisWrapperAPI.hpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/include/axis/AxisWrapperAPI.hpp?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/include/axis/AxisWrapperAPI.hpp (original)
+++ webservices/axis/trunk/c/include/axis/AxisWrapperAPI.hpp Tue Nov  8 09:13:51 2005
@@ -45,7 +45,7 @@
  * Function used to create a custom type. bArray is true if array of 
  * objects to be created. Then nSize is the size of that array.
  */
-typedef void* (* AXIS_OBJECT_CREATE_FUNCT)(void*, bool bArray, int nSize);
+typedef void* (* AXIS_OBJECT_CREATE_FUNCT)(void**, bool bArray, int nSize);
 
 /**
  * @fn AXIS_OBJECT_DELETE_FUNCT

Modified: webservices/axis/trunk/c/include/axis/IWrapperSoapDeSerializer.hpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/include/axis/IWrapperSoapDeSerializer.hpp?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/include/axis/IWrapperSoapDeSerializer.hpp (original)
+++ webservices/axis/trunk/c/include/axis/IWrapperSoapDeSerializer.hpp Tue Nov  8 09:13:51 2005
@@ -43,11 +43,11 @@
     virtual void* AXISCALL checkForFault(const AxisChar* pName, 
         const AxisChar* pNamespace)=0;
     /* Method used by wrappers to get a deserialized Array of complex types */
-    virtual Axis_Array AXISCALL getCmplxArray(void* pDZFunct, void* pCreFunct, 
+    virtual Axis_Array* AXISCALL getCmplxArray(void* pDZFunct, void* pCreFunct, 
         void* pDelFunct, void* pSizeFunct, const AxisChar* pName, 
         const AxisChar* pNamespace)=0;
     /* Method used by wrappers to get a deserialized Array of basic types */
-    virtual Axis_Array AXISCALL getBasicArray(XSDTYPE nType, 
+    virtual Axis_Array* AXISCALL getBasicArray(XSDTYPE nType, 
         const AxisChar* pName, const AxisChar* pNamespace)=0;
     /* Method used by wrappers to get a deserialized single object of 
      * complex type 

Modified: webservices/axis/trunk/c/include/axis/client/Call.hpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/include/axis/client/Call.hpp?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/include/axis/client/Call.hpp (original)
+++ webservices/axis/trunk/c/include/axis/client/Call.hpp Tue Nov  8 09:13:51 2005
@@ -337,11 +337,11 @@
     void* AXISCALL getCmplxObject(void* pDZFunct, void* pCreFunct,
         void* pDelFunct, const AxisChar* pName, const AxisChar* pNamespace);
     /* Method used by stubs to get a deserialized Array of complex types */
-    Axis_Array AXISCALL getCmplxArray(void* pDZFunct, void* pCreFunct,
+    Axis_Array* AXISCALL getCmplxArray(void* pDZFunct, void* pCreFunct,
         void* pDelFunct, void* pSizeFunct, const AxisChar* pName,
         const AxisChar* pNamespace);
     /* Method used by stubs to get a deserialized Array of basic types */
-    Axis_Array AXISCALL getBasicArray(XSDTYPE nType, const AxisChar* pName,
+    Axis_Array* AXISCALL getBasicArray(XSDTYPE nType, const AxisChar* pName,
         const AxisChar* pNamespace);
 
     int AXISCALL checkMessage(const AxisChar* pName,

Modified: webservices/axis/trunk/c/src/cbindings/IWrapperSoapDeSerializerC.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/cbindings/IWrapperSoapDeSerializerC.cpp?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/cbindings/IWrapperSoapDeSerializerC.cpp (original)
+++ webservices/axis/trunk/c/src/cbindings/IWrapperSoapDeSerializerC.cpp Tue Nov  8 09:13:51 2005
@@ -43,22 +43,22 @@
 	return dz->checkForFault(pName,pNamespace);
 }
 
-AXISC_STORAGE_CLASS_INFO Axisc_Array axiscGetCmplxArrayIWrapperSoapDeSerializer(AXISCHANDLE wrapperSoapDeSerializer, void * pDZFunct, 
+AXISC_STORAGE_CLASS_INFO Axisc_Array* axiscGetCmplxArrayIWrapperSoapDeSerializer(AXISCHANDLE wrapperSoapDeSerializer, void * pDZFunct, 
 	void * pCreFunct, void * pDelFunct, void * pSizeFunct, 
 	const AxiscChar * pName, const AxiscChar * pNamespace) {
 	IWrapperSoapDeSerializer *dz = (IWrapperSoapDeSerializer*)wrapperSoapDeSerializer;
 	// TODO: not implemented
-	Axisc_Array aa;
-	memset(&aa,0,sizeof(aa));
+	Axisc_Array* aa;
+	memset(aa,0,sizeof(aa));
 	return aa;
 }
 
-AXISC_STORAGE_CLASS_INFO Axisc_Array axiscGetBasicArrayIWrapperSoapDeSerializer(AXISCHANDLE wrapperSoapDeSerializer, AXISC_XSDTYPE nType, 
+AXISC_STORAGE_CLASS_INFO Axisc_Array* axiscGetBasicArrayIWrapperSoapDeSerializer(AXISCHANDLE wrapperSoapDeSerializer, AXISC_XSDTYPE nType, 
 	const AxiscChar * pName, const AxiscChar * pNamespace) {
 	IWrapperSoapDeSerializer *dz = (IWrapperSoapDeSerializer*)wrapperSoapDeSerializer;
 	// TODO: not implemented
-	Axisc_Array aa;
-	memset(&aa,0,sizeof(aa));
+	Axisc_Array* aa;
+	memset(aa,0,sizeof(aa));
 	return aa;
 }
 

Modified: webservices/axis/trunk/c/src/cbindings/client/CallC.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/cbindings/client/CallC.cpp?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/cbindings/client/CallC.cpp (original)
+++ webservices/axis/trunk/c/src/cbindings/client/CallC.cpp Tue Nov  8 09:13:51 2005
@@ -412,20 +412,20 @@
 	return c->getCmplxObject(pDZFunct,pCreFunct,pDelFunct,pName,pNamespace);
 }
 
-AXISC_STORAGE_CLASS_INFO Axisc_Array axiscGetCmplxArrayCall(AXISCHANDLE call, void * pDZFunct, 
+AXISC_STORAGE_CLASS_INFO Axisc_Array* axiscGetCmplxArrayCall(AXISCHANDLE call, void * pDZFunct, 
 	void * pCreFunct, void * pDelFunct, void * pSizeFunct, 
 	const AxiscChar * pName, const AxiscChar * pNamespace) {
 	//TODO: Unimplemented
-	Axisc_Array aa;
-	memset(&aa,0,sizeof(aa));
+	Axisc_Array* aa;
+	memset(aa,0,sizeof(aa));
 	return aa;
 }
 
-AXISC_STORAGE_CLASS_INFO Axisc_Array axiscGetBasicArrayCall(AXISCHANDLE call, AXISC_XSDTYPE nType, 
+AXISC_STORAGE_CLASS_INFO Axisc_Array* axiscGetBasicArrayCall(AXISCHANDLE call, AXISC_XSDTYPE nType, 
 	const AxiscChar * pName, const AxiscChar * pNamespace) {
 	//TODO: Unimplemented
-	Axisc_Array aa;
-	memset(&aa,0,sizeof(aa));
+	Axisc_Array* aa;
+	memset(aa,0,sizeof(aa));
 	return aa;
 }
 

Modified: webservices/axis/trunk/c/src/common/AxisUserAPI.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/common/AxisUserAPI.cpp?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/common/AxisUserAPI.cpp (original)
+++ webservices/axis/trunk/c/src/common/AxisUserAPI.cpp Tue Nov  8 09:13:51 2005
@@ -80,7 +80,7 @@
     set(original.m_Array, original.m_Size, original.m_Type);
 }
  
-void Axis_Array::set(void* array, int size, XSDTYPE type)
+void Axis_Array::set(void** array, int size, XSDTYPE type)
 {
     clear();
     m_Size = size;
@@ -92,13 +92,13 @@
     }
     else
     {
-        m_Array = new void*[m_Size]();
+        m_Array = new void*[m_Size];
     
         for (int count = 0 ; count < m_Size ; count++)
         {
-            if (((void**) array)[count] == NULL)
+            if ( array[count] == NULL)
             {
-                ((void**) m_Array)[count] = NULL;
+                m_Array[count] = NULL;
             }
             else
             {
@@ -160,79 +160,79 @@
                     }
                     case XSD_STRING:
                     {
-                        ((xsd__string*) m_Array)[count] = new char[strlen(((xsd__string*) array)[count])+1]();
+                        ((xsd__string*) m_Array)[count] = new char[strlen(((xsd__string*) array)[count])+1];
                         strcpy(((xsd__string*) m_Array)[count], ((xsd__string*) array)[count]);
                         break;
                     }
                     case XSD_NORMALIZEDSTRING:
                     {
-                        ((xsd__normalizedString*) m_Array)[count] = new char[strlen(((xsd__normalizedString*) array)[count])+1]();
+                        ((xsd__normalizedString*) m_Array)[count] = new char[strlen(((xsd__normalizedString*) array)[count])+1];
                         strcpy(((xsd__normalizedString*) m_Array)[count], ((xsd__normalizedString*) array)[count]);
                         break;
                     }
                     case XSD_TOKEN:
                     {
-                        ((xsd__token*) m_Array)[count] = new char[strlen(((xsd__token*) array)[count])+1]();
+                        ((xsd__token*) m_Array)[count] = new char[strlen(((xsd__token*) array)[count])+1];
                         strcpy(((xsd__token*) m_Array)[count], ((xsd__token*) array)[count]);
                         break;
                     }
                     case XSD_LANGUAGE:
                     {
-                        ((xsd__language*) m_Array)[count] = new char[strlen(((xsd__language*) array)[count])+1]();
+                        ((xsd__language*) m_Array)[count] = new char[strlen(((xsd__language*) array)[count])+1];
                         strcpy(((xsd__language*) m_Array)[count], ((xsd__language*) array)[count]);
                         break;
                     }
                     case XSD_NAME:
                     {
-                        ((xsd__Name*) m_Array)[count] = new char[strlen(((xsd__Name*) array)[count])+1]();
+                        ((xsd__Name*) m_Array)[count] = new char[strlen(((xsd__Name*) array)[count])+1];
                         strcpy(((xsd__Name*) m_Array)[count], ((xsd__Name*) array)[count]);
                         break;
                     }
                     case XSD_NCNAME:
                     {
-                        ((xsd__NCName*) m_Array)[count] = new char[strlen(((xsd__NCName*) array)[count])+1]();
+                        ((xsd__NCName*) m_Array)[count] = new char[strlen(((xsd__NCName*) array)[count])+1];
                         strcpy(((xsd__NCName*) m_Array)[count], ((xsd__NCName*) array)[count]);
                         break;
                     }
                     case XSD_ID:
                     {
-                        ((xsd__ID*) m_Array)[count] = new char[strlen(((xsd__ID*) array)[count])+1]();
+                        ((xsd__ID*) m_Array)[count] = new char[strlen(((xsd__ID*) array)[count])+1];
                         strcpy(((xsd__ID*) m_Array)[count], ((xsd__ID*) array)[count]);
                         break;
                     }
                     case XSD_IDREF:
                     {
-                        ((xsd__IDREF*) m_Array)[count] = new char[strlen(((xsd__IDREF*) array)[count])+1]();
+                        ((xsd__IDREF*) m_Array)[count] = new char[strlen(((xsd__IDREF*) array)[count])+1];
                         strcpy(((xsd__IDREF*) m_Array)[count], ((xsd__IDREF*) array)[count]);
                         break;
                     }
                     case XSD_IDREFS:
                     {
-                        ((xsd__IDREFS*) m_Array)[count] = new char[strlen(((xsd__IDREFS*) array)[count])+1]();
+                        ((xsd__IDREFS*) m_Array)[count] = new char[strlen(((xsd__IDREFS*) array)[count])+1];
                         strcpy(((xsd__IDREFS*) m_Array)[count], ((xsd__IDREFS*) array)[count]);
                         break;
                     }
                     case XSD_ENTITY:
                     {
-                        ((xsd__ENTITY*) m_Array)[count] = new char[strlen(((xsd__ENTITY*) array)[count])+1]();
+                        ((xsd__ENTITY*) m_Array)[count] = new char[strlen(((xsd__ENTITY*) array)[count])+1];
                         strcpy(((xsd__ENTITY*) m_Array)[count], ((xsd__ENTITY*) array)[count]);
                         break;
                     }
                     case XSD_ENTITIES:
                     {
-                        ((xsd__ENTITIES*) m_Array)[count] = new char[strlen(((xsd__ENTITIES*) array)[count])+1]();
+                        ((xsd__ENTITIES*) m_Array)[count] = new char[strlen(((xsd__ENTITIES*) array)[count])+1];
                         strcpy(((xsd__ENTITIES*) m_Array)[count], ((xsd__ENTITIES*) array)[count]);
                         break;
                     }
                     case XSD_NMTOKEN:
                     {
-                        ((xsd__NMTOKEN*) m_Array)[count] = new char[strlen(((xsd__NMTOKEN*) array)[count])+1]();
+                        ((xsd__NMTOKEN*) m_Array)[count] = new char[strlen(((xsd__NMTOKEN*) array)[count])+1];
                         strcpy(((xsd__NMTOKEN*) m_Array)[count], ((xsd__NMTOKEN*) array)[count]);
                         break;
                     }
                     case XSD_NMTOKENS:
                     {
-                        ((xsd__NMTOKENS*) m_Array)[count] = new char[strlen(((xsd__NMTOKENS*) array)[count])+1]();
+                        ((xsd__NMTOKENS*) m_Array)[count] = new char[strlen(((xsd__NMTOKENS*) array)[count])+1];
                         strcpy(((xsd__NMTOKENS*) m_Array)[count], ((xsd__NMTOKENS*) array)[count]);
                         break;
                     }
@@ -362,19 +362,19 @@
                     }
                     case XSD_ANYURI:
                     {
-                        ((xsd__anyURI*) m_Array)[count] = new char[strlen(((xsd__anyURI*) array)[count])+1]();
+                        ((xsd__anyURI*) m_Array)[count] = new char[strlen(((xsd__anyURI*) array)[count])+1];
                         strcpy(((xsd__anyURI*) m_Array)[count], ((xsd__anyURI*) array)[count]);
                         break;
                     }
                     case XSD_QNAME:
                     {
-                        ((xsd__QName*) m_Array)[count] = new char[strlen(((xsd__QName*) array)[count])+1]();
+                        ((xsd__QName*) m_Array)[count] = new char[strlen(((xsd__QName*) array)[count])+1];
                         strcpy(((xsd__QName*) m_Array)[count], ((xsd__QName*) array)[count]);
                         break;
                     }
                     case XSD_NOTATION:
                     {
-                        ((xsd__NOTATION*) m_Array)[count] = new char[strlen(((xsd__NOTATION*) array)[count])+1]();
+                        ((xsd__NOTATION*) m_Array)[count] = new char[strlen(((xsd__NOTATION*) array)[count])+1];
                         strcpy(((xsd__NOTATION*) m_Array)[count], ((xsd__NOTATION*) array)[count]);
                         break;
                     }
@@ -397,11 +397,11 @@
     }
 }
 
-const void* Axis_Array::get(int& size, XSDTYPE& type) const
+const void** Axis_Array::get(int& size, XSDTYPE& type) const
 {
     size = m_Size;
     type = m_Type;
-    return m_Array;
+    return (const void**) m_Array;
 }
 
 
@@ -418,7 +418,7 @@
         {
             for (int count = 0 ; count < m_Size ; count++)
             {
-                if (((int*) m_Array)[count] != NULL)
+                if (m_Array[count] != NULL)
                 {
                     switch (m_Type)
                     {
@@ -678,7 +678,7 @@
 
 void xsd__duration_Array::set(xsd__duration** array, int size)
 {
-	Axis_Array::set(array, size, XSD_DURATION);
+	Axis_Array::set((void**)array, size, XSD_DURATION);
 }
 
 const xsd__duration** xsd__duration_Array::get(int& size) const
@@ -702,7 +702,7 @@
 
 void xsd__dateTime_Array::set(xsd__dateTime** array, int size)
 {
-   Axis_Array::set(array, size, XSD_DURATION);
+   Axis_Array::set((void**)array, size, XSD_DURATION);
 }
 
 const xsd__dateTime** xsd__dateTime_Array::get(int& size) const
@@ -726,7 +726,7 @@
 
 void xsd__time_Array::set(xsd__time** array, int size)
 {
-   Axis_Array::set(array, size, XSD_DURATION);
+   Axis_Array::set((void**)array, size, XSD_DURATION);
 }
 
 const xsd__time** xsd__time_Array::get(int& size) const
@@ -750,7 +750,7 @@
 
 void xsd__date_Array::set(xsd__date** array, int size)
 {
-   Axis_Array::set(array, size, XSD_DURATION);
+   Axis_Array::set((void**)array, size, XSD_DURATION);
 }
 
 const xsd__date** xsd__date_Array::get(int& size) const
@@ -774,7 +774,7 @@
 
 void xsd__gYearMonth_Array::set(xsd__gYearMonth** array, int size)
 {
-   Axis_Array::set(array, size, XSD_DURATION);
+   Axis_Array::set((void**)array, size, XSD_DURATION);
 }
 
 const xsd__gYearMonth** xsd__gYearMonth_Array::get(int& size) const
@@ -798,7 +798,7 @@
 
 void xsd__gYear_Array::set(xsd__gYear** array, int size)
 {
-   Axis_Array::set(array, size, XSD_DURATION);
+   Axis_Array::set((void**)array, size, XSD_DURATION);
 }
 
 const xsd__gYear** xsd__gYear_Array::get(int& size) const
@@ -822,7 +822,7 @@
 
 void xsd__gMonthDay_Array::set(xsd__gMonthDay** array, int size)
 {
-   Axis_Array::set(array, size, XSD_DURATION);
+   Axis_Array::set((void**)array, size, XSD_DURATION);
 }
 
 const xsd__gMonthDay** xsd__gMonthDay_Array::get(int& size) const
@@ -845,7 +845,7 @@
 }
 void xsd__gMonth_Array::set(xsd__gMonth** array, int size)
 {
-   Axis_Array::set(array, size, XSD_DURATION);
+   Axis_Array::set((void**)array, size, XSD_DURATION);
 }
 
 const xsd__gMonth** xsd__gMonth_Array::get(int& size) const
@@ -869,7 +869,7 @@
 
 void xsd__gDay_Array::set(xsd__gDay** array, int size)
 {
-   Axis_Array::set(array, size, XSD_DURATION);
+   Axis_Array::set((void**)array, size, XSD_DURATION);
 }
 
 const xsd__gDay** xsd__gDay_Array::get(int& size) const
@@ -893,7 +893,7 @@
 
 void xsd__string_Array::set(xsd__string* array, int size)
 {
- Axis_Array::set(array, size, XSD_STRING);
+ Axis_Array::set((void**)array, size, XSD_STRING);
 }
 
 const xsd__string* xsd__string_Array::get(int& size) const
@@ -917,7 +917,7 @@
 
 void xsd__normalizedString_Array::set(xsd__normalizedString* array, int size)
 {
- Axis_Array::set(array, size, XSD_NORMALIZEDSTRING);
+ Axis_Array::set((void**)array, size, XSD_NORMALIZEDSTRING);
 }
 
 const xsd__normalizedString* xsd__normalizedString_Array::get(int& size) const
@@ -941,7 +941,7 @@
 
 void xsd__token_Array::set(xsd__token* array, int size)
 {
- Axis_Array::set(array, size, XSD_TOKEN);
+ Axis_Array::set((void**)array, size, XSD_TOKEN);
 }
 
 const xsd__token* xsd__token_Array::get(int& size) const
@@ -965,7 +965,7 @@
 
 void xsd__language_Array::set(xsd__language* array, int size)
 {
- Axis_Array::set(array, size, XSD_LANGUAGE);
+ Axis_Array::set((void**)array, size, XSD_LANGUAGE);
 }
 
 const xsd__language* xsd__language_Array::get(int& size) const
@@ -989,7 +989,7 @@
 
 void xsd__Name_Array::set(xsd__Name* array, int size)
 {
- Axis_Array::set(array, size, XSD_NAME);
+ Axis_Array::set((void**)array, size, XSD_NAME);
 }
 
 const xsd__Name* xsd__Name_Array::get(int& size) const
@@ -1013,7 +1013,7 @@
 
 void xsd__NCName_Array::set(xsd__NCName* array, int size)
 {
- Axis_Array::set(array, size, XSD_NCNAME);
+ Axis_Array::set((void**)array, size, XSD_NCNAME);
 }
 
 const xsd__NCName* xsd__NCName_Array::get(int& size) const
@@ -1037,7 +1037,7 @@
 
 void xsd__ID_Array::set(xsd__ID* array, int size)
 {
- Axis_Array::set(array, size, XSD_ID);
+ Axis_Array::set((void**)array, size, XSD_ID);
 }
 
 const xsd__ID* xsd__ID_Array::get(int& size) const
@@ -1061,7 +1061,7 @@
 
 void xsd__IDREF_Array::set(xsd__IDREF* array, int size)
 {
- Axis_Array::set(array, size, XSD_IDREF);
+ Axis_Array::set((void**)array, size, XSD_IDREF);
 }
 
 const xsd__IDREF* xsd__IDREF_Array::get(int& size) const
@@ -1085,7 +1085,7 @@
 
 void xsd__IDREFS_Array::set(xsd__IDREFS* array, int size)
 {
- Axis_Array::set(array, size, XSD_IDREFS);
+ Axis_Array::set((void**)array, size, XSD_IDREFS);
 }
 
 const xsd__IDREFS* xsd__IDREFS_Array::get(int& size) const
@@ -1109,7 +1109,7 @@
 
 void xsd__ENTITY_Array::set(xsd__ENTITY* array, int size)
 {
- Axis_Array::set(array, size, XSD_ENTITY);
+ Axis_Array::set((void**)array, size, XSD_ENTITY);
 }
 
 const xsd__ENTITY* xsd__ENTITY_Array::get(int& size) const
@@ -1133,7 +1133,7 @@
 
 void xsd__ENTITIES_Array::set(xsd__ENTITIES* array, int size)
 {
- Axis_Array::set(array, size, XSD_ENTITIES);
+ Axis_Array::set((void**)array, size, XSD_ENTITIES);
 }
 
 const xsd__ENTITIES* xsd__ENTITIES_Array::get(int& size) const
@@ -1157,7 +1157,7 @@
 
 void xsd__NMTOKEN_Array::set(xsd__NMTOKEN* array, int size)
 {
- Axis_Array::set(array, size, XSD_NMTOKEN);
+ Axis_Array::set((void**)array, size, XSD_NMTOKEN);
 }
 
 const xsd__NMTOKEN* xsd__NMTOKEN_Array::get(int& size) const
@@ -1181,7 +1181,7 @@
 
 void xsd__NMTOKENS_Array::set(xsd__NMTOKENS* array, int size)
 {
- Axis_Array::set(array, size, XSD_NMTOKEN);
+ Axis_Array::set((void**)array, size, XSD_NMTOKEN);
 }
 
 const xsd__NMTOKENS* xsd__NMTOKENS_Array::get(int& size) const
@@ -1205,7 +1205,7 @@
 
 void xsd__boolean_Array::set(xsd__boolean** array, int size)
 {
-	Axis_Array::set(array, size, XSD_BOOLEAN);
+	Axis_Array::set((void**)array, size, XSD_BOOLEAN);
 }
 
 const xsd__boolean** xsd__boolean_Array::get(int& size) const
@@ -1229,7 +1229,7 @@
 
 void xsd__base64Binary_Array::set(xsd__base64Binary** array, int size)
 {
-	Axis_Array::set(array, size, XSD_BASE64BINARY);
+	Axis_Array::set((void**)array, size, XSD_BASE64BINARY);
 }
 
 const xsd__base64Binary** xsd__base64Binary_Array::get(int& size) const
@@ -1253,7 +1253,7 @@
 
 void xsd__hexBinary_Array::set(xsd__hexBinary** array, int size)
 {
-	Axis_Array::set(array, size, XSD_HEXBINARY);
+	Axis_Array::set((void**)array, size, XSD_HEXBINARY);
 }
 
 const xsd__hexBinary** xsd__hexBinary_Array::get(int& size) const
@@ -1277,7 +1277,7 @@
 
 void xsd__float_Array::set(xsd__float** array, int size)
 {
-	Axis_Array::set(array, size, XSD_FLOAT);
+	Axis_Array::set((void**)array, size, XSD_FLOAT);
 }
 
 const xsd__float** xsd__float_Array::get(int& size) const
@@ -1301,7 +1301,7 @@
 
 void xsd__decimal_Array::set(xsd__decimal** array, int size)
 {
-	Axis_Array::set(array, size, XSD_DECIMAL);
+	Axis_Array::set((void**)array, size, XSD_DECIMAL);
 }
 
 const xsd__decimal** xsd__decimal_Array::get(int& size) const
@@ -1325,7 +1325,7 @@
 
 void xsd__integer_Array::set(xsd__integer** array, int size)
 {
-	Axis_Array::set(array, size, XSD_INTEGER);
+	Axis_Array::set((void**)array, size, XSD_INTEGER);
 }
 
 const xsd__integer** xsd__integer_Array::get(int& size) const
@@ -1349,7 +1349,7 @@
 
 void xsd__nonPositiveInteger_Array::set(xsd__nonPositiveInteger** array, int size)
 {
-	Axis_Array::set(array, size, XSD_NONPOSITIVEINTEGER);
+	Axis_Array::set((void**)array, size, XSD_NONPOSITIVEINTEGER);
 }
 
 const xsd__nonPositiveInteger** xsd__nonPositiveInteger_Array::get(int& size) const
@@ -1373,7 +1373,7 @@
 
 void xsd__negativeInteger_Array::set(xsd__negativeInteger** array, int size)
 {
-	Axis_Array::set(array, size, XSD_NEGATIVEINTEGER);
+	Axis_Array::set((void**)array, size, XSD_NEGATIVEINTEGER);
 }
 
 const xsd__negativeInteger** xsd__negativeInteger_Array::get(int& size) const
@@ -1397,7 +1397,7 @@
 
 void xsd__long_Array::set(xsd__long** array, int size)
 {
-	Axis_Array::set(array, size, XSD_LONG);
+	Axis_Array::set((void**)array, size, XSD_LONG);
 }
 
 const xsd__long** xsd__long_Array::get(int& size) const
@@ -1421,7 +1421,7 @@
 
 void xsd__int_Array::set(xsd__int** array, int size)
 {
-	Axis_Array::set(array, size, XSD_INT);
+	Axis_Array::set((void**)array, size, XSD_INT);
 }
 
 const xsd__int** xsd__int_Array::get(int& size) const
@@ -1445,7 +1445,7 @@
 
 void xsd__short_Array::set(xsd__short** array, int size)
 {
-	Axis_Array::set(array, size, XSD_SHORT);
+	Axis_Array::set((void**)array, size, XSD_SHORT);
 }
 
 const xsd__short** xsd__short_Array::get(int& size) const
@@ -1469,7 +1469,7 @@
 
 void xsd__byte_Array::set(xsd__byte** array, int size)
 {
-	Axis_Array::set(array, size, XSD_BYTE);
+	Axis_Array::set((void**)array, size, XSD_BYTE);
 }
 
 const xsd__byte** xsd__byte_Array::get(int& size) const
@@ -1493,7 +1493,7 @@
 
 void xsd__nonNegativeInteger_Array::set(xsd__nonNegativeInteger** array, int size)
 {
-	Axis_Array::set(array, size, XSD_NONNEGATIVEINTEGER);
+	Axis_Array::set((void**)array, size, XSD_NONNEGATIVEINTEGER);
 }
 
 const xsd__nonNegativeInteger** xsd__nonNegativeInteger_Array::get(int& size) const
@@ -1517,7 +1517,7 @@
 
 void xsd__unsignedLong_Array::set(xsd__unsignedLong** array, int size)
 {
-	Axis_Array::set(array, size, XSD_UNSIGNEDLONG);
+	Axis_Array::set((void**)array, size, XSD_UNSIGNEDLONG);
 }
 
 const xsd__unsignedLong** xsd__unsignedLong_Array::get(int& size) const
@@ -1541,7 +1541,7 @@
 
 void xsd__unsignedInt_Array::set(xsd__unsignedInt** array, int size)
 {
-	Axis_Array::set(array, size, XSD_UNSIGNEDINT);
+	Axis_Array::set((void**)array, size, XSD_UNSIGNEDINT);
 }
 
 const xsd__unsignedInt** xsd__unsignedInt_Array::get(int& size) const
@@ -1565,7 +1565,7 @@
 
 void xsd__unsignedShort_Array::set(xsd__unsignedShort** array, int size)
 {
-	Axis_Array::set(array, size, XSD_UNSIGNEDSHORT);
+	Axis_Array::set((void**)array, size, XSD_UNSIGNEDSHORT);
 }
 
 const xsd__unsignedShort** xsd__unsignedShort_Array::get(int& size) const
@@ -1589,7 +1589,7 @@
 
 void xsd__unsignedByte_Array::set(xsd__unsignedByte** array, int size)
 {
-	Axis_Array::set(array, size, XSD_UNSIGNEDBYTE);
+	Axis_Array::set((void**)array, size, XSD_UNSIGNEDBYTE);
 }
 
 const xsd__unsignedByte** xsd__unsignedByte_Array::get(int& size) const
@@ -1613,7 +1613,7 @@
 
 void xsd__positiveInteger_Array::set(xsd__positiveInteger** array, int size)
 {
-	Axis_Array::set(array, size, XSD_POSITIVEINTEGER);
+	Axis_Array::set((void**)array, size, XSD_POSITIVEINTEGER);
 }
 
 const xsd__positiveInteger** xsd__positiveInteger_Array::get(int& size) const
@@ -1637,7 +1637,7 @@
 
 void xsd__double_Array::set(xsd__double** array, int size)
 {
-	Axis_Array::set(array, size, XSD_DOUBLE);
+	Axis_Array::set((void**)array, size, XSD_DOUBLE);
 }
 
 const xsd__double** xsd__double_Array::get(int& size) const
@@ -1661,7 +1661,7 @@
 
 void xsd__anyURI_Array::set(xsd__anyURI* array, int size)
 {
-    Axis_Array::set(array, size, XSD_ANYURI);
+    Axis_Array::set((void**)array, size, XSD_ANYURI);
 }
 
 const xsd__anyURI* xsd__anyURI_Array::get(int& size) const
@@ -1685,7 +1685,7 @@
 
 void xsd__QName_Array::set(xsd__QName* array, int size)
 {
-    Axis_Array::set(array, size, XSD_QNAME);
+    Axis_Array::set((void**)array, size, XSD_QNAME);
 }
 
 const xsd__QName* xsd__QName_Array::get(int& size) const
@@ -1709,7 +1709,7 @@
 
 void xsd__NOTATION_Array::set(xsd__NOTATION* array, int size)
 {
-    Axis_Array::set(array, size, XSD_NOTATION);
+    Axis_Array::set((void**)array, size, XSD_NOTATION);
 }
 
 const xsd__NOTATION* xsd__NOTATION_Array::get(int& size) const

Modified: webservices/axis/trunk/c/src/engine/client/Call.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/engine/client/Call.cpp?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/engine/client/Call.cpp (original)
+++ webservices/axis/trunk/c/src/engine/client/Call.cpp Tue Nov  8 09:13:51 2005
@@ -403,13 +403,13 @@
     m_pIWSSZ->setSoapVersion (version);
 }
 
-Axis_Array Call::getBasicArray (XSDTYPE nType, const AxisChar* pName,
+Axis_Array* Call::getBasicArray (XSDTYPE nType, const AxisChar* pName,
     const AxisChar* pNamespace)
 {
     return m_pIWSDZ->getBasicArray (nType, pName, pNamespace);
 }
 
-Axis_Array Call::getCmplxArray (void* pDZFunct, void* pCreFunct, 
+Axis_Array* Call::getCmplxArray (void* pDZFunct, void* pCreFunct, 
     void* pDelFunct, void* pSizeFunct, const AxisChar* pName, 
     const AxisChar* pNamespace)
 {

Modified: webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp (original)
+++ webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp Tue Nov  8 09:13:51 2005
@@ -582,13 +582,13 @@
  *    <points><x>7</x><y>8</y></points>
  *
  */
-Axis_Array
+Axis_Array*
 SoapDeSerializer::getCmplxArray (void *pDZFunct, void *pCreFunct,
 				 void *pDelFunct, void *pSizeFunct,
 				 const AxisChar * pName,
 				 const AxisChar * pNamespace)
 {
-    Axis_Array Array;
+    Axis_Array* Array = new Axis_Array();
     int nIndex = 0;
     void *pItem;
     int itemsize;
@@ -616,23 +616,23 @@
 	    return Array;
 	}
 
-	Array.m_Size = getArraySize (m_pNode);
+	Array->m_Size = getArraySize (m_pNode);
 
-	if (Array.m_Size == 0)
+	if (Array->m_Size == 0)
 	{
 		m_pNode = m_pParser->next ();	/* skip end element node too */
 		return Array;
 	}
-	else if (Array.m_Size > 0)
+	else if (Array->m_Size > 0)
 	{
-		TRACE_OBJECT_CREATE_FUNCT_ENTRY(pCreFunct, Array.m_Array, true, Array.m_Size);
-		Array.m_Array =
-			((AXIS_OBJECT_CREATE_FUNCT) pCreFunct) (Array.m_Array, true, Array.m_Size);
-		TRACE_OBJECT_CREATE_FUNCT_EXIT(pCreFunct, Array.m_Array);
+		TRACE_OBJECT_CREATE_FUNCT_ENTRY(pCreFunct, Array->m_Array, true, Array->m_Size);
+		Array->m_Array = (void**)
+			((AXIS_OBJECT_CREATE_FUNCT) pCreFunct) (Array->m_Array, true, Array->m_Size);
+		TRACE_OBJECT_CREATE_FUNCT_EXIT(pCreFunct, Array->m_Array);
 
-	    if (!Array.m_Array)
+	    if (!Array->m_Array)
 	    {
-		Array.m_Size = 0;
+		Array->m_Size = 0;
 		m_nStatus = AXIS_FAIL;
 
 		return Array;
@@ -642,20 +642,20 @@
 	    itemsize = ((AXIS_OBJECT_SIZE_FUNCT) pSizeFunct) ();
 		TRACE_OBJECT_SIZE_FUNCT_EXIT(pSizeFunct, itemsize);
 
-		ptrval = (char *)Array.m_Array;
+		ptrval = (char *)Array->m_Array;
 
-	    for (; nIndex < Array.m_Size; nIndex++)
+	    for (; nIndex < Array->m_Size; nIndex++)
 	    {
 		m_pNode = m_pParser->next ();
 		/* wrapper node without type info  Ex: <item> */
 		if (!m_pNode)
 		{
-			TRACE_OBJECT_DELETE_FUNCT_ENTRY(pDelFunct, Array.m_Array, true, Array.m_Size);
-		    ((AXIS_OBJECT_DELETE_FUNCT) pDelFunct) (Array.m_Array, true, Array.m_Size);
+			TRACE_OBJECT_DELETE_FUNCT_ENTRY(pDelFunct, Array->m_Array, true, Array->m_Size);
+		    ((AXIS_OBJECT_DELETE_FUNCT) pDelFunct) (Array->m_Array, true, Array->m_Size);
 			TRACE_OBJECT_DELETE_FUNCT_EXIT(pDelFunct);
 
-		    Array.m_Array = 0;
-		    Array.m_Size = 0;
+		    Array->m_Array = 0;
+		    Array->m_Size = 0;
 		    return Array;
 		}
 
@@ -680,12 +680,12 @@
 
 		if (!m_pNode)
 		{
-			TRACE_OBJECT_DELETE_FUNCT_ENTRY(pDelFunct, Array.m_Array, true, Array.m_Size);
-		    ((AXIS_OBJECT_DELETE_FUNCT) pDelFunct) (Array.m_Array, true, Array.m_Size);
+			TRACE_OBJECT_DELETE_FUNCT_ENTRY(pDelFunct, Array->m_Array, true, Array->m_Size);
+		    ((AXIS_OBJECT_DELETE_FUNCT) pDelFunct) (Array->m_Array, true, Array->m_Size);
 			TRACE_OBJECT_DELETE_FUNCT_EXIT(pDelFunct);
 
-		    Array.m_Array = 0;
-		    Array.m_Size = 0;
+		    Array->m_Array = 0;
+		    Array->m_Size = 0;
 		    return Array;
 		}
 	    }
@@ -697,26 +697,26 @@
     }
     else
     {
-		TRACE_OBJECT_CREATE_FUNCT_ENTRY(pCreFunct, Array.m_Array, true, INITIAL_ARRAY_SIZE);
-	Array.m_Array = ((AXIS_OBJECT_CREATE_FUNCT) pCreFunct) (Array.m_Array,
+		TRACE_OBJECT_CREATE_FUNCT_ENTRY(pCreFunct, Array->m_Array, true, INITIAL_ARRAY_SIZE);
+	Array->m_Array = (void**) ((AXIS_OBJECT_CREATE_FUNCT) pCreFunct) (Array->m_Array,
 								true,
 								INITIAL_ARRAY_SIZE);
-		TRACE_OBJECT_CREATE_FUNCT_EXIT(pCreFunct, Array.m_Array);
-	if (!Array.m_Array)
+		TRACE_OBJECT_CREATE_FUNCT_EXIT(pCreFunct, Array->m_Array);
+	if (!Array->m_Array)
 	{
 	    return Array;
 	}
 
-	Array.m_Size = INITIAL_ARRAY_SIZE;
+	Array->m_Size = INITIAL_ARRAY_SIZE;
 	TRACE_OBJECT_SIZE_FUNCT_ENTRY(pSizeFunct);
     itemsize = ((AXIS_OBJECT_SIZE_FUNCT) pSizeFunct) ();
 	TRACE_OBJECT_SIZE_FUNCT_EXIT(pSizeFunct, itemsize);
 
 	while (true)
 	{
-	    ptrval = (char *)Array.m_Array;
+	    ptrval = (char *)Array->m_Array;
 
-	    for (; nIndex < Array.m_Size; nIndex++)
+	    for (; nIndex < Array->m_Size; nIndex++)
 	    {
 		if (!m_pNode)
 		{		/* if there is an unprocessed node that may be
@@ -728,12 +728,12 @@
 		/* wrapper node without type info  Ex: <phonenumbers> */
 		if (!m_pNode)
 		{
-			TRACE_OBJECT_DELETE_FUNCT_ENTRY(pDelFunct, Array.m_Array, true, Array.m_Size);
-		    ((AXIS_OBJECT_DELETE_FUNCT) pDelFunct) (Array.m_Array, true, Array.m_Size);
+			TRACE_OBJECT_DELETE_FUNCT_ENTRY(pDelFunct, Array->m_Array, true, Array->m_Size);
+		    ((AXIS_OBJECT_DELETE_FUNCT) pDelFunct) (Array->m_Array, true, Array->m_Size);
 			TRACE_OBJECT_DELETE_FUNCT_EXIT(pDelFunct);
 
-		    Array.m_Array = 0;
-		    Array.m_Size = 0;
+		    Array->m_Array = 0;
+		    Array->m_Size = 0;
 		    return Array;
 		}
 
@@ -793,7 +793,7 @@
 		{
 		    if (nIndex > 0)
 		    {
-			Array.m_Size = nIndex;
+			Array->m_Size = nIndex;
 			/* put the actual deserialized item size
 			 * note we do not make m_pNode = NULL because this node
 			 * doesnot belong to this array 
@@ -815,12 +815,12 @@
 		 *  </xsd:sequence>
 		 * </xsd:complexType>        
 		 */
-		TRACE_OBJECT_DELETE_FUNCT_ENTRY(pDelFunct, Array.m_Array, true, Array.m_Size);
-	    ((AXIS_OBJECT_DELETE_FUNCT) pDelFunct) (Array.m_Array, true, Array.m_Size);
+		TRACE_OBJECT_DELETE_FUNCT_ENTRY(pDelFunct, Array->m_Array, true, Array->m_Size);
+	    ((AXIS_OBJECT_DELETE_FUNCT) pDelFunct) (Array->m_Array, true, Array->m_Size);
 		TRACE_OBJECT_DELETE_FUNCT_EXIT(pDelFunct);
 
-		Array.m_Array = 0;
-		Array.m_Size = 0;
+		Array->m_Array = 0;
+		Array->m_Size = 0;
 
 		return Array;
 	    }
@@ -828,20 +828,20 @@
 	     * So double it 
 	     */
 
-		TRACE_OBJECT_CREATE_FUNCT_ENTRY(pCreFunct, Array.m_Array, true, Array.m_Size*2);
-	    Array.m_Array =
-		((AXIS_OBJECT_CREATE_FUNCT) pCreFunct) (Array.m_Array, true,
-							Array.m_Size * 2);
-		TRACE_OBJECT_CREATE_FUNCT_EXIT(pCreFunct, Array.m_Array);
+		TRACE_OBJECT_CREATE_FUNCT_ENTRY(pCreFunct, Array->m_Array, true, Array->m_Size*2);
+	    Array->m_Array = (void**)
+		((AXIS_OBJECT_CREATE_FUNCT) pCreFunct) (Array->m_Array, true,
+							Array->m_Size * 2);
+		TRACE_OBJECT_CREATE_FUNCT_EXIT(pCreFunct, Array->m_Array);
 
-	    if (!Array.m_Array)
+	    if (!Array->m_Array)
 	    {
-		Array.m_Size = 0;
+		Array->m_Size = 0;
 
 		return Array;
 	    }
 
-	    Array.m_Size *= 2;
+	    Array->m_Size *= 2;
 	    /* Array.m_RealSize = Array.m_Size; */
 	}
     }
@@ -1041,13 +1041,13 @@
     }
 }
 
-Axis_Array
+Axis_Array*
 SoapDeSerializer::getBasicArray (XSDTYPE nType,
 				 const AxisChar * pName,
 				 const AxisChar * pNamespace)
 {
-    Axis_Array Array;
-    Array.m_Type = nType;
+    Axis_Array* Array = new Axis_Array();
+    Array->m_Type = nType;
 
     if (AXIS_SUCCESS != m_nStatus)
     {
@@ -1067,17 +1067,17 @@
 		    return Array;
 		}
 	
-		Array.m_Size = getArraySize (m_pNode);
+		Array->m_Size = getArraySize (m_pNode);
 	
-		if (Array.m_Size == 0)
+		if (Array->m_Size == 0)
 		{
 			m_pNode = m_pParser->next ();	/* skip end element node too */
 			return Array;
 		}
-		else if (Array.m_Size > 0)
+		else if (Array->m_Size > 0)
         {
             IAnySimpleType* pSimpleType = AxisUtils::createSimpleTypeObject(nType);
-            deserializeEncodedArray(&Array, pSimpleType, pName, pNamespace);
+            deserializeEncodedArray(Array, pSimpleType, pName, pNamespace);
             delete pSimpleType;
             
             if ( m_nStatus != AXIS_FAIL)
@@ -1089,7 +1089,7 @@
     else
     {
         IAnySimpleType* pSimpleType = AxisUtils::createSimpleTypeObject(nType);
-        deserializeLiteralArray(&Array, pSimpleType, pName, pNamespace);
+        deserializeLiteralArray(Array, pSimpleType, pName, pNamespace);
         delete pSimpleType;
         
         if ( m_nStatus != AXIS_FAIL)

Modified: webservices/axis/trunk/c/src/soap/SoapDeSerializer.h
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/soap/SoapDeSerializer.h?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/soap/SoapDeSerializer.h (original)
+++ webservices/axis/trunk/c/src/soap/SoapDeSerializer.h Tue Nov  8 09:13:51 2005
@@ -113,11 +113,11 @@
     SoapDeSerializer();
     virtual ~SoapDeSerializer();
     /* Method used by wrappers to get a deserialized Array of complex types */
-    Axis_Array AXISCALL getCmplxArray(void* pDZFunct, void* pCreFunct, 
+    Axis_Array* AXISCALL getCmplxArray(void* pDZFunct, void* pCreFunct, 
         void* pDelFunct, void* pSizeFunct, const AxisChar* pName, 
         const AxisChar* pNamespace);
     /* Method used by wrappers to get a deserialized Array of basic types */
-    Axis_Array AXISCALL getBasicArray(XSDTYPE nType, const AxisChar* pName, 
+    Axis_Array* AXISCALL getBasicArray(XSDTYPE nType, const AxisChar* pName, 
         const AxisChar* pNamespace);
     /* Method used by wrappers to get a deserialized single 
      * object of complex type 

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java Tue Nov  8 09:13:51 2005
@@ -248,8 +248,8 @@
         }
         else
         {
-            if (returntypeissimple && returntype.isNillable()
-                    && !(CUtils.isPointerType(outparamTypeName)))
+            if (returntypeisarray || (returntypeissimple && returntype.isNillable()
+                    && !(CUtils.isPointerType(outparamTypeName))))
             {
                 writer.write(outparamTypeName + " *");
             }
@@ -309,7 +309,7 @@
             if (returntypeisarray)
             {
                 //for arrays
-                writer.write(outparamTypeName + " RetArray;\n");
+                writer.write(outparamTypeName + " * RetArray = new " + outparamTypeName + "();\n");
             }
             else
             {
@@ -614,16 +614,15 @@
             if (CUtils.isSimpleType(qname))
             {
                 containedType = CUtils.getclass4qname(qname);
-                writer.write("\t\t\t\tAxis_Array RetAxisArray = "
+                writer.write("\t\t\t\tAxis_Array * RetAxisArray = "
                         + "m_pCall->getBasicArray("
                         + CUtils.getXSDTypeForBasicType(containedType) + ", \""
                         + returntype.getParamName() + "\", 0);\n");
-	            writer.write ("\t\t\t\tRetArray.clone(RetAxisArray);\n\t\t\t}\n");
             }
             else
             {
                 containedType = qname.getLocalPart();
-                writer.write("\t\t\t\tAxis_Array RetAxisArray = "
+                writer.write("\t\t\t\tAxis_Array * RetAxisArray = "
                         + "m_pCall->getCmplxArray((void*) Axis_DeSerialize_"
                         + containedType);
                 //damitha
@@ -632,8 +631,10 @@
                         + ", (void*) Axis_GetSize_" + containedType + ", \""
                         + returntype.getParamName() + "\", Axis_URI_"
                         + containedType + ");\n");
-	            writer.write ("\t\t\t\tRetArray.clone(RetAxisArray);\n\t\t\t}\n");
+	            
             }
+            writer.write ("\t\t\t\tRetArray.clone(*RetAxisArray);\n\t\t\t}\n");
+            writer.write ("\t\t\t\tAxis::AxisDelete( (void *)RetAxisArray, XSD_ARRAY);\n\t\t\t}\n");
             writer.write("\t\t}\n");
             writer.write("\tm_pCall->unInitialize();\n");
             //        writer.write("\t\t}\n\t\tm_pCall->unInitialize();\n");

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java Tue Nov  8 09:13:51 2005
@@ -79,9 +79,10 @@
                                 .iterator()
                                 .next();
                         String outParamTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(returnParam, wscontext);
-                        if (CUtils.isSimpleType(outParamTypeName)
+                        if ((outParamTypeName.lastIndexOf ("_Array") > 0) 
+                                || (CUtils.isSimpleType(outParamTypeName)
 								&& returnParam.isNillable()
-								&& !(CUtils.isPointerType(outParamTypeName)))
+								&& !(CUtils.isPointerType(outParamTypeName))))
                         {
                         	writer.write(
                                     "\tSTORAGE_CLASS_INFO "
@@ -117,9 +118,10 @@
                     {
                     	writer.write("ISoapAttachment *Value" + j);
                     }
-                    else if (CUtils.isSimpleType(paramTypeName)
+                    else if ((paramTypeName.lastIndexOf ("_Array") > 0)
+                            || (CUtils.isSimpleType(paramTypeName)
 							&& nparam.isNillable()
-							&& !(CUtils.isPointerType(paramTypeName)))
+							&& !(CUtils.isPointerType(paramTypeName))))
                     {
                     	writer.write(paramTypeName + " * Value" + j);
                     }

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java Tue Nov  8 09:13:51 2005
@@ -221,20 +221,19 @@
 	}
 	else
 	{
-	    if (returntypeisarray
-		|| (returntypeissimple
-		    && (!returntype.isNillable ()
-			|| CUtils.isPointerType(outparamType))))
+	    if (returntypeissimple
+                    && (!returntype.isNillable() || CUtils
+                            .isPointerType(outparamType)))
 	    {
-		writer.write (outparamType);
+	        writer.write (outparamType);
 	    }
 	    else if (outparamType.lastIndexOf ("*") > 0)
 	    {
-		writer.write (outparamType);
+	        writer.write (outparamType);
 	    }
 	    else
 	    {			//for AnyType too
-		writer.write (outparamType + "*");
+	        writer.write (outparamType + "*");
 	    }
 	}
 	writer.write (" " + classname + "::" + methodName + "(");
@@ -280,10 +279,9 @@
           {
          	writer.write("ISoapAttachment *Value0");
           }
-          else if (typeisarray
-		|| (typeissimple
+          else if (typeissimple
 		    && (!((ParameterInfo) paramsB.get (0)).isNillable ()
-			|| CUtils.isPointerType(paraTypeName))))
+			|| CUtils.isPointerType(paraTypeName)))
 	    {
 		writer.write (paraTypeName + " Value0");
 	    }
@@ -338,10 +336,9 @@
             {
            	    writer.write(", ISoapAttachment *Value" + i);
             }
-            else if (typeisarray
-		    || (typeissimple
+            else if (typeissimple
 			&& (!((ParameterInfo) paramsB.get (i)).isNillable ()
-			    || CUtils.isPointerType(paraTypeName))))
+			    || CUtils.isPointerType(paraTypeName)))
 		{
 		    writer.write (", " + paraTypeName + " Value" + i);
 		}
@@ -381,7 +378,7 @@
 	    if (returntypeisarray)
 	    {
 	        //for arrays
-		writer.write (outparamType + " RetArray;\n");
+	        writer.write (outparamType + " * RetArray = new " + outparamType + "();\n");
 	    }
 	    else
 	    {
@@ -624,7 +621,7 @@
 				CUtils.getclass4qname (qname);
 			    writer.
 				write ("\tm_pCall->addBasicArrayParameter(");
-			    writer.write ("(Axis_Array*)(&Value" + i + "), " +
+			    writer.write ("Value" + i + ", " +
 					  CUtils.
 					  getXSDTypeForBasicType
 					  (containedType) +
@@ -642,8 +639,8 @@
 				writer.
 				    write
 				    ("\tm_pCall->addBasicArrayParameter(");
-				writer.write ("(Axis_Array*)(&Value" + i +
-					      "), " +
+				writer.write ("Value" + i +
+					      ", " +
 					      CUtils.
 					      getXSDTypeForBasicType
 					      (containedType) +
@@ -933,14 +930,14 @@
 		    if (CUtils.isSimpleType (qname))
 		    {
 			containedType = CUtils.getclass4qname (qname);
-			writer.write ("\t\t\tAxis_Array RetAxisArray = m_pCall->getBasicArray(" 
+			writer.write ("\t\t\tAxis_Array * RetAxisArray = m_pCall->getBasicArray(" 
 					+ CUtils.getXSDTypeForBasicType (containedType) 
 					+ ", \"" + returntype.getParamName () + "\", 0);\n");
 		    }
 		    else
 		    {
 			containedType = qname.getLocalPart ();
-			writer.write("\t\t\tAxis_Array RetAxisArray = m_pCall->getCmplxArray((void*) Axis_DeSerialize_"
+			writer.write("\t\t\tAxis_Array * RetAxisArray = m_pCall->getCmplxArray((void*) Axis_DeSerialize_"
 					+ containedType 
 					+ ", (void*) Axis_Create_"
 				      + containedType
@@ -954,7 +951,8 @@
 				      + containedType
 				      + ");\n");
 		    }
-		    writer.write ("\t\t\tRetArray.clone(RetAxisArray);\n");
+		    writer.write ("\t\t\tRetArray->clone(*RetAxisArray);\n");
+		    writer.write ("\t\t\tAxis::AxisDelete( (void *)RetAxisArray, XSD_ARRAY);\n");
 		    writer.write ("\t\t}\n");
 		    writer.write ("\t}\n");
 		    writer.write ("\tm_pCall->unInitialize();\n");

Modified: webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/ArraysClient.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/ArraysClient.cpp?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/ArraysClient.cpp (original)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/ArraysClient.cpp Tue Nov  8 09:13:51 2005
@@ -56,16 +56,16 @@
 
             int arraySize = 3;
             xsd__int_Array inputArray;
-            xsd__int** array = new xsd__int*[arraySize]();
+            xsd__int** array = new xsd__int*[arraySize];
             for (int count = 0 ; count < arraySize ; count++)
             {
                 array[count] = new xsd__int(count);
             }
             inputArray.set(array, arraySize);
             
-            xsd__int_Array outputArray = ws.SimpleArray(inputArray);
+            xsd__int_Array * outputArray = ws.SimpleArray(&inputArray);
             int outputSize = 0;
-            const xsd__int** output = outputArray.get(outputSize);
+            const xsd__int** output = outputArray->get(outputSize);
             cout << "Array size = " << outputSize << endl;
             if (output != NULL)
             {
@@ -132,7 +132,7 @@
 
 bool IsNumber(const char* p)
 {
-    for (int x=0; x < strlen(p); x++)
+    for (unsigned int x=0; x < strlen(p); x++)
  {
      if (!isdigit(p[x])) return false;
  }
@@ -147,12 +147,13 @@
 
 void testAxis_Array()
 {
+    int count = 0;
     // Unit test the Axis_Array object for simple types (in this case xsd__int)
     // Initialize Array
     int unitTestInputSize = 3;
     xsd__int_Array unitTest_Axis_Array;
-    xsd__int** unitTestActualArray = new xsd__int*[unitTestInputSize]();
-    for (int count = 0 ; count < unitTestInputSize ; count++ )
+    xsd__int** unitTestActualArray = new xsd__int*[unitTestInputSize];
+    for (count = 0 ; count < unitTestInputSize ; count++ )
     {
         unitTestActualArray[count] = new xsd__int(count);
     }
@@ -164,7 +165,7 @@
     cout << "Array size = " << size << endl;
     if (unitTestOutputArray != NULL)
     {
-        for (int count = 0 ; count < size ; count++)
+        for (count = 0 ; count < size ; count++)
         {
             if (unitTestOutputArray[count] != NULL)
             {
@@ -192,7 +193,7 @@
     cout << "Array size = " << size << endl;
     if (unitTestOutputArray != NULL)
     {
-        for (int count = 0 ; count < size ; count++)
+        for (count = 0 ; count < size ; count++)
         {
             if (unitTestOutputArray[count] != NULL)
             {
@@ -221,7 +222,7 @@
     cout << "Array size = " << size << endl;
     if (unitTestOutputArray != NULL)
     {
-        for (int count = 0 ; count < size ; count++)
+        for (count = 0 ; count < size ; count++)
         {
             if (unitTestOutputArray[count] != NULL)
             {
@@ -245,7 +246,7 @@
     // Initialize Array
     int unitTestInputSize = 3;
     xsd__int_Array unitTest_Axis_Array;
-    xsd__int** unitTestActualArray = new xsd__int*[unitTestInputSize]();
+    xsd__int** unitTestActualArray = new xsd__int*[unitTestInputSize];
     unitTestActualArray[0] = new xsd__int(12345);
     unitTestActualArray[1] = NULL;
     unitTestActualArray[2] = new xsd__int(54321);
@@ -278,10 +279,11 @@
 
 void testAxis_ArrayCopying()
 {
+    int count = 0;
     int unitTestInputSize = 3;
     xsd__int_Array unitTest_Axis_Array;
-    xsd__int** unitTestActualArray = new xsd__int*[unitTestInputSize]();
-    for (int count = 0 ; count < unitTestInputSize ; count++ )
+    xsd__int** unitTestActualArray = new xsd__int*[unitTestInputSize];
+    for (count = 0 ; count < unitTestInputSize ; count++ )
     {
         unitTestActualArray[count] = new xsd__int(count);
     }
@@ -293,7 +295,7 @@
     }
     unitTest_Axis_Array.set(unitTestActualArray, unitTestInputSize);
 
-    for (count = 0 ; count < unitTestInputSize ; count++);
+    for (count = 0 ; count < unitTestInputSize ; count++)
     {
         delete unitTestActualArray[count];
     }
@@ -304,7 +306,7 @@
     cout << "Size is " << outputSize << endl;
     if (outputArray != NULL)
     {
-        for (int count = 0 ; count < outputSize ; count++)
+        for (count = 0 ; count < outputSize ; count++)
         {
             if (outputArray[count] != NULL)
             {
@@ -320,4 +322,5 @@
     {
         cout << "NULL" << endl;
     }
-}
\ No newline at end of file
+}
+

Modified: webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/XSD_integerClient.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/XSD_integerClient.cpp?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/XSD_integerClient.cpp (original)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/XSD_integerClient.cpp Tue Nov  8 09:13:51 2005
@@ -113,16 +113,16 @@
         // Test arrays
         int arraySize = 2;
         xsd__integer_Array inputArray;
-        xsd__integer** array = new xsd__integer*[arraySize]();
+        xsd__integer** array = new xsd__integer*[arraySize];
         for (int count = 0 ; count < arraySize ; count++)
         {
             array[count] = new xsd__integer(123456789);
         }
         inputArray.set(array, arraySize);
         
-        xsd__integer_Array outputArray = ws->asArray(inputArray);
+        xsd__integer_Array * outputArray = ws->asArray(&inputArray);
         int outputSize = 0;
-        const xsd__integer** output = outputArray.get(outputSize);
+        const xsd__integer** output = outputArray->get(outputSize);
         cout << "array of " << outputSize << " elements" << endl;
         if (output != NULL)
         {

Modified: webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/XSD_stringClient.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/XSD_stringClient.cpp?rev=331849&r1=331848&r2=331849&view=diff
==============================================================================
--- webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/XSD_stringClient.cpp (original)
+++ webservices/axis/trunk/c/tests/auto_build/testcases/client/cpp/XSD_stringClient.cpp Tue Nov  8 09:13:51 2005
@@ -298,7 +298,7 @@
         // Test arrays
         int arraySize = 2;
         xsd__string_Array inputArray;
-        xsd__string* array = new xsd__string[arraySize]();
+        xsd__string* array = new xsd__string[arraySize];
         for (int count = 0 ; count < arraySize ; count++)
         {
             array[count] = new char[25];
@@ -306,9 +306,9 @@
         }
         inputArray.set(array, arraySize);
         
-        xsd__string_Array outputArray = ws->asArray(inputArray);
+        xsd__string_Array * outputArray = ws->asArray(&inputArray);
         int outputSize = 0;
-        const xsd__string* output = outputArray.get(outputSize);
+        const xsd__string* output = outputArray->get(outputSize);
         cout << "array of " << outputSize << " elements" << endl;
         if (output != NULL)
         {