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