Py/RNA api:
fix for crash when iterating over a collection which allocates the collection and frees on when finished. The ability for BPy_StructRNA to hold a reference to other PyObject's was added to support this.
This commit is contained in:
@@ -40,6 +40,9 @@
|
||||
/* different method */
|
||||
//#define USE_PYRNA_INVALIDATE_WEAKREF
|
||||
|
||||
/* support for inter references, currently only needed for corner case */
|
||||
// #define USE_PYRNA_STRUCT_REFERENCE
|
||||
|
||||
/* use real collection iterators rather then faking with a list */
|
||||
#define USE_PYRNA_ITER
|
||||
|
||||
@@ -90,6 +93,11 @@ typedef struct {
|
||||
PyObject *in_weakreflist;
|
||||
#endif
|
||||
PointerRNA ptr;
|
||||
#ifdef USE_PYRNA_STRUCT_REFERENCE
|
||||
/* generic PyObject we hold a reference to, example use:
|
||||
* hold onto the collection iterator to prevent it from freeing allocated data we may use */
|
||||
PyObject *reference;
|
||||
#endif /* !USE_PYRNA_STRUCT_REFERENCE */
|
||||
int freeptr; /* needed in some cases if ptr.data is created on the fly, free when deallocing */
|
||||
} BPy_StructRNA;
|
||||
|
||||
|
Reference in New Issue
Block a user