dushshantha 2005/06/29 03:52:46
Modified: c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp
BeanParamWriter.java
c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal
BeanParamWriter.java
Log:
modified the memory deallocation in the Destructors of complex types to
support WSDL choice construct.
Revision Changes Path
1.46 +6 -1
ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
Index: BeanParamWriter.java
===================================================================
RCS file:
/home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- BeanParamWriter.java 14 Jun 2005 14:45:00 -0000 1.45
+++ BeanParamWriter.java 29 Jun 2005 10:52:46 -0000 1.46
@@ -727,7 +727,12 @@
writer.write("\t/*delete any pointer and array members
here*/\n");
for (int i = 0; i < attribs.length; i++) {
if (attribs[i].isArray()) {
- writer.write("\tdelete [] ((" +
attribs[i].getTypeName()
+ if (attribs[i].getChoiceElement())
+ writer.write("\tdelete [] ((" +
attribs[i].getTypeName()
+ + "*)" +
attribs[i].getParamNameAsMember()
+ + "->m_Array);\n");
+ else
+ writer.write("\tdelete [] ((" +
attribs[i].getTypeName()
+ "*)" +
attribs[i].getParamNameAsMember()
+ ".m_Array);\n");
} else if (!attribs[i].isSimpleType()) {
1.80 +7 -4
ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java
Index: BeanParamWriter.java
===================================================================
RCS file:
/home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/BeanParamWriter.java,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -r1.79 -r1.80
--- BeanParamWriter.java 28 Jun 2005 18:32:36 -0000 1.79
+++ BeanParamWriter.java 29 Jun 2005 10:52:46 -0000 1.80
@@ -1160,10 +1160,13 @@
if(attribs[i].isArray()){
if ( attribs[i].isSimpleType())
{
- writer.write("\tdelete []
(("+attribs[i].getTypeName()+"*)"+attribs[i].getParamNameAsMember()+".m_Array);\n");
- }
- else
- {
+ if (attribs[i].getChoiceElement())
+ writer.write("\tdelete
[]
(("+attribs[i].getTypeName()+"*)"+attribs[i].getParamNameAsMember()+"->m_Array);\n");
+ else
+ writer.write("\tdelete
[]
(("+attribs[i].getTypeName()+"*)"+attribs[i].getParamNameAsMember()+".m_Array);\n");
+ }
+ else
+ {
if( isNillable())
{
writer.write("\tdelete
"+attribs[i].getParamNameAsMember()+".m_Array;\n");