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 sa...@apache.org on 2005/01/18 09:38:46 UTC

cvs commit: ws-axis/c/src/soap/xsd HexBinary.cpp HexBinary.hpp

samisa      2005/01/18 00:38:46

  Modified:    c/src/soap/xsd HexBinary.cpp HexBinary.hpp
  Log:
  Added desstructor and memory cleaning BP code. Fixes for AXISCPP-384
  
  Revision  Changes    Path
  1.2       +33 -0     ws-axis/c/src/soap/xsd/HexBinary.cpp
  
  Index: HexBinary.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/xsd/HexBinary.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- HexBinary.cpp	10 Jan 2005 17:18:33 -0000	1.1
  +++ HexBinary.cpp	18 Jan 2005 08:38:46 -0000	1.2
  @@ -2,6 +2,27 @@
   
   AXIS_CPP_NAMESPACE_START
   
  +HexBinary::HexBinary()
  +:m_Buf(NULL), m_hexBinary(NULL)
  +{
  +}
  +
  +HexBinary::~HexBinary()
  +{
  +    if (m_Buf)
  +    {
  +        delete [] m_Buf;
  +        m_Buf = NULL;
  +    }
  +
  +    if (m_hexBinary)
  +    {
  +        delete [] m_hexBinary;
  +        m_hexBinary = NULL;
  +    }
  +}
  +
  +
       AxisChar* HexBinary::serialize(const void* value) throw (AxisSoapException)
       {
       	return serialize((xsd__hexBinary*) value);
  @@ -18,6 +39,12 @@
   	    Hex_Encode (serializedValue, value->__ptr, value->__size);
   	    serializedValue[value->__size * 2] = 0;
   	    
  +        if (m_Buf) // Samisa : memory management BP
  +        {
  +            delete [] m_Buf;
  +            m_Buf = NULL;
  +        }
  +
   	    m_Buf = new char[strlen (serializedValue) + 1];
   	    strcpy (m_Buf, serializedValue);
   	    return m_Buf;
  @@ -25,6 +52,12 @@
   	
       xsd__hexBinary* HexBinary::deserializeHexBinary(const AxisChar* valueAsChar) throw (AxisSoapException)
       {
  +        if (m_hexBinary) // Samisa : memory management BP
  +        {
  +            delete [] m_hexBinary;
  +            m_hexBinary = NULL;
  +        }
  +
       	m_hexBinary = new xsd__hexBinary();    	
   	    m_hexBinary->__size = strlen (valueAsChar) / 2;
   	    m_hexBinary->__ptr = new unsigned char[m_hexBinary->__size + 1];
  
  
  
  1.2       +9 -0      ws-axis/c/src/soap/xsd/HexBinary.hpp
  
  Index: HexBinary.hpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/soap/xsd/HexBinary.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- HexBinary.hpp	10 Jan 2005 17:18:33 -0000	1.1
  +++ HexBinary.hpp	18 Jan 2005 08:38:46 -0000	1.2
  @@ -32,6 +32,15 @@
   
   class HexBinary : public IAnySimpleType {
   public:
  +   /**
  +    * Constructor.
  +    */
  +    HexBinary();
  +
  +   /**
  +    * Destructor.
  +    */
  +    virtual ~HexBinary();
   
   	/**
   	 * Serialize value to it's on-the-wire string form.