mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2025-10-29 05:40:21 -04:00
fix: miss free kb_layout memory
This commit is contained in:
parent
9b144df48d
commit
7a4eaeaa8e
3 changed files with 5 additions and 11 deletions
|
|
@ -671,7 +671,7 @@ void switch_keyboard_layout(const Arg *arg) {
|
|||
}
|
||||
|
||||
// 3. 分配并获取布局缩写
|
||||
char **layout_ids = calloc(num_layouts, sizeof(char *));
|
||||
const char **layout_ids = calloc(num_layouts, sizeof(char *));
|
||||
if (!layout_ids) {
|
||||
wlr_log(WLR_ERROR, "Failed to allocate layout IDs");
|
||||
goto cleanup_context;
|
||||
|
|
@ -743,9 +743,6 @@ void switch_keyboard_layout(const Arg *arg) {
|
|||
xkb_keymap_unref(new_keymap);
|
||||
|
||||
cleanup_layouts:
|
||||
for (int i = 0; i < num_layouts; i++) {
|
||||
free(layout_ids[i]);
|
||||
}
|
||||
free(layout_ids);
|
||||
|
||||
cleanup_context:
|
||||
|
|
|
|||
|
|
@ -44,11 +44,11 @@ char *get_autostart_path(char *autostart_path, unsigned int buf_size) {
|
|||
return autostart_path;
|
||||
}
|
||||
|
||||
char *get_layout_abbr(const char *full_name) {
|
||||
const char *get_layout_abbr(const char *full_name) {
|
||||
// 1. 尝试在映射表中查找
|
||||
for (int i = 0; layout_mappings[i].full_name != NULL; i++) {
|
||||
if (strcmp(full_name, layout_mappings[i].full_name) == 0) {
|
||||
return strdup(layout_mappings[i].abbr);
|
||||
return layout_mappings[i].abbr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -666,7 +666,7 @@ wlr_scene_tree_snapshot(struct wlr_scene_node *node,
|
|||
struct wlr_scene_tree *parent);
|
||||
static bool is_scroller_layout(Monitor *m);
|
||||
void create_output(struct wlr_backend *backend, void *data);
|
||||
char *get_layout_abbr(const char *full_name);
|
||||
static const char *get_layout_abbr(const char *full_name);
|
||||
void apply_named_scratchpad(Client *target_client);
|
||||
Client *get_client_by_id_or_title(const char *arg_id, const char *arg_title);
|
||||
bool switch_scratchpad_client_state(Client *c);
|
||||
|
|
@ -4269,7 +4269,7 @@ void reset_keyboard_layout(void) {
|
|||
}
|
||||
|
||||
// Get layout abbreviations
|
||||
char **layout_ids = calloc(num_layouts, sizeof(char *));
|
||||
const char **layout_ids = calloc(num_layouts, sizeof(char *));
|
||||
if (!layout_ids) {
|
||||
wlr_log(WLR_ERROR, "Failed to allocate layout IDs");
|
||||
goto cleanup_context;
|
||||
|
|
@ -4314,9 +4314,6 @@ void reset_keyboard_layout(void) {
|
|||
xkb_keymap_unref(new_keymap);
|
||||
|
||||
cleanup_layouts:
|
||||
for (int i = 0; i < num_layouts; i++) {
|
||||
free(layout_ids[i]);
|
||||
}
|
||||
free(layout_ids);
|
||||
|
||||
cleanup_context:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue