Browse Source

Fix memory leak in `DBAPI`'s `LoadLocal()`

core_refactor
Anton Tarasenko 2 years ago
parent
commit
816bf3968d
  1. 5
      sources/Data/Database/DBAPI.uc

5
sources/Data/Database/DBAPI.uc

@ -166,6 +166,7 @@ public final function LocalDatabaseInstance LoadLocal(BaseText databaseName)
local Text rootRecordName; local Text rootRecordName;
local LocalDatabase newConfig; local LocalDatabase newConfig;
local LocalDatabaseInstance newLocalDBInstance; local LocalDatabaseInstance newLocalDBInstance;
local Text dbKey;
if (databaseName == none) { if (databaseName == none) {
return none; return none;
@ -186,7 +187,9 @@ public final function LocalDatabaseInstance LoadLocal(BaseText databaseName)
return none; return none;
} }
newLocalDBInstance = LocalDatabaseInstance(_.memory.Allocate(localDBClass)); newLocalDBInstance = LocalDatabaseInstance(_.memory.Allocate(localDBClass));
loadedLocalDatabases.SetItem(databaseName.Copy(), newLocalDBInstance); dbKey = databaseName.Copy();
loadedLocalDatabases.SetItem(dbKey, newLocalDBInstance);
dbKey.FreeSelf();
if (newConfig.HasDefinedRoot()) if (newConfig.HasDefinedRoot())
{ {
rootRecordName = newConfig.GetRootName(); rootRecordName = newConfig.GetRootName();

Loading…
Cancel
Save