mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2025-11-04 13:29:56 -05:00
fix: miss free memory about baked_points_tag re-init
This commit is contained in:
parent
ac48efb49a
commit
25c65dd088
1 changed files with 26 additions and 9 deletions
|
|
@ -1244,17 +1244,22 @@ void free_circle_layout(Config *config) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void free_baked_points(void) {
|
void free_baked_points(void) {
|
||||||
if(baked_points_move)
|
if (baked_points_move) {
|
||||||
free(baked_points_move);
|
free(baked_points_move);
|
||||||
if(baked_points_open)
|
|
||||||
free(baked_points_open);
|
|
||||||
if(baked_points_close)
|
|
||||||
free(baked_points_close);
|
|
||||||
if(baked_points_tag)
|
|
||||||
baked_points_move = NULL;
|
baked_points_move = NULL;
|
||||||
|
}
|
||||||
|
if (baked_points_open) {
|
||||||
|
free(baked_points_open);
|
||||||
baked_points_open = NULL;
|
baked_points_open = NULL;
|
||||||
|
}
|
||||||
|
if (baked_points_close) {
|
||||||
|
free(baked_points_close);
|
||||||
baked_points_close = NULL;
|
baked_points_close = NULL;
|
||||||
|
}
|
||||||
|
if (baked_points_tag) {
|
||||||
|
free(baked_points_tag);
|
||||||
baked_points_tag = NULL;
|
baked_points_tag = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void free_config(void) {
|
void free_config(void) {
|
||||||
|
|
@ -1581,7 +1586,12 @@ void parse_config(void) {
|
||||||
|
|
||||||
char filename[1024];
|
char filename[1024];
|
||||||
|
|
||||||
|
free_config();
|
||||||
|
|
||||||
|
// 重置config结构体,确保所有指针初始化为NULL
|
||||||
memset(&config, 0, sizeof(config));
|
memset(&config, 0, sizeof(config));
|
||||||
|
|
||||||
|
// 初始化动态数组的指针为NULL,避免野指针
|
||||||
config.window_rules = NULL;
|
config.window_rules = NULL;
|
||||||
config.window_rules_count = 0;
|
config.window_rules_count = 0;
|
||||||
config.monitor_rules = NULL;
|
config.monitor_rules = NULL;
|
||||||
|
|
@ -1594,6 +1604,14 @@ void parse_config(void) {
|
||||||
config.axis_bindings_count = 0;
|
config.axis_bindings_count = 0;
|
||||||
config.gesture_bindings = NULL;
|
config.gesture_bindings = NULL;
|
||||||
config.gesture_bindings_count = 0;
|
config.gesture_bindings_count = 0;
|
||||||
|
config.exec = NULL;
|
||||||
|
config.exec_count = 0;
|
||||||
|
config.exec_once = NULL;
|
||||||
|
config.exec_once_count = 0;
|
||||||
|
config.scroller_proportion_preset = NULL;
|
||||||
|
config.scroller_proportion_preset_count = 0;
|
||||||
|
config.circle_layout = NULL;
|
||||||
|
config.circle_layout_count = 0;
|
||||||
|
|
||||||
// 获取 MAOMAOCONFIG 环境变量
|
// 获取 MAOMAOCONFIG 环境变量
|
||||||
const char *maomaoconfig = getenv("MAOMAOCONFIG");
|
const char *maomaoconfig = getenv("MAOMAOCONFIG");
|
||||||
|
|
@ -1631,7 +1649,6 @@ void reload_config(const Arg *arg) {
|
||||||
Monitor *m;
|
Monitor *m;
|
||||||
int i;
|
int i;
|
||||||
Keyboard *kb;
|
Keyboard *kb;
|
||||||
free_config();
|
|
||||||
parse_config();
|
parse_config();
|
||||||
init_baked_points();
|
init_baked_points();
|
||||||
run_exec();
|
run_exec();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue