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.


Reply via email to