[PyQt] Smartpointer to Python

Phil Thompson phil at riverbankcomputing.com
Mon May 26 15:00:13 BST 2008


On Monday 26 May 2008 2:10:53 pm Arve Knudsen wrote:
> On Mon, May 26, 2008 at 2:37 PM, Phil Thompson
>
> <phil at riverbankcomputing.com> wrote:
> > On Monday 26 May 2008 1:10:11 pm Arve Knudsen wrote:
> >> Hi
> >>
> >> Reading the SIP documentation I can't find any info on how C++ objects
> >> are deleted (returned to the heap) from Python, only that their
> >> destructor is called.
> >
> > ...when the Python object is garbage collected and if the C++ object is
> > owned by Python.
>
> Yes, that much is clear.
>
> >> Does this mean that when returning new'ed
> >> pointers  to Python they should be managed by smartpointers? If so, is
> >> there any mechanism in SIP for treating smartpointers as objects of
> >> their managed type from Python?
> >
> > SIP effectively implements its own smartpointer mechanism - so long as
> > the C++ type has a virtual dtor and the C++ object is created from
> > Python.
>
> Could the SIP documentation be more clear about this? I can only see
> that it says that pointers to C structs will be free'ed, and that C++
> objects are destroyed. I need to make sure that C++ objects are
> deleted, not just destroyed.

...err, what's the difference?

Phil


More information about the PyQt mailing list