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 na...@apache.org on 2006/04/19 06:38:07 UTC

svn commit: r395130 - in /webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c: ArrayParamHeaderWriter.java ArrayParamWriter.java BeanParamWriter.java

Author: nadiramra
Date: Tue Apr 18 21:38:02 2006
New Revision: 395130

URL: http://svn.apache.org/viewcvs?rev=395130&view=rev
Log:
C support fixes/enhancements.

Modified:
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamHeaderWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java
    webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamHeaderWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamHeaderWriter.java?rev=395130&r1=395129&r2=395130&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamHeaderWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamHeaderWriter.java Tue Apr 18 21:38:02 2006
@@ -143,7 +143,7 @@
     {
         try
         {
-            this.writer.write("extern void* Axis_Create_" + classname + "(int nSize);\n");
+            this.writer.write("extern void* Axis_Create_" + classname + "();\n");
         }
         catch (IOException e)
         {

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java?rev=395130&r1=395129&r2=395130&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ArrayParamWriter.java Tue Apr 18 21:38:02 2006
@@ -135,7 +135,7 @@
     {
         try
         {
-            writer.write("extern void* Axis_Create_" + classname + "(int nSize)\n");
+            writer.write("extern void* Axis_Create_" + classname + "()\n");
             writer.write("{\n");
             
             // Begin function body
@@ -145,14 +145,6 @@
             writer.write("\tpArray->m_Type = C_USER_TYPE;\n");
             writer.write("\n");
 
-            writer.write("\t/* Create actual array of requested size */\n");
-            writer.write("\tif (nSize > 0)\n");
-            writer.write("\t{\n");
-            writer.write("\t\tpArray->m_Array = Axis_Create_" + attribs[0].getTypeName() 
-                    + "(NULL, 1, nSize);\n");
-            writer.write("\t\tpArray->m_Size = nSize;\n"); 
-            writer.write("\t}\n");
-            writer.write("\n");
             writer.write("\treturn pArray;\n");
             
             // End function body
@@ -178,22 +170,18 @@
             // Begin function body
             
             writer.write("\t/* If null, simply return */\n");
-            writer.write("\tif (!param)\n");
+            writer.write("\tif (param == NULL)\n");
             writer.write("\t\treturn;\n");
             writer.write("\n");
             
-            writer.write("\t/* Reclaim array memory resources, if it exists */\n");
-            writer.write("\tif (param->m_Array)\n");
-            writer.write("\t{\n");
+            writer.write("\t/* Reclaim memory resources of array elements, if it exists */\n");
+            writer.write("\tif (param->m_Array && param->m_Size > 0)\n");
             writer.write("\t\tAxis_Delete_" +  attribs[0].getTypeName() 
                     + "((" + attribs[0].getTypeName() + " *)param->m_Array, 1, param->m_Size);\n");
-            writer.write("\t\tparam->m_Array = (" + attribs[0].getTypeName() + " **)NULL;\n");
-            writer.write("\t\taxiscAxisDelete(param, XSDC_ARRAY);\n");
-            writer.write("\t}\n");
             writer.write("\n");
             
             writer.write("\t/* Reclaim array data type memory resources */\n");
-            writer.write("\tfree(param);\n");
+            writer.write("\t\taxiscAxisDelete(param, XSDC_ARRAY);\n");
             
             // End function body            
             

Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java?rev=395130&r1=395129&r2=395130&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java Tue Apr 18 21:38:02 2006
@@ -707,47 +707,39 @@
      */
     private void writeCreateGlobalMethod() throws IOException
     {
+        boolean writeNewline = false;
+        
         writer.write("\n");
         writer.write("/**\n");
-        writer.write(" * This static method to deallocate a " + classname + " type of object\n");
+        writer.write(" * This static method to allocate a " + classname + " type of object\n");
         writer.write(" */\n");
         
         writer.write("void* Axis_Create_" + classname + "(void* pObj, AxiscBool bArray, int nSize)\n{\n");
         
-        writer.write("\t" + classname + "* pTemp;\n");
+        writer.write("\t" + classname + "* pTemp = (" + classname + " *)malloc(sizeof(" + classname + "));\n");
+        writer.write("\tmemset(pTemp, 0, sizeof(" + classname + "));\n");
         writer.write("\n");
-        writer.write("\tif (bArray && (nSize > 0))\n\t{\n");
-        writer.write("\t\tif (pObj)\n\t\t{\n");
-        writer.write("\t\t\tpObj = (void *)  realloc(pObj, sizeof(" + classname + " *)*nSize);\n");
-        writer.write("\t\t\tpTemp = pObj;\n");
-        writer.write("\t\t\tpTemp += nSize/2;\n");
-        writer.write("\t\t\tmemset(pTemp, 0, sizeof(" + classname + " *)*nSize/2);\n");
-        writer.write("\t\t}\n\t\telse\n\t\t{\n");
-        writer.write("\t\t\tpObj = (void *)  malloc(sizeof(" + classname + " *)*nSize);\n");
-        writer.write("\t\t\tmemset(pObj, 0, sizeof(" + classname + " *)*nSize);\n\t\t}\n");
-        writer.write("\t}\n\telse\n\t{\n");
-        writer.write("\t\tpObj = (void *)  malloc(sizeof(" + classname + "));\n");
-        writer.write("\t\tmemset(pObj, 0, sizeof(" + classname + "));\n");
-        writer.write("\t\tpTemp = (" + classname + " *)pObj;\n");
         
         for (int i = 0; i < attribs.length; i++)
             if (!(attribs[i].isSimpleType() || attribs[i].getType().isSimpleType()))
             {
+                writeNewline = true;
+                
                 if (attribs[i].isArray())
                 {
-                    writer.write("\t\tpTemp->" + attribs[i].getParamName() + " = "
+                    writer.write("\tpTemp->" + attribs[i].getParamName() + " = "
                             + "Axis_Create_" + attribs[i].getTypeName() + "_Array(0);\n");
                 }
                 else
                 {
-                    writer.write("\t\tpTemp->" + attribs[i].getParamName() + " = "
+                    writer.write("\tpTemp->" + attribs[i].getParamName() + " = "
                             + "Axis_Create_" + attribs[i].getTypeName() + "(0,0,0);\n");                   
                 }
             }
         
-        writer.write("\t}\n");
-        writer.write("\n");
-        writer.write("\treturn pObj;\n}\n");
+        if (writeNewline)
+            writer.write("\n");
+        writer.write("\treturn pTemp;\n}\n");
     }
 
     /**
@@ -765,7 +757,7 @@
         
         writer.write("{\n");
         writer.write("\t/* If NULL, just return */\n");
-        writer.write("\tif (!param)\n");
+        writer.write("\tif (param == NULL)\n");
         writer.write("\t\treturn;\n");
         writer.write("\n");
         
@@ -784,7 +776,6 @@
         writer.write("\t\t\t\t\tparamArray[count] = NULL;\n");
         writer.write("\t\t\t\t}\n");
         writer.write("\t\t\t}\n");
-        writer.write("\t\t\tfree(param);\n");
         writer.write("\t\t}\n");
         writer.write("\t}\n");
         
@@ -795,7 +786,7 @@
         {
             if (attribs[i].isSimpleType() || attribs[i].getType().isSimpleType())
             {
-                if (CUtils.isPointerType(attribs[i].getTypeName()))
+                if (CUtils.isPointerType(attribs[i].getTypeName()) || attribs[i].isArray())
                 {
                     String passedInBaseType;
                     String baseTypeName = null;
@@ -833,58 +824,6 @@
         
         writer.write("}\n");
     }
-
-//        for (int i = 0; i < attribs.length; i++)
-//        {
-//            if (attribs[i].isArray())
-//            {
-//                if (attribs[i].isSimpleType())
-//                {
-//                    writer.write("\t\tif (param->" + attribs[i].getParamName()
-//                            + ".m_Array) free(param->" + attribs[i].getParamName() + ".m_Array);\n");
-//                }
-//                else
-//                {
-//                    writer.write("\t\tif (param->" + attribs[i].getParamName()
-//                            + ".m_Array) Axis_Delete_" + attribs[i].getTypeName()
-//                            + "(param->" + attribs[i].getParamName()
-//                            + ".m_Array, true, param->" + attribs[i].getParamName() + ".m_Size);\n");
-//                }
-//            }
-//            else if (attribs[i].isAnyType())
-//                {
-//                    writer.write("\t\tif (param->" + attribs[i].getParamName() + ") \n\t\t{ \n");
-//                    writer.write("\t\t\tfor (i=0; i<param->" + attribs[i].getParamName()
-//                            + "->_size; i++)\n\t\t\t{\n");
-//                    writer.write("\t\t\t\tif (param->"
-//                            + attribs[i].getParamName() "->_array[i]) free(param->"
-//                            + attribs[i].getParamName() + "->_array[i]);\n");
-//                    writer.write("\t\t\t}\n");
-//                    writer.write("\t\t\tfree(param->" + attribs[i].getParamName() + ");\n");
-//                    writer.write("\t\t}\n");
-//                }
-//                else if (!attribs[i].isSimpleType())
-//                    {
-//                        writer.write("\t\tif (param->" + attribs[i].getParamName()
-//                                + ") Axis_Delete_" + attribs[i].getTypeName()
-//                                + "(param->" + attribs[i].getParamName() + ", false, 0);\n");
-//                    }
-//                    else if ("xsdc__string".equals(attribs[i].getTypeName()))
-//                        {
-//                            writer.write("\t\tif(param->" + attribs[i].getParamName()
-//                                    + ") free(param->" + attribs[i].getParamName() + ");\n");
-//                        }
-//                        else if ("xsdc__base64Binary".equals(attribs[i].getTypeName())
-//                                 "xsdc__hexBinary" .equals(attribs[i].getTypeName()))
-//                        {
-//                            writer.write("\t\tif(param->" + attribs[i].getParamName()
-//                                    + ".__ptr) free(param->" + attribs[i].getParamName() + ".__ptr);\n");
-//                        }
-//                        else if (attribs[i].isOptional())
-//                        {
-//                                        //TODO
-//                        }
-//        }
     
     /**
      * @throws WrapperFault