[ https://issues.apache.org/jira/browse/TUSCANY-1376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Yoder closed TUSCANY-1376. ---------------------------------- Resolution: Fixed Resolved with applied patches. > C++ SDO spec portability: RefCountingPointer > -------------------------------------------- > > Key: TUSCANY-1376 > URL: https://issues.apache.org/jira/browse/TUSCANY-1376 > Project: Tuscany > Issue Type: Bug > Components: C++ SDO, C++ Specification > Affects Versions: Cpp-M3 > Environment: all platforms > Reporter: Michael Yoder > Fix For: Cpp-Next > > Attachments: TUSCANY-1376.txt, TUSCANY-1376v2.txt > > > Tuscany C++ SDO class RefCounting pointer has the member function: > operator T*() {return pointee;} > which expose the raw dumb pointer for SDO classes (for the common use of > smart pointers). This member function is used by SCA, and raises undesirable > object lifetime and allowed operation issues. The member function should be > replaced with a safe (referenced in the below -email thread) conversion to > bool member function. > -----Original Message----- > From: Pete Robbins [mailto:[EMAIL PROTECTED] > Sent: Friday, June 22, 2007 6:16 AM > To: tuscany-dev@ws.apache.org > Subject: Re: C++ SDO spec portability: RefCountingPointer > Michael, I strongly suspect that the operator T*() ws put in for a good > reason. It may be a good idea to remove this but it may be non-trivial. > The ostream operator << is very useful and there is a default implementation > in RefCountingObject so that objects inheriting from RefCounting object do > not need to implement anything... but they can if appropriate. > You are raising a lot if issues which is great and it would be excellent to > get Tuscany SDO up to 2.1 spec level. I suspect there will be hundreds of > issues some of which may require large re-writes/refactoring of the Tuscany > SDO Code!! Raising these as Jiras is the best thing to do so we can track > them. Helping fix them by submitting patches would be even better ;-) > Cheers, > On 22/06/07, Michael Yoder <[EMAIL PROTECTED]> wrote: > > > > Hi, > > > > In looking at C++ SDO portabilty, we found the the Tuscany C++ SDO > > class RefCountingPointer has functions used externally by SCA: > > > > operator T*() {return pointee;} > > friend std::ostream& operator<< (std::ostream &os, const > > RefCountingPointer<T>& ptr) > > > > It looks like the conversion to T* function may have been put in > > originally as a porting alternative to a member function template, but > > may not be needed any more since the member template is now included > > outside the #ifdef. > > > > Exposing the dumb pointer is undesirable since it raises object > > lifetime issues and allows other unwanted operations. Having a > > conversion to bool is convenient however, and can be implemented > > safely using a member function pointer trick (see: > > http://www.artima.com/cppsource/safebool.html). > > > > The shift operator also seems undesireable since it places a burden on > > all classes which use smart pointers to implement toString > > functionality. > > > > How does it sound to raise a Jira to have these member functions > > removed? > > > > Thanks, > > Michael Yoder > > Rogue Wave Software - [EMAIL PROTECTED] Software Developer - > > HydraSDO > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > -- > Pete -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]