diff --git a/src/common/logging/formatter.h b/src/common/logging/formatter.h index 2ad481b12..1a4e6f7ce 100644 --- a/src/common/logging/formatter.h +++ b/src/common/logging/formatter.h @@ -29,15 +29,12 @@ struct UTF { data = T{(const char*)&view.front(), (const char*)&view.back()}; } - explicit UTF(const std::u8string& str) - : UTF(std::u8string_view{str}) { - } + explicit UTF(const std::u8string& str) : UTF(std::u8string_view{str}) {} }; -} +} // namespace fmt template <> -struct fmt::formatter, char> - : formatter { +struct fmt::formatter, char> : formatter { template auto format(const UTF& wrapper, FormatContext& ctx) const { return formatter::format(wrapper.data, ctx); diff --git a/src/imgui/renderer/imgui_core.cpp b/src/imgui/renderer/imgui_core.cpp index d41097d7c..3676fc2cb 100644 --- a/src/imgui/renderer/imgui_core.cpp +++ b/src/imgui/renderer/imgui_core.cpp @@ -52,13 +52,15 @@ void Initialize(const ::Vulkan::Instance& instance, const Frontend::WindowSDL& w io.ConfigFlags |= ImGuiConfigFlags_DockingEnable; io.DisplaySize = ImVec2((float)window.getWidth(), (float)window.getHeight()); - using native_char = std::filesystem::path::value_type; - io.IniFilename = new char[config_path.native().size() * sizeof(native_char)]; - io.LogFilename = new char[log_path.native().size() * sizeof(native_char)]; - std::memcpy((void*)io.IniFilename, config_path.native().c_str(), - config_path.native().size() * sizeof(native_char)); - std::memcpy((void*)io.LogFilename, log_path.native().c_str(), - log_path.native().size() * sizeof(native_char)); + auto path = config_path.u8string(); + char* config_file_buf = new char[path.size() + 1](); + std::memcpy(config_file_buf, path.c_str(), path.size()); + io.IniFilename = config_file_buf; + + path = log_path.u8string(); + char* log_file_buf = new char[path.size() + 1](); + std::memcpy(log_file_buf, path.c_str(), path.size()); + io.LogFilename = log_file_buf; ImFontGlyphRangesBuilder rb{}; rb.AddRanges(io.Fonts->GetGlyphRangesDefault()); @@ -116,8 +118,8 @@ void Shutdown(const vk::Device& device) { Sdl::Shutdown(); DestroyContext(); - SDL_free(ini_filename); - SDL_free(log_filename); + delete[] (char*)ini_filename; + delete[] (char*)log_filename; } bool ProcessEvent(SDL_Event* event) {