Always dynamically allocate PropertyTable
- `Texture::~Texture` expects `props` to be dynamically allocated. - `GetPropertyTable` returned a pointer to an existing `PropertyTable` but is expected to return a newly, dynamically allocated one. - `PropertyTable::PropertyTable()` suggests that an empty `element` property is valid. fix #46876 fix #45573
This commit is contained in:
parent
85cb3c044d
commit
09bda3f140
3 changed files with 7 additions and 1 deletions
|
@ -160,7 +160,7 @@ const PropertyTable *GetPropertyTable(const Document &doc,
|
|||
DOMWarning("property table (Properties70) not found", element);
|
||||
}
|
||||
if (templateProps) {
|
||||
return templateProps;
|
||||
return new const PropertyTable(templateProps);
|
||||
} else {
|
||||
return new const PropertyTable();
|
||||
}
|
||||
|
|
|
@ -149,6 +149,11 @@ PropertyTable::PropertyTable() :
|
|||
templateProps(), element() {
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
PropertyTable::PropertyTable(const PropertyTable *templateProps) :
|
||||
templateProps(templateProps), element() {
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
PropertyTable::PropertyTable(const ElementPtr element, const PropertyTable *templateProps) :
|
||||
templateProps(templateProps), element(element) {
|
||||
|
|
|
@ -137,6 +137,7 @@ class PropertyTable {
|
|||
public:
|
||||
// in-memory property table with no source element
|
||||
PropertyTable();
|
||||
PropertyTable(const PropertyTable *templateProps);
|
||||
PropertyTable(const ElementPtr element, const PropertyTable *templateProps);
|
||||
~PropertyTable();
|
||||
|
||||
|
|
Loading…
Reference in a new issue