whitlock    2005/07/08 02:57:57

  Modified:    c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal
                        BeanParamWriter.java
  Log:
  when deserializing a field that's a complex array, in the code that copies 
the array, memset the old array to zero before deleting it, otherwise the 
referenced complex type's destructor will free it's strings causing AxisBench 
and others to fail.
  
  Revision  Changes    Path
  1.82      +1 -0      
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.81
  retrieving revision 1.82
  diff -u -r1.81 -r1.82
  --- BeanParamWriter.java      6 Jul 2005 14:57:55 -0000       1.81
  +++ BeanParamWriter.java      8 Jul 2005 09:57:57 -0000       1.82
  @@ -884,6 +884,7 @@
                           writer.write("\t\t*(pp" + i + "[iCount" + i + "]) = 
p"
                                   + i + "[iCount" + i + "];\n");
                           writer.write("\t}\n");
  +                             writer.write("\tmemset(p" + i + ", 0, sizeof(" 
+ attributeTypeName + ")*array.m_Size);\n");
                           writer.write("\tdelete [] p" + i + ";\n");
                       }
                       else
  
  
  

Reply via email to