1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-25 06:35:30 +00:00

Fix using the wrong id for insertStatic

This commit is contained in:
ζeh Matt 2022-08-15 17:04:37 +03:00
parent 6756f4397e
commit 6abb96250f
No known key found for this signature in database
GPG Key ID: 18CE582C71A225B0

View File

@ -249,17 +249,14 @@ namespace MWWorld
template <class T>
const T *insertStatic(const T &x)
{
const std::string id = "$dynamic" + std::to_string(mDynamicCount++);
Store<T> &store = const_cast<Store<T> &>(get<T>());
if (store.search(id) != nullptr)
if (store.search(x.mId) != nullptr)
{
const std::string msg = "Try to override existing record '" + id + "'";
const std::string msg = "Try to override existing record '" + x.mId + "'";
throw std::runtime_error(msg);
}
T record = x;
T *ptr = store.insertStatic(record);
T *ptr = store.insertStatic(x);
for (iterator it = mStores.begin(); it != mStores.end(); ++it) {
if (it->second == &store) {
mIds[ptr->mId] = it->first;