Compilation fix 2

This commit is contained in:
Nekotekina
2014-08-31 03:19:10 +04:00
parent ff3df64a26
commit 140d40b5bc
2 changed files with 22 additions and 37 deletions
+10 -10
View File
@@ -105,12 +105,12 @@ namespace vm
public:
__forceinline T* operator -> ()
{
return get_ptr<T>(m_addr);
return vm::get_ptr<T>(m_addr);
}
__forceinline const T* operator -> () const
{
return get_ptr<const T>(m_addr);
return vm::get_ptr<const T>(m_addr);
}
ptr operator++ (int)
@@ -309,28 +309,28 @@ namespace vm
__forceinline RT call_func(bool is_async, T... args) const
{
template<typename T>
template<typename TT>
struct _func_arg
{
__forceinline static u64 get_value(const T& arg)
__forceinline static u64 get_value(const TT& arg)
{
return arg;
}
};
template<typename T, typename AT>
struct _func_arg<ptr<T, AT>>
template<typename TT, typename ATT>
struct _func_arg<ptr<TT, ATT>>
{
__forceinline static u64 get_value(const ptr<T, AT> arg)
__forceinline static u64 get_value(const ptr<TT, ATT> arg)
{
return arg.addr();
}
};
template<typename T, typename AT>
struct _func_arg<ref<T, AT>>
template<typename TT, typename ATT>
struct _func_arg<ref<TT, ATT>>
{
__forceinline static u64 get_value(const ref<T, AT> arg)
__forceinline static u64 get_value(const ref<TT, ATT> arg)
{
return arg.addr();
}
+12 -27
View File
@@ -34,16 +34,16 @@ namespace vm
void alloc()
{
m_addr = Memory.Alloc(size(), m_align);
m_ptr = (T*)Memory.VirtualToRealAddr(m_addr);
m_ptr = vm::get_ptr<T>(m_addr);
}
void dealloc()
{
if (check())
if (m_addr)
{
Memory.Free(m_addr);
m_addr = 0;
m_ptr = nullptr;
m_ptr = vm::get_ptr<T>(0);
}
}
@@ -54,7 +54,7 @@ namespace vm
res.m_addr = addr;
res.m_size = size;
res.m_align = align;
res.m_ptr = (T*)Memory.VirtualToRealAddr(addr);
res.m_ptr = vm::get_ptr<T>(addr);
return res;
}
@@ -99,11 +99,6 @@ namespace vm
return m_size;
}
bool check() const
{
return m_ptr != nullptr;
}
/*
operator const ref<T>() const
{
@@ -155,13 +150,13 @@ namespace vm
void alloc()
{
m_addr = Memory.Alloc(size(), m_align);
m_ptr = (T*)Memory.VirtualToRealAddr(m_addr);
m_addr = (u32)Memory.Alloc(size(), m_align);
m_ptr = vm::get_ptr<T>(m_addr);
}
void dealloc()
{
if (check())
if (m_addr)
{
Memory.Free(m_addr);
m_addr = 0;
@@ -177,7 +172,7 @@ namespace vm
res.m_count = count;
res.m_size = size;
res.m_align = align;
res.m_ptr = (T*)Memory.VirtualToRealAddr(addr);
res.m_ptr = vm::get_ptr<T>(addr);
return res;
}
@@ -237,11 +232,6 @@ namespace vm
return m_count;
}
bool check() const
{
return Memory.IsGoodAddr(m_addr, size());
}
template<typename T1>
operator const T1() const
{
@@ -354,17 +344,17 @@ namespace vm
void alloc()
{
m_addr = Memory.Alloc(size(), m_align);
m_ptr = (T*)Memory.VirtualToRealAddr(m_addr);
m_addr = (u32)Memory.Alloc(size(), m_align);
m_ptr = vm::get_ptr<T>(m_addr);
}
void dealloc()
{
if (check())
if (m_addr)
{
Memory.Free(m_addr);
m_addr = 0;
m_ptr = nullptr;
m_ptr = vm::get_ptr<T>(0);
}
}
@@ -423,11 +413,6 @@ namespace vm
return _count * m_size;
}
bool check() const
{
return m_ptr != nullptr;
}
template<typename T1>
operator const T1() const
{