Ensure pointers aren't used anymore when their parents are being deleted and they should be deleted themselves.

This commit is contained in:
Deukhoofd committed 2020-05-20 14:47:17 +02:00
1 parent 9bcfdf7791
commit eb99fc5661
9 files changed
+72 -3

No files matched your search

+6
View File
@@ -143,6 +143,12 @@ namespace PkmnLibSharp.Library
{
}
protected internal override void MarkAsDeleted()
{
base.MarkAsDeleted();
_moves?.MarkAsDeleted();
}
protected override void DeletePtr()
{
SpeciesVariant.Destruct(Ptr);
@@ -63,6 +63,15 @@ namespace PkmnLibSharp.Library.Items
{
}
protected internal override void MarkAsDeleted()
{
base.MarkAsDeleted();
foreach (var item in _cache)
{
item.Value.MarkAsDeleted();
}
}
protected override void DeletePtr()
{
Creatureliblibrary.Generated.ItemLibrary.Destruct(Ptr);
@@ -66,6 +66,15 @@ namespace PkmnLibSharp.Library.Moves
{
}
protected internal override void MarkAsDeleted()
{
base.MarkAsDeleted();
foreach (var moveData in _cache)
{
moveData.Value.MarkAsDeleted();
}
}
protected override void DeletePtr()
{
AttackLibrary.Destruct(Ptr);
+9
View File
@@ -58,5 +58,14 @@ namespace PkmnLibSharp.Library
{
Pkmnlib.Generated.NatureLibrary.Destruct(Ptr);
}
protected internal override void MarkAsDeleted()
{
base.MarkAsDeleted();
foreach (var nature in _cache)
{
nature.Value.MarkAsDeleted();
}
}
}
}
+12
View File
@@ -133,5 +133,17 @@ namespace PkmnLibSharp.Library
{
Pkmnlib.Generated.PokemonLibrary.Destruct(Ptr);
}
protected internal override void MarkAsDeleted()
{
base.MarkAsDeleted();
_settings?.MarkAsDeleted();
_species?.MarkAsDeleted();
_moves?.MarkAsDeleted();
_items?.MarkAsDeleted();
_growthRateLibrary?.MarkAsDeleted();
_typeLibrary?.MarkAsDeleted();
_natureLibrary?.MarkAsDeleted();
}
}
}
+9
View File
@@ -84,6 +84,15 @@ namespace PkmnLibSharp.Library
return s;
}
protected internal override void MarkAsDeleted()
{
base.MarkAsDeleted();
foreach (var forme in _formes)
{
forme.Value.MarkAsDeleted();
}
}
protected override void DeletePtr()
{
PokemonSpecies.Destruct(Ptr);
+9
View File
@@ -67,5 +67,14 @@ namespace PkmnLibSharp.Library
{
Creatureliblibrary.Generated.SpeciesLibrary.Destruct(Ptr);
}
protected internal override void MarkAsDeleted()
{
base.MarkAsDeleted();
foreach (var species in _cache)
{
species.Value.MarkAsDeleted();
}
}
}
}