On Wed, Oct 29, 2008 at 3:29 PM, Alex Mohr <[EMAIL PROTECTED]> wrote:
> The documentation isn't great, but the name 'borrowed' is a hint. Using
> borrowed instructs boost.python that the PyObject * is a borrowed reference.
> So you can use:
>
> object(handle<>(borrowed(ptr)))
>
> for when ptr is a borrowed reference and
>
> object(handle<>(ptr))
>
> for when ptr is a new reference.
>
That makes a lot more sense. What confused me is this from Dave
Abrahams in a message from Oct 07, I guess he got them mixed up.
If the is not pre-incremented for you, then
boost::python::handle<> h((PyObject*)callbackID));
return boost::python::object o(h);
would be correct. Otherwise, you need
boost::python::handle<>
h(boost::python::borrowed((PyObject*)callbackID)));
return boost::python::object o(h);
btw, I notice that object(borrowed(ptr)) compiles and runs without
error. Is handle<>(...) superfluous when using borrowed?
-Dan
_______________________________________________
Cplusplus-sig mailing list
[email protected]
http://mail.python.org/mailman/listinfo/cplusplus-sig