From f1cb1fc53307d0ae57430581957012fd9a4fd990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=9A=93?= Date: Tue, 3 Jun 2025 11:35:27 -0400 Subject: [PATCH] Change `Input::getClipboardText()` to return `std::string` instead of `const char *` --- binding/input-binding.cpp | 2 +- src/input/input.cpp | 8 +++----- src/input/input.h | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/binding/input-binding.cpp b/binding/input-binding.cpp index 3e20428b..b7065c96 100644 --- a/binding/input-binding.cpp +++ b/binding/input-binding.cpp @@ -519,7 +519,7 @@ RB_METHOD(inputGets) { RB_METHOD_GUARD(inputGetClipboard) { RB_UNUSED_PARAM; - return rb_utf8_str_new_cstr(shState->input().getClipboardText()); + return rb_utf8_str_new_cstr(shState->input().getClipboardText().c_str()); } RB_METHOD_GUARD_END diff --git a/src/input/input.cpp b/src/input/input.cpp index f7185018..2998a4b0 100644 --- a/src/input/input.cpp +++ b/src/input/input.cpp @@ -678,8 +678,6 @@ struct InputPrivate /* Collective binding array */ std::vector bindings; - std::string clipboardText; - ButtonState stateArray[BUTTON_CODE_COUNT*2]; ButtonState *states; @@ -1514,12 +1512,12 @@ void Input::clearText() shState->eThread().textInputBuffer.clear(); } -const char *Input::getClipboardText() +std::string Input::getClipboardText() { const char *tx = SDL_GetClipboardText(); - p->clipboardText = tx; + std::string str(tx); SDL_free((void *)tx); - return p->clipboardText.c_str(); + return str; } void Input::setClipboardText(const char *text) diff --git a/src/input/input.h b/src/input/input.h index afe41a5f..18da2034 100644 --- a/src/input/input.h +++ b/src/input/input.h @@ -110,7 +110,7 @@ public: const char *getText(); void clearText(); - const char *getClipboardText(); + std::string getClipboardText(); void setClipboardText(const char *text); const char *getAxisName(SDL_GameControllerAxis axis);