mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-22 21:05:58 +01:00
text-input/input-method: handle strdup() failure
This commit is contained in:
parent
eb5f23d6d0
commit
e326b76959
2 changed files with 12 additions and 0 deletions
|
@ -88,6 +88,10 @@ static void im_commit_string(struct wl_client *client,
|
||||||
}
|
}
|
||||||
free(input_method->pending.commit_text);
|
free(input_method->pending.commit_text);
|
||||||
input_method->pending.commit_text = strdup(text);
|
input_method->pending.commit_text = strdup(text);
|
||||||
|
if (input_method->pending.commit_text == NULL) {
|
||||||
|
wl_client_post_no_memory(client);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void im_set_preedit_string(struct wl_client *client,
|
static void im_set_preedit_string(struct wl_client *client,
|
||||||
|
@ -102,6 +106,10 @@ static void im_set_preedit_string(struct wl_client *client,
|
||||||
input_method->pending.preedit.cursor_end = cursor_end;
|
input_method->pending.preedit.cursor_end = cursor_end;
|
||||||
free(input_method->pending.preedit.text);
|
free(input_method->pending.preedit.text);
|
||||||
input_method->pending.preedit.text = strdup(text);
|
input_method->pending.preedit.text = strdup(text);
|
||||||
|
if (input_method->pending.preedit.text == NULL) {
|
||||||
|
wl_client_post_no_memory(client);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void im_delete_surrounding_text(struct wl_client *client,
|
static void im_delete_surrounding_text(struct wl_client *client,
|
||||||
|
|
|
@ -171,6 +171,10 @@ static void text_input_commit(struct wl_client *client,
|
||||||
if (text_input->pending.surrounding.text) {
|
if (text_input->pending.surrounding.text) {
|
||||||
text_input->current.surrounding.text =
|
text_input->current.surrounding.text =
|
||||||
strdup(text_input->pending.surrounding.text);
|
strdup(text_input->pending.surrounding.text);
|
||||||
|
if (text_input->current.surrounding.text == NULL) {
|
||||||
|
wl_client_post_no_memory(client);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool old_enabled = text_input->current_enabled;
|
bool old_enabled = text_input->current_enabled;
|
||||||
|
|
Loading…
Reference in a new issue