M. Ushakov,

Thanks for your input.  Will definately will do the first, as for the 
second I will have to study that a but further. 

To keep track of such things it would be nice if you opened JIRAs. 

By the way, it is best to build the latest code from SVN since 1.6beta is 
very, very old. 

Thanks.

Nadir K. Amra


Михаил Ушаков <[EMAIL PROTECTED]> wrote on 10/09/2007 05:53:42 AM:

> Hello all.
> After working with axiscpp 1.6 beta I have several suggestions:
> 1. Client stubs allow client code copy and assign proxy objects.
> IMHO it is bad since axiscpp::Stub do not use any pointer share 
> mechanism so double deallocation can occur.
> so add this code in Stub.hpp
> 
> class STORAGE_CLASS_INFO Stub
> {
>   private:
>       /**
>       * Copy constructor and assignment Prohibited!
>       */
>       Stub(const Stub& src) {}
>       Stub& operator=(const Stub& src) {return *this;}
> public:
> // Rest of code
> 
> 2.  We have deallocation problem with xsd__...array * types  returned 
> from axis engine under VC 8.0. Since our client and axis uses different 
> runtime libraries.
> My proposal:
> make all complex types allocated and returned by axis engine with own 
> memory allocation/deallocation operators.
> 
> ////////////////////////////////////////////////////////
> // AxisUserApi.hpp
> /**
> * @class xsd__base
> * Axis C++ base type for xml types
> * defines own allocation deallocation mechanism
> */
> class STORAGE_CLASS_INFO xsd__base {
> public:
>     /**
>      * Default constructor
>      */
>     xsd__base();
> 
>     virtual ~xsd__base();
>     /**
>      * Allocation
>      */
>     void* operator new(size_t size);
>     /**
>      * Array Allocation
>      */
>     void* operator new[](std::size_t _Count);
> 
>     /**
>     * Deallocation
>     */
>     void operator delete(void* _Ptr);
> 
>     /**
>      * Array deallocation
>      */
>     void operator delete[](void* _Ptr);
> };
> 
> and all complex types must be derive from this base.
> class STORAGE_CLASS_INFO xsd__base64Binary : public xsd__base {
>  // rest of code...
> 
> So after such changes we can safely delete pointers returned from the 
> axis engine.
> 
> With best regards M. Ushakov.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

Reply via email to