Hi Nadir,
Yes, the code does perform object copies using memcpy instead of copy
constructors, unfortunately. The generated classes that represent complex
types do not have copy constructors and in the generated Axis_Create_
method, object array copies are done using memcpy. This is all tied up with
AXISCPP-149.
Mark
Mark Whitlock
IBM
----- Forwarded by Mark Whitlock/UK/IBM on 11/04/2005 10:23 -----
Nadir Amra
<[EMAIL PROTECTED]>
To
10/04/2005 07:49 "Apache AXIS C Developers List"
<[email protected]>
cc
Please respond to
"Apache AXIS C Subject
Developers List" Getting pointer exceptions on
OS/400
I am trying to run the client tests, and half of the tests are successful.
As I look at some of the failures that are occurring, I see stuff like
==> Pointer not set for location referenced.
I examined one of the failing test cases, the
src\ws-axis\c\tests\auto_build\testcases\tests\ComplexLists.xml testcase.
And I looked at the code that is generated, and am wondering the
following:
Does the code that is generated convert pointers to integers and
vice-versa? If it does, I think this needs to change. Not sure why it
does so but we cannot assume that on all platforms a pointer fits into an
integer (specially 64-bit machine), and it is bad practice for portability
given that on some platforms pointers are protected, and if you convert it
to some other data type, you can never retrieve the pointer back.
Does the code perform object copies via memcpy instead of using copy
constructors? Why the heck do we do that? Again, I am not sure if that
is legit in the object-oriented world and I do not think it is a good
practice to do so.
If either case is true, can someone tell me what I would need to change?
Any help would be greatly appreciated.