Dushshantha Chandradasa wrote:
Hi All,
Could somebody please explain why do we use a virtual destructor in
complex type auto generated classes for RPC style?
In my understanding, it is not a problem to use the virtual destructors.
But the problem is that we use both memset, followed by delete[] on the
same object.
I think we got to do only one of those and see if there are memory leaks.
using delete[] without memset and checking for leaks would reveal
whether delete[] alone would take care of memory cleaning.
Thanks,
Samisa...
Thanks,
Dushshantha
-----Original Message-----
From: Dushshantha Chandradasa (JIRA) [mailto:[EMAIL PROTECTED]
Sent: Friday, September 16, 2005 11:49 AM
To: [email protected]
Subject: [jira] Commented: (AXISCPP-343) SIGSEGV deserializing an array
of complex elements
[
http://issues.apache.org/jira/browse/AXISCPP-343?page=comments#action_12
329513 ]
Dushshantha Chandradasa commented on AXISCPP-343:
-------------------------------------------------
Hi Mark,
why do we use a memset here?? And why we use a virtual destructor here
in RPC??
SIGSEGV deserializing an array of complex elements
--------------------------------------------------
Key: AXISCPP-343
URL: http://issues.apache.org/jira/browse/AXISCPP-343
Project: Axis-C++
Type: Bug
Components: Serialization
Versions: 1.4 Final
Environment: RH9
Reporter: Unai Uribarri
Assignee: Dushshantha Chandradasa
Attachments: siaam.wsdl
The function Axis_Create_* (in the following example, the mapItem
object) in the stubs generated by wsdl2ws java tool generates a
SIGSEGV
when tring to enlarge an array of objects
mapItem* pNew = new mapItem[nSize];
memcpy(pNew, pObj, sizeof(mapItem)*nSize/2);
memset(pObj, 0, sizeof(mapItem)*nSize/2);
--> delete [] pObj; <-- SIGSEGV
memset clears the virtual table pointer of the mapItem objects and the
delete operator crash.