From 26e03fa794f235367b68b19442eb5e180a2346cc Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Sun, 31 Aug 2014 03:38:55 +0400 Subject: [PATCH] Compilation fix 3 --- rpcs3/Emu/Memory/vm.h | 2 +- rpcs3/Emu/Memory/vm_ptr.h | 79 +++++++++++++-------------------------- rpcs3/Emu/Memory/vm_ref.h | 5 --- rpcs3/Emu/Memory/vm_var.h | 2 +- 4 files changed, 29 insertions(+), 59 deletions(-) diff --git a/rpcs3/Emu/Memory/vm.h b/rpcs3/Emu/Memory/vm.h index 4cd5b42ec2..3898847569 100644 --- a/rpcs3/Emu/Memory/vm.h +++ b/rpcs3/Emu/Memory/vm.h @@ -23,6 +23,6 @@ namespace vm void write32(u32 addr, u32 value); } -#include "vm_ptr.h" #include "vm_ref.h" +#include "vm_ptr.h" #include "vm_var.h" \ No newline at end of file diff --git a/rpcs3/Emu/Memory/vm_ptr.h b/rpcs3/Emu/Memory/vm_ptr.h index 23a756fbfa..3ed4231827 100644 --- a/rpcs3/Emu/Memory/vm_ptr.h +++ b/rpcs3/Emu/Memory/vm_ptr.h @@ -85,11 +85,6 @@ namespace vm { return m_addr; } - - bool check() const - { - return Memory.IsGoodAddr(m_addr, sizeof(AT)); - } static ptr make(u32 addr) { @@ -208,11 +203,6 @@ namespace vm return vm::get_ptr(m_addr); } - bool check() const - { - return Memory.IsGoodAddr(m_addr, sizeof(T)); - } - static ptr make(u32 addr) { return (ptr&)addr; @@ -234,11 +224,6 @@ namespace vm { return vm::get_ptr(m_addr); } - - bool check() const - { - return Memory.IsGoodAddr(m_addr); - } operator bool() const { @@ -286,11 +271,6 @@ namespace vm return *((type*)vm::get_ptr(m_addr)); } - bool check() const - { - return Memory.IsGoodAddr(m_addr); - } - operator bool() const { return m_addr != 0; @@ -307,35 +287,35 @@ namespace vm { AT m_addr; + template + struct _func_arg + { + __forceinline static u64 get_value(const TT& arg) + { + return arg; + } + }; + + template + struct _func_arg> + { + __forceinline static u64 get_value(const ptr arg) + { + return arg.addr(); + } + }; + + template + struct _func_arg<_ref_base> + { + __forceinline static u64 get_value(const _ref_base arg) + { + return arg.addr(); + } + }; + __forceinline RT call_func(bool is_async, T... args) const { - template - struct _func_arg - { - __forceinline static u64 get_value(const TT& arg) - { - return arg; - } - }; - - template - struct _func_arg> - { - __forceinline static u64 get_value(const ptr arg) - { - return arg.addr(); - } - }; - - template - struct _func_arg> - { - __forceinline static u64 get_value(const ref arg) - { - return arg.addr(); - } - }; - Callback cb; cb.SetAddr(m_addr); cb.Handle(_func_arg::get_value(args)...); @@ -365,11 +345,6 @@ namespace vm return *((type*)vm::get_ptr(m_addr)); } - bool check() const - { - return Memory.IsGoodAddr(m_addr); - } - operator bool() const { return m_addr != 0; diff --git a/rpcs3/Emu/Memory/vm_ref.h b/rpcs3/Emu/Memory/vm_ref.h index 0d15220a08..e75d67e02a 100644 --- a/rpcs3/Emu/Memory/vm_ref.h +++ b/rpcs3/Emu/Memory/vm_ref.h @@ -23,11 +23,6 @@ namespace vm return m_addr; } - bool check() const - { - return Memory.IsGoodAddr(m_addr, sizeof(T)); - } - static _ref_base make(u32 addr) { return (_ref_base&)addr; diff --git a/rpcs3/Emu/Memory/vm_var.h b/rpcs3/Emu/Memory/vm_var.h index 6bd6af59d1..39467e3b10 100644 --- a/rpcs3/Emu/Memory/vm_var.h +++ b/rpcs3/Emu/Memory/vm_var.h @@ -33,7 +33,7 @@ namespace vm void alloc() { - m_addr = Memory.Alloc(size(), m_align); + m_addr = (u32)Memory.Alloc(size(), m_align); m_ptr = vm::get_ptr(m_addr); }