Added memory helpers

This will protect some memory-related code from new redefinition


Former-commit-id: 337e69e70acd0bf8dbc3ba1657c6bb0bddfd5df4
This commit is contained in:
Lynix
2014-07-22 17:26:31 +02:00
parent fba2e5ae01
commit e6dea541a7
7 changed files with 79 additions and 28 deletions

View File

@@ -4,6 +4,7 @@
#include <Nazara/Core/Error.hpp>
#include <iostream>
#include <Nazara/Core/MemoryHelper.hpp>
#include <Nazara/Lua/Debug.hpp>
template<class T>
@@ -31,7 +32,7 @@ void NzLuaClass<T>::Register(NzLuaInstance& lua)
// Ainsi c'est Lua qui va s'occuper de la destruction pour nous :-)
// De même, l'utilisation d'un shared_ptr permet de garder la structure en vie même si l'instance est libérée avant le LuaClass
void* info = lua.PushUserdata(sizeof(std::shared_ptr<ClassInfo>));
new (info) std::shared_ptr<ClassInfo>(m_info);
NzPlacementNew<std::shared_ptr<ClassInfo>>(info, m_info);
// On créé la table qui contiendra une méthode (Le finalizer) pour libérer le ClassInfo
lua.PushTable(0, 1);