From 961fc272156890f66ca5cbfe235ebc1fea27bdc7 Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Sat, 7 Mar 2015 16:39:07 +0300 Subject: [PATCH] Minor cleanup --- Utilities/Log.h | 2 +- Utilities/StrFmt.cpp | 86 ----- Utilities/StrFmt.h | 389 +--------------------- rpcs3/Emu/Cell/PPUThread.cpp | 1 - rpcs3/Emu/Cell/PPUThread.h | 1 - rpcs3/Emu/SysCalls/LogBase.h | 2 +- rpcs3/Emu/SysCalls/Modules/cellSail.cpp | 2 +- rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp | 8 - 8 files changed, 8 insertions(+), 483 deletions(-) diff --git a/Utilities/Log.h b/Utilities/Log.h index 04d1225f2d..2fbbee34de 100644 --- a/Utilities/Log.h +++ b/Utilities/Log.h @@ -132,5 +132,5 @@ void log_message(Log::LogType type, Log::LogSeverity sev, std::string text); template __noinline void log_message(Log::LogType type, Log::LogSeverity sev, const char* fmt, Targs... args) { - log_message(type, sev, fmt::detail::format(fmt, fmt::do_unveil(args)...)); + log_message(type, sev, fmt::Format(fmt, fmt::do_unveil(args)...)); } diff --git a/Utilities/StrFmt.cpp b/Utilities/StrFmt.cpp index f3f74a327d..b9eea87b95 100644 --- a/Utilities/StrFmt.cpp +++ b/Utilities/StrFmt.cpp @@ -70,92 +70,6 @@ std::string fmt::to_sdec(s64 svalue) return std::string(&res[first], sizeof(res) - first); } -size_t fmt::detail::get_fmt_start(const char* fmt, size_t len) -{ - for (size_t i = 0; i < len; i++) - { - if (fmt[i] == '%') - { - return i; - } - } - - return len; -} - -size_t fmt::detail::get_fmt_len(const char* fmt, size_t len) -{ - assert(len >= 2 && fmt[0] == '%'); - - size_t res = 2; - - if (fmt[1] == '.' || fmt[1] == '0') - { - assert(len >= 4 && fmt[2] - '1' < 9); - res += 2; - fmt += 2; - len -= 2; - - if (fmt[0] == '1') - { - assert(len >= 3 && fmt[1] - '0' < 7); - res++; - fmt++; - len--; - } - } - - if (fmt[1] == 'l') - { - assert(len >= 3); - res++; - fmt++; - len--; - } - - if (fmt[1] == 'l') - { - assert(len >= 3); - res++; - fmt++; - len--; - } - - return res; -} - -size_t fmt::detail::get_fmt_precision(const char* fmt, size_t len) -{ - assert(len >= 2); - - if (fmt[1] == '.' || fmt[1] == '0') - { - assert(len >= 4 && fmt[2] - '1' < 9); - - if (fmt[2] == '1') - { - assert(len >= 5 && fmt[3] - '0' < 7); - return 10 + fmt[3] - '0'; - } - - return fmt[2] - '0'; - } - - return 1; -} - -std::string fmt::detail::format(const char* fmt) -{ - const size_t len = strlen(fmt); - const size_t fmt_start = get_fmt_start(fmt, len); - if (fmt_start != len) - { - throw "Excessive formatting: " + std::string(fmt, len); - } - - return std::string(fmt, len); -} - extern const std::string fmt::placeholder = "???"; std::string fmt::replace_first(const std::string& src, const std::string& from, const std::string& to) diff --git a/Utilities/StrFmt.h b/Utilities/StrFmt.h index 1272b68aa8..623555f70e 100644 --- a/Utilities/StrFmt.h +++ b/Utilities/StrFmt.h @@ -177,366 +177,6 @@ namespace fmt std::string to_udec(u64 value); std::string to_sdec(s64 value); - std::string toupper(std::string source); - - namespace detail - { - size_t get_fmt_start(const char* fmt, size_t len); - size_t get_fmt_len(const char* fmt, size_t len); - size_t get_fmt_precision(const char* fmt, size_t len); - - template - struct get_fmt - { - static_assert(!sizeof(T), "Unsupported fmt::format argument"); - }; - - template<> - struct get_fmt - { - static std::string text(const char* fmt, size_t len, u8 arg) - { - if (fmt[len - 1] == 'x') - { - return to_hex(arg, get_fmt_precision(fmt, len)); - } - else if (fmt[len - 1] == 'X') - { - return fmt::toupper(to_hex(arg, get_fmt_precision(fmt, len))); - } - else if (fmt[len - 1] == 'd' || fmt[len - 1] == 'u') - { - return to_udec(arg); - } - else - { - throw "Invalid formatting (u8): " + std::string(fmt, len); - } - } - }; - - template<> - struct get_fmt - { - static std::string text(const char* fmt, size_t len, u16 arg) - { - if (fmt[len - 1] == 'x') - { - return to_hex(arg, get_fmt_precision(fmt, len)); - } - else if (fmt[len - 1] == 'X') - { - return fmt::toupper(to_hex(arg, get_fmt_precision(fmt, len))); - } - else if (fmt[len - 1] == 'd' || fmt[len - 1] == 'u') - { - return to_udec(arg); - } - else - { - throw "Invalid formatting (u16): " + std::string(fmt, len); - } - } - }; - - template<> - struct get_fmt - { - static std::string text(const char* fmt, size_t len, u32 arg) - { - if (fmt[len - 1] == 'x') - { - return to_hex(arg, get_fmt_precision(fmt, len)); - } - else if (fmt[len - 1] == 'X') - { - return fmt::toupper(to_hex(arg, get_fmt_precision(fmt, len))); - } - else if (fmt[len - 1] == 'd' || fmt[len - 1] == 'u') - { - return to_udec(arg); - } - else - { - throw "Invalid formatting (u32): " + std::string(fmt, len); - } - } - }; - -#ifdef __APPLE__ - template<> - struct get_fmt - { - static std::string text(const char* fmt, size_t len, unsigned long arg) - { - if (fmt[len - 1] == 'x') - { - return to_hex(arg, get_fmt_precision(fmt, len)); - } - else if (fmt[len - 1] == 'X') - { - return fmt::toupper(to_hex(arg, get_fmt_precision(fmt, len))); - } - else if (fmt[len - 1] == 'd' || fmt[len - 1] == 'u') - { - return to_udec(arg); - } - else - { - throw "Invalid formatting (unsigned long): " + std::string(fmt, len); - } - } - }; -#endif - - template<> - struct get_fmt - { - static std::string text(const char* fmt, size_t len, u64 arg) - { - if (fmt[len - 1] == 'x') - { - return to_hex(arg, get_fmt_precision(fmt, len)); - } - else if (fmt[len - 1] == 'X') - { - return fmt::toupper(to_hex(arg, get_fmt_precision(fmt, len))); - } - else if (fmt[len - 1] == 'd' || fmt[len - 1] == 'u') - { - return to_udec(arg); - } - else - { - throw "Invalid formatting (u64): " + std::string(fmt, len); - } - } - }; - - template<> - struct get_fmt - { - static std::string text(const char* fmt, size_t len, s8 arg) - { - if (fmt[len - 1] == 'x') - { - return to_hex((u8)arg, get_fmt_precision(fmt, len)); - } - else if (fmt[len - 1] == 'X') - { - return fmt::toupper(to_hex((u8)arg, get_fmt_precision(fmt, len))); - } - else if (fmt[len - 1] == 'd') - { - return to_sdec(arg); - } - else - { - throw "Invalid formatting (s8): " + std::string(fmt, len); - } - } - }; - - template<> - struct get_fmt - { - static std::string text(const char* fmt, size_t len, s16 arg) - { - if (fmt[len - 1] == 'x') - { - return to_hex((u16)arg, get_fmt_precision(fmt, len)); - } - else if (fmt[len - 1] == 'X') - { - return fmt::toupper(to_hex((u16)arg, get_fmt_precision(fmt, len))); - } - else if (fmt[len - 1] == 'd') - { - return to_sdec(arg); - } - else - { - throw "Invalid formatting (s16): " + std::string(fmt, len); - } - } - }; - - template<> - struct get_fmt - { - static std::string text(const char* fmt, size_t len, s32 arg) - { - if (fmt[len - 1] == 'x') - { - return to_hex((u32)arg, get_fmt_precision(fmt, len)); - } - else if (fmt[len - 1] == 'X') - { - return fmt::toupper(to_hex((u32)arg, get_fmt_precision(fmt, len))); - } - else if (fmt[len - 1] == 'd') - { - return to_sdec(arg); - } - else - { - throw "Invalid formatting (s32): " + std::string(fmt, len); - } - } - }; - -#ifdef __APPLE__ - template<> - struct get_fmt - { - static std::string text(const char* fmt, size_t len, long arg) - { - if (fmt[len - 1] == 'x') - { - return to_hex((u64)arg, get_fmt_precision(fmt, len)); - } - else if (fmt[len - 1] == 'X') - { - return fmt::toupper(to_hex((u64)arg, get_fmt_precision(fmt, len))); - } - else if (fmt[len - 1] == 'd') - { - return to_sdec(arg); - } - else - { - throw "Invalid formatting (long): " + std::string(fmt, len); - } - } - }; -#endif - - template<> - struct get_fmt - { - static std::string text(const char* fmt, size_t len, s64 arg) - { - if (fmt[len - 1] == 'x') - { - return to_hex((u64)arg, get_fmt_precision(fmt, len)); - } - else if (fmt[len - 1] == 'X') - { - return fmt::toupper(to_hex((u64)arg, get_fmt_precision(fmt, len))); - } - else if (fmt[len - 1] == 'd') - { - return to_sdec(arg); - } - else - { - throw "Invalid formatting (s64): " + std::string(fmt, len); - } - } - }; - - template<> - struct get_fmt - { - static std::string text(const char* fmt, size_t len, float arg) - { - if (fmt[len - 1] == 'x') - { - return to_hex((u32&)arg, get_fmt_precision(fmt, len)); - } - else if (fmt[len - 1] == 'X') - { - return fmt::toupper(to_hex((u32&)arg, get_fmt_precision(fmt, len))); - } - else if (fmt[len - 1] == 'f') - { - return std::to_string(arg); - } - else - { - throw "Invalid formatting (float): " + std::string(fmt, len); - } - } - }; - - template<> - struct get_fmt - { - static std::string text(const char* fmt, size_t len, double arg) - { - if (fmt[len - 1] == 'x') - { - return to_hex((u64&)arg, get_fmt_precision(fmt, len)); - } - else if (fmt[len - 1] == 'X') - { - return fmt::toupper(to_hex((u64&)arg, get_fmt_precision(fmt, len))); - } - else if (fmt[len - 1] == 'f') - { - return std::to_string(arg); - } - else - { - throw "Invalid formatting (double): " + std::string(fmt, len); - } - } - }; - - template<> - struct get_fmt - { - static std::string text(const char* fmt, size_t len, bool arg) - { - if (fmt[len - 1] == 'x' || fmt[len - 1] == 'X') - { - return to_hex(arg, get_fmt_precision(fmt, len)); - } - else if (fmt[len - 1] == 'd' || fmt[len - 1] == 'u') - { - return arg ? "1" : "0"; - } - else if (fmt[len - 1] == 's') - { - return arg ? "true" : "false"; - } - else - { - throw "Invalid formatting (bool): " + std::string(fmt, len); - } - } - }; - - template<> - struct get_fmt - { - static std::string text(const char* fmt, size_t len, const char* arg) - { - if (fmt[len - 1] == 's') - { - return arg; - } - else - { - throw "Invalid formatting (const char*): " + std::string(fmt, len); - } - } - }; - - std::string format(const char* fmt); // terminator - - template - std::string format(const char* fmt, const T& arg, Args... args) - { - const size_t len = strlen(fmt); - const size_t fmt_start = get_fmt_start(fmt, len); - const size_t fmt_len = get_fmt_len(fmt + fmt_start, len - fmt_start); - const size_t fmt_end = fmt_start + fmt_len; - - return std::string(fmt, fmt_start) + get_fmt::text(fmt + fmt_start, fmt_len, arg) + format(fmt + fmt_end, args...); - } - }; - template::value> struct unveil { @@ -612,24 +252,12 @@ namespace fmt /* fmt::format(const char* fmt, args...) - Formatting function with very limited functionality (compared to printf-like formatting) and be_t<> support + Formatting function with special functionality: - Supported types: + std::string forced to .c_str() + be_t<> forced to .value() (fmt::unveil reverts byte order automatically) - u8, s8 (%x, %d) - u16, s16 (%x, %d) - u32, s32 (%x, %d) - u64, s64 (%x, %d) - float (%x, %f) - double (%x, %f) - bool (%x, %d, %s) - char* (%s) - - std::string forced to .c_str() (fmt::unveil) - be_t<> of any appropriate type in this list (fmt::unveil) - enum of any appropriate type in this list (fmt::unveil) - - External specializations (can be found in another headers): + External specializations for fmt::unveil (can be found in another headers): vm::ps3::ptr (fmt::unveil) (vm_ptr.h) (with appropriate address type, using .addr() can be avoided) vm::ps3::bptr (fmt::unveil) (vm_ptr.h) vm::psv::ptr (fmt::unveil) (vm_ptr.h) @@ -637,18 +265,11 @@ namespace fmt vm::ps3::bref (fmt::unveil) (vm_ref.h) vm::psv::ref (fmt::unveil) (vm_ref.h) - Supported formatting: - %d - decimal; to_sdec() and to_udec() - %x - hexadecimal; to_hex(), %08x - hexadecimal with minimal length (from 02 to 016) - %s - string; generates "true" or "false" for bool - %f - floating point; only basic std::to_string() functionality - - Other features are not supported. */ template __forceinline __safebuffers std::string format(const char* fmt, Args... args) { - return detail::format(fmt, do_unveil(args)...); + return Format(fmt, do_unveil(args)...); } //convert a wxString to a std::string encoded in utf8 diff --git a/rpcs3/Emu/Cell/PPUThread.cpp b/rpcs3/Emu/Cell/PPUThread.cpp index b2a0410c4f..49a8727ea3 100644 --- a/rpcs3/Emu/Cell/PPUThread.cpp +++ b/rpcs3/Emu/Cell/PPUThread.cpp @@ -28,7 +28,6 @@ PPUThread& GetCurrentPPUThread() PPUThread::PPUThread() : CPUThread(CPU_THREAD_PPU) { - owned_mutexes = 0; Reset(); } diff --git a/rpcs3/Emu/Cell/PPUThread.h b/rpcs3/Emu/Cell/PPUThread.h index ee0254aa6a..53f3a2c412 100644 --- a/rpcs3/Emu/Cell/PPUThread.h +++ b/rpcs3/Emu/Cell/PPUThread.h @@ -536,7 +536,6 @@ public: //TBR : Time-Base Registers u64 TB; //TBR 0x10C - 0x10D - u32 owned_mutexes; std::function custom_task; public: diff --git a/rpcs3/Emu/SysCalls/LogBase.h b/rpcs3/Emu/SysCalls/LogBase.h index 880f5333c4..767594d8ec 100644 --- a/rpcs3/Emu/SysCalls/LogBase.h +++ b/rpcs3/Emu/SysCalls/LogBase.h @@ -20,7 +20,7 @@ class LogBase template __noinline void LogPrepare(LogType type, const char* fmt, Targs... args) const { - LogOutput(type, fmt::detail::format(fmt, args...)); + LogOutput(type, fmt::Format(fmt, args...)); } public: diff --git a/rpcs3/Emu/SysCalls/Modules/cellSail.cpp b/rpcs3/Emu/SysCalls/Modules/cellSail.cpp index 8132afd92e..0ca3f285f6 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellSail.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellSail.cpp @@ -813,7 +813,7 @@ int cellSailPlayerCancel() int cellSailPlayerSetPaused(vm::ptr pSelf, bool paused) { - cellSail.Todo("cellSailPlayerSetPaused(pSelf_addr=0x%x, paused=)", pSelf.addr(), paused); + cellSail.Todo("cellSailPlayerSetPaused(pSelf_addr=0x%x, paused=%d)", pSelf.addr(), paused); return CELL_OK; } diff --git a/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp b/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp index f56fa14e2a..29c2dfbb00 100644 --- a/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp +++ b/rpcs3/Emu/SysCalls/lv2/sys_ppu_thread.cpp @@ -10,16 +10,8 @@ SysCallBase sys_ppu_thread("sys_ppu_thread"); -static const u32 PPU_THREAD_ID_INVALID = 0xFFFFFFFFU/*UUUUUUUUUUuuuuuuuuuu~~~~~~~~*/; - void ppu_thread_exit(PPUThread& CPU, u64 errorcode) { - if (CPU.owned_mutexes) - { - sys_ppu_thread.Error("Owned mutexes found (%d)", CPU.owned_mutexes); - CPU.owned_mutexes = 0; - } - CPU.SetExitStatus(errorcode); CPU.Stop();