App: make deleting dynamic property safer
Dynamic property can be removed at any time, even during triggering of onChanged() signal of the removing property. This patch introduced static function Property::destroy() to make it safer by queueing any removed property, and only deleting them when no onChanged() call is active.
This commit is contained in:
@@ -215,7 +215,7 @@ bool DynamicProperty::removeDynamicProperty(const char* name)
|
||||
throw Base::RuntimeError("property is not dynamic");
|
||||
Property *prop = it->property;
|
||||
GetApplication().signalRemoveDynamicProperty(*prop);
|
||||
delete prop;
|
||||
Property::destroy(prop);
|
||||
index.erase(it);
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user