have rna function obj.as_pointer() return a memory address rather then a PyCapsule...
authorCampbell Barton <ideasman42@gmail.com>
Wed, 1 Sep 2010 15:25:22 +0000 (15:25 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 1 Sep 2010 15:25:22 +0000 (15:25 +0000)
this can be passed to ctypes.c_void_p(bpy.context.object.as_pointer())

source/blender/python/intern/bpy_rna.c

index 3a7ee4806e978f5879d3074e5f9fca4de336d91b..0196366995bbe683a9b7d0b23a62ae22fba7e75a 100644 (file)
@@ -2909,19 +2909,16 @@ static PyObject *pyrna_struct_get(BPy_StructRNA *self, PyObject *args)
 static char pyrna_struct_as_pointer_doc[] =
 ".. method:: as_pointer()\n"
 "\n"
-"   Returns capsule which holds a pointer to blenders internal data\n"
+"   Returns the memory address which holds a pointer to blenders internal data\n"
 "\n"
 "   :return: capsule with a name set from the struct type.\n"
-"   :rtype: PyCapsule\n"
+"   :rtype: int\n"
 "\n"
 "   .. note:: This is intended only for advanced script writers who need to pass blender data to their own C/Python modules.\n";
 
 static PyObject *pyrna_struct_as_pointer(BPy_StructRNA *self)
 {
-       if(self->ptr.data)
-               return PyCapsule_New(self->ptr.data, RNA_struct_identifier(self->ptr.type), NULL);
-
-       Py_RETURN_NONE;
+       return PyLong_FromVoidPtr(self->ptr.data);
 }
 
 static PyObject *pyrna_prop_get(BPy_PropertyRNA *self, PyObject *args)