diff --git a/include/Nazara/Core/MemoryHelper.hpp b/include/Nazara/Core/MemoryHelper.hpp index 880418bec..e2f295622 100644 --- a/include/Nazara/Core/MemoryHelper.hpp +++ b/include/Nazara/Core/MemoryHelper.hpp @@ -15,7 +15,7 @@ namespace Nz void* OperatorNew(std::size_t size); template - T* PlacementNew(void* ptr, Args&&... args); + T* PlacementNew(T* ptr, Args&&... args); } #include diff --git a/include/Nazara/Core/MemoryHelper.inl b/include/Nazara/Core/MemoryHelper.inl index 7f77dd041..23a745a44 100644 --- a/include/Nazara/Core/MemoryHelper.inl +++ b/include/Nazara/Core/MemoryHelper.inl @@ -58,7 +58,7 @@ namespace Nz * \param args Arguments for the constructor */ template - T* PlacementNew(void* ptr, Args&&... args) + T* PlacementNew(T* ptr, Args&&... args) { return new (ptr) T(std::forward(args)...); } diff --git a/include/Nazara/Core/MemoryPool.inl b/include/Nazara/Core/MemoryPool.inl index 14c3868dd..732c50fa9 100644 --- a/include/Nazara/Core/MemoryPool.inl +++ b/include/Nazara/Core/MemoryPool.inl @@ -191,7 +191,7 @@ namespace Nz inline T* MemoryPool::New(Args&&... args) { T* object = static_cast(Allocate(sizeof(T))); - PlacementNew(object, std::forward(args)...); + PlacementNew(object, std::forward(args)...); return object; } diff --git a/include/Nazara/Lua/LuaClass.inl b/include/Nazara/Lua/LuaClass.inl index 913382f99..edb7103b6 100644 --- a/include/Nazara/Lua/LuaClass.inl +++ b/include/Nazara/Lua/LuaClass.inl @@ -54,8 +54,8 @@ namespace Nz // cette UserData disposera d'un finalizer qui libérera le ClassInfo // 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)); - PlacementNew>(info, m_info); + std::shared_ptr* info = static_cast*>(lua.PushUserdata(sizeof(std::shared_ptr))); + PlacementNew(info, m_info); // On créé la table qui contiendra une méthode (Le finalizer) pour libérer le ClassInfo lua.PushTable(0, 1); diff --git a/src/Nazara/Core/ParameterList.cpp b/src/Nazara/Core/ParameterList.cpp index 5edd8f976..f9a24d4cc 100644 --- a/src/Nazara/Core/ParameterList.cpp +++ b/src/Nazara/Core/ParameterList.cpp @@ -449,7 +449,7 @@ namespace Nz Parameter& parameter = CreateValue(name); parameter.type = ParameterType_String; - PlacementNew(¶meter.value.stringVal, value); + PlacementNew(¶meter.value.stringVal, value); } /*! @@ -464,7 +464,7 @@ namespace Nz Parameter& parameter = CreateValue(name); parameter.type = ParameterType_String; - PlacementNew(¶meter.value.stringVal, value); + PlacementNew(¶meter.value.stringVal, value); } /*! @@ -565,7 +565,7 @@ namespace Nz case ParameterType_String: parameter.type = ParameterType_String; - PlacementNew(¶meter.value.stringVal, it->second.value.stringVal); + PlacementNew(¶meter.value.stringVal, it->second.value.stringVal); break; case ParameterType_Userdata: diff --git a/src/Nazara/Lua/LuaInstance.cpp b/src/Nazara/Lua/LuaInstance.cpp index a93013567..23f852921 100644 --- a/src/Nazara/Lua/LuaInstance.cpp +++ b/src/Nazara/Lua/LuaInstance.cpp @@ -634,7 +634,7 @@ namespace Nz void LuaInstance::PushFunction(LuaFunction func) const { LuaFunction* luaFunc = static_cast(lua_newuserdata(m_state, sizeof(LuaFunction))); - PlacementNew(luaFunc, std::move(func)); + PlacementNew(luaFunc, std::move(func)); lua_pushcclosure(m_state, ProxyFunc, 1); }