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.