mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-25 22:42:04 +02:00
Fixed few more memory leaks in client
This commit is contained in:
@@ -140,12 +140,12 @@ public:
|
||||
si32 fileVersion;
|
||||
|
||||
std::map<ui32, void*> loadedPointers;
|
||||
std::map<ui32, const std::type_info*> loadedPointersTypes;
|
||||
std::map<const void*, std::shared_ptr<void>> loadedSharedPointers;
|
||||
bool smartPointerSerialization;
|
||||
bool saving;
|
||||
|
||||
BinaryDeserializer(IBinaryReader * r);
|
||||
~BinaryDeserializer();
|
||||
|
||||
template<class T>
|
||||
BinaryDeserializer & operator&(T & t)
|
||||
@@ -279,7 +279,6 @@ public:
|
||||
{
|
||||
// We already got this pointer
|
||||
// Cast it in case we are loading it to a non-first base pointer
|
||||
assert(loadedPointersTypes.count(pid));
|
||||
data = static_cast<T>(i->second);
|
||||
return;
|
||||
}
|
||||
@@ -313,10 +312,7 @@ public:
|
||||
void ptrAllocated(const T *ptr, ui32 pid)
|
||||
{
|
||||
if(smartPointerSerialization && pid != 0xffffffff)
|
||||
{
|
||||
loadedPointersTypes[pid] = &typeid(T);
|
||||
loadedPointers[pid] = (void*)ptr; //add loaded pointer to our lookup map; cast is to avoid errors with const T* pt
|
||||
}
|
||||
}
|
||||
|
||||
template<typename Base, typename Derived> void registerType(const Base * b = nullptr, const Derived * d = nullptr)
|
||||
|
||||
Reference in New Issue
Block a user