DarkRadiant: master acc606cc

Author Committer Branch Timestamp Parent
orbweaver orbweaver master 03.03.2021 20:14 master 7dbe8cfb
Changeset Remove string sharing mechanism from EntityClassAttribute

Sharing of strings was added to solve a specific problem with memory usage when
attributes (including those with long strings like editor_usage) were copied
into hundreds of child entities. Since we are no longer copying inherited
attributes but allowing children to access them directly, this mechanism is
largely redundant.

There might be a *slight* increase in memory usage (compared to the previous
commit) now that the EntityAttributeMap is storing name strings twice (once in
the key, and once in the EntityClassAttribute::_name member), but I assume this
is OK since the overall number of EntityClassAttributes is drastically reduced
due to the lack of copying, and the lengthy editor_usage values are not
duplicated.
mod - include/ieclass.h Diff File
mod - radiantcore/eclass/EntityClass.cpp Diff File
mod - radiantcore/eclass/EntityClass.h Diff File