24 #ifndef LUABIND_OBJECT_REP_HPP_INCLUDED 25 #define LUABIND_OBJECT_REP_HPP_INCLUDED 28 #include <boost/aligned_storage.hpp> 29 #include <luabind/config.hpp> 30 #include <luabind/detail/class_rep.hpp> 31 #include <luabind/detail/instance_holder.hpp> 32 #include <luabind/detail/ref.hpp> 34 namespace luabind {
namespace detail
36 void finalize(
lua_State* L, class_rep* crep);
47 const class_rep* crep()
const {
return m_classrep; }
52 void add_dependency(
lua_State* L,
int index);
53 void release_dependency_refs(
lua_State* L);
55 std::pair<void*, int> get_instance(class_id target)
const 58 return std::pair<void*, int>((
void*)0, -1);
59 return m_instance->get(m_classrep->casts(), target);
64 return m_instance && m_instance->pointee_const();
70 m_instance->release();
73 void* allocate(std::size_t size)
76 return &m_instance_buffer;
77 return std::malloc(size);
80 void deallocate(
void* storage)
82 if (storage == &m_instance_buffer)
96 boost::aligned_storage<32> m_instance_buffer;
98 std::size_t m_dependency_cnt;
104 static void apply(
void* ptr)
106 delete static_cast<T*
>(ptr);
113 static void apply(
void* ptr)
118 int completeness_check[
sizeof(T)];
119 (void)completeness_check;
121 static_cast<T*
>(ptr)->~T();
126 LUABIND_API
void push_instance_metatable(
lua_State* L);
131 #endif // LUABIND_OBJECT_REP_HPP_INCLUDED Definition: object_rep.hpp:102
Definition: minilua.c:461
Definition: object_rep.hpp:41
Definition: PEtypes.h:507
Definition: class_rep.hpp:68
Definition: object_rep.hpp:111
Definition: instance_holder.hpp:16