diff --git a/RTTI/RTTI.cpp b/RTTI/RTTI.cpp index a64bf85..3c01557 100644 --- a/RTTI/RTTI.cpp +++ b/RTTI/RTTI.cpp @@ -2,13 +2,16 @@ void IRTTI::TreeArray::push_back(const Classes type) { + Tree[size - 1] = type; + size++; Classes* NewTree = new Classes[size]; for (size_t i = 0; i < size - 1; ++i) NewTree[i] = Tree[i]; - - NewTree[size - 1] = type; + + delete[] Tree; + Tree = NewTree; } IRTTI::TreeArray::TreeArray() @@ -20,7 +23,7 @@ IRTTI::TreeArray::TreeArray() void IRTTI::SetType(const Classes type) { this->type = type; - //Tree.push_back(type); + Tree.push_back(type); } IRTTI::IRTTI() diff --git a/RTTI/RTTI.h b/RTTI/RTTI.h index a392c88..c021cb8 100644 --- a/RTTI/RTTI.h +++ b/RTTI/RTTI.h @@ -44,7 +44,7 @@ public: if (IsA(InterfaceOfObject->type)) return reinterpret_cast(object); - const size_t coutType = InterfaceOfObject->Tree.size; + const size_t coutType = InterfaceOfObject->Tree.size - 1; for (size_t i = 0; i < coutType; ++i) { if (InterfaceOfObject->Tree.Tree[i] == Meta::Type)