Change Input::getClipboardText() to return std::string instead of const char *

This commit is contained in:
刘皓 2025-06-03 11:35:27 -04:00
parent 38c122a08c
commit f1cb1fc533
No known key found for this signature in database
GPG key ID: 7901753DB465B711
3 changed files with 5 additions and 7 deletions

View file

@ -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

View file

@ -678,8 +678,6 @@ struct InputPrivate
/* Collective binding array */
std::vector<Binding*> 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)

View file

@ -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);