From f4adb9e26a22d0da92350b218bcb5c0505b4e8d1 Mon Sep 17 00:00:00 2001 From: William JCM Date: Mon, 21 Mar 2022 16:31:29 +0100 Subject: [PATCH] SaveTool: fix a few bugs. --- src/MassManager/MassManager.cpp | 2 +- src/SaveTool/SaveTool.cpp | 3 +-- src/SaveTool/SaveTool_MainManager.cpp | 8 ++++---- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/MassManager/MassManager.cpp b/src/MassManager/MassManager.cpp index 9d03bb9..9a82735 100644 --- a/src/MassManager/MassManager.cpp +++ b/src/MassManager/MassManager.cpp @@ -69,7 +69,7 @@ auto MassManager::importMass(Containers::StringView staged_fn, Int hangar) -> bo return false; } - auto it = _stagedMasses.find(staged_fn); + auto it = _stagedMasses.find(Containers::String::nullTerminatedView(staged_fn)); if(it == _stagedMasses.end()) { _lastError = "Couldn't find "_s + staged_fn + " in the staged M.A.S.S.es."_s; diff --git a/src/SaveTool/SaveTool.cpp b/src/SaveTool/SaveTool.cpp index ff70fbf..ad107ac 100644 --- a/src/SaveTool/SaveTool.cpp +++ b/src/SaveTool/SaveTool.cpp @@ -208,13 +208,12 @@ void SaveTool::handleFileAction(efsw::WatchID watch_id, } event.user.code = action; - event.user.data1 = Containers::String{filename}.release(); + event.user.data1 = Containers::String{Containers::AllocatedInit, filename.c_str()}.release(); if(action == efsw::Actions::Moved) { event.user.data2 = Containers::String{old_filename}.release(); } SDL_PushEvent(&event); - return; } void SaveTool::drawEvent() { diff --git a/src/SaveTool/SaveTool_MainManager.cpp b/src/SaveTool/SaveTool_MainManager.cpp index b715f48..8232113 100644 --- a/src/SaveTool/SaveTool_MainManager.cpp +++ b/src/SaveTool/SaveTool_MainManager.cpp @@ -475,14 +475,14 @@ void SaveTool::drawMassManager() { } if((_unsafeMode || _gameState == GameState::NotRunning) && ImGui::BeginDragDropTarget()) { if(const ImGuiPayload* payload = ImGui::AcceptDragDropPayload("StagedMass")) { - if(payload->DataSize != sizeof(std::string)) { + if(payload->DataSize != sizeof(Containers::String)) { SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Fatal error", - "payload->DataSize != sizeof(std::string) in SaveTool::drawMassManager()", + "payload->DataSize != sizeof(Containers::String) in SaveTool::drawMassManager()", window()); exit(EXIT_FAILURE); } - std::string file = *(static_cast(payload->Data)); + Containers::StringView file = *static_cast(payload->Data); if(!_massManager->importMass(file, i)) { _queue.addToast(Toast::Type::Error, _massManager->lastError()); @@ -584,7 +584,7 @@ void SaveTool::drawMassManager() { drawTooltip(staged_formatted.data()); } if(ImGui::BeginDragDropSource(ImGuiDragDropFlags_SourceNoHoldToOpenOthers)) { - ImGui::SetDragDropPayload("StagedMass", &(pair.first), sizeof(std::string)); + ImGui::SetDragDropPayload("StagedMass", &(pair.first), sizeof(Containers::String)); ImGui::Text("%s - Staged", pair.second.data());