fixes 0003771: Memory leak in Part.Face.Surface
This commit is contained in:
@@ -177,7 +177,8 @@ PyObject* PyObjectBase::__getattro(PyObject * obj, PyObject *attro)
|
||||
PyObject* value = pyObj->_getattr(attr);
|
||||
#if 1
|
||||
if (value && PyObject_TypeCheck(value, &(PyObjectBase::Type))) {
|
||||
if (!static_cast<PyObjectBase*>(value)->isConst()) {
|
||||
if (!static_cast<PyObjectBase*>(value)->isConst() &&
|
||||
!static_cast<PyObjectBase*>(value)->isNotTracking()) {
|
||||
static_cast<PyObjectBase*>(value)->setAttributeOf(attr, pyObj);
|
||||
pyObj->trackAttribute(attr, value);
|
||||
}
|
||||
|
||||
@@ -201,7 +201,8 @@ class BaseExport PyObjectBase : public PyObject
|
||||
enum Status {
|
||||
Valid = 0,
|
||||
Immutable = 1,
|
||||
Notify = 2
|
||||
Notify = 2,
|
||||
NoTrack = 3
|
||||
};
|
||||
|
||||
protected:
|
||||
@@ -313,6 +314,14 @@ public:
|
||||
|
||||
void startNotify();
|
||||
|
||||
void setNotTracking(bool on=true) {
|
||||
StatusBits.set(NoTrack, on);
|
||||
}
|
||||
|
||||
bool isNotTracking() const {
|
||||
return StatusBits.test(NoTrack);
|
||||
}
|
||||
|
||||
typedef void* PointerType;
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user