Исправил утечки памяти при сохранение в таблицу

pull/4/head
Igor Belitskiy 2 years ago
parent 71166106d1
commit 9853ebc748

@ -643,7 +643,6 @@ void tree_view_add(int index) {
main_config.disk = yon_remalloc(main_config.disk, (main_config.size_tree_view + 1) * sizeof(char**));
yon_char_parsed_copy(&main_config.i_o_limit_write[main_config.size_tree_view], add_get_write_device());
philos_array_int_copy(&main_config.i_o_limit_write_size[main_config.size_tree_view], add_get_write_device_size_pow());
yon_char_parsed_copy(&main_config.disk[main_config.size_tree_view], add_get_select_device());
main_config.type_quota_size = philos_int_append(main_config.type_quota_size, &main_config.size_tree_view, add_get_quota_object_size());
main_config.size_tree_view--;
@ -701,7 +700,7 @@ char* format_io_limit_in_tree_view(config_str* disk, config_str* i_o_limit, int*
str = yon_char_unite(str, ", ", disk[index][index_to_n2], " ", i_o_limit[index][index_to_n2], NULL);
}
else if (strstr(disk[index][index_to_n2], "-")){
str = yon_char_unite(str, "-", NULL);
str = yon_char_unite(str, ",", NULL);
}
else {
str = yon_char_unite(str, disk[index][index_to_n2], " ", i_o_limit[index][index_to_n2], NULL);

@ -43,7 +43,7 @@
#define CMD_GET_GROUP "cut -d: -f1 /etc/group"
typedef char *string;
string version_application = "1.2-38-g8643957";
string version_application = "1.2-39-g7116610";
static char *local;

@ -54,14 +54,14 @@ add_window *add_setup_window(char* glade_path) {
}
// flag_check_array = 0 READ
// flag_check_array = 1 WRITE
void update_device_to_entry(GtkWidget *combo_box, GtkWidget *check_button, GtkWidget *spin, int flag_check_array) {
void update_device_to_entry(GtkWidget *combo_box, GtkWidget *combo_box_size, GtkWidget *check_button, GtkWidget *spin, int flag_check_array) {
int disk_id = gtk_combo_box_get_active(GTK_COMBO_BOX(combo_box));
char* disk = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddDevice));
disk = yon_char_divide_search(disk, " ", -1);
if (disk_id != -1) {
int index_find = -1;
for (int index = 0; index < obj_add_config.size; index++) {
char* disk_cfg = yon_char_new(obj_add_config.disk[index]);
char* disk_cfg = obj_add_config.disk[index];
if (strstr(disk_cfg, disk) != NULL) {
index_find = index;
break;
@ -72,35 +72,43 @@ void update_device_to_entry(GtkWidget *combo_box, GtkWidget *check_button, GtkWi
if (strstr(obj_add_config.i_o_limit_read[index_find],"-")) {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 0);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0);
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_size), 0);
}
else {
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), atoll(obj_add_config.i_o_limit_read[index_find]));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 1);
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_size), obj_add_config.i_o_limit_read_size[index_find]);
}
}
else if (flag_check_array==1) {
if (strstr(obj_add_config.i_o_limit_write[index_find],"-")) {
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 0);
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_size), 0);
}
else {
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), atoll(obj_add_config.i_o_limit_write[index_find]));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 1);
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_size), obj_add_config.i_o_limit_write_size[index_find]);
}
}
else {
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 0);
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_size), 0);
}
}
else {
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 0);
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_size), 0);
}
}
else {
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 0);
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_size), 0);
}
}
@ -108,8 +116,8 @@ void add_config_init() {
if (obj_add_config.size != 0) {
philos_free_string_array(&obj_add_config.disk, obj_add_config.size);
philos_free_string_array(&obj_add_config.i_o_limit_read, obj_add_config.size);
philos_free_string_array(&obj_add_config.i_o_limit_write, obj_add_config.size);
philos_free_int_array(&obj_add_config.i_o_limit_read_size, obj_add_config.size);
philos_free_string_array(&obj_add_config.i_o_limit_write, obj_add_config.size);
philos_free_int_array(&obj_add_config.i_o_limit_write_size, obj_add_config.size);
}
obj_add_config.disk = NULL;
@ -229,7 +237,7 @@ void add_disk_all(){
if (disk_id >= 0 && obj_add_config.size !=0) {
int index_find = -1;
for (int index = 0; index < obj_add_config.size; index++) {
char* disk_cfg = yon_char_new(obj_add_config.disk[index]);
char* disk_cfg = obj_add_config.disk[index];
if (strstr(disk_cfg, disk) != NULL) {
index_find = index;
break;
@ -237,7 +245,6 @@ void add_disk_all(){
}
if (index_find == -1) {
// Добавление
puts("hhhhhhh1");
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk);
obj_add_config.size--;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead))) {
@ -270,7 +277,6 @@ void add_disk_all(){
else {
// Редактирование
//obj_add_config.disk[index_find] = yon_char_new(disk);
puts("hhhhhhh2");
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead))) {
obj_add_config.i_o_limit_read_size[index_find] =(int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddRead));
obj_add_config.i_o_limit_read[index_find] = yon_char_from_int(gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(add_widgets->spinAddRead)));
@ -291,11 +297,8 @@ void add_disk_all(){
}
else {
if (bool_read == 1 || bool_write == 1) {
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead)) ||
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddWrite))) {
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk);
obj_add_config.size--;
}
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk);
obj_add_config.size--;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead))) {
obj_add_config.i_o_limit_read_size = philos_int_append(obj_add_config.i_o_limit_read_size,&obj_add_config.size,(int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddRead)));
obj_add_config.size--;
@ -336,8 +339,8 @@ void event_check_io_device() {
}
void combo_box_device() {
update_device_to_entry(add_widgets->cbtAddDevice, add_widgets->chbAddRead, add_widgets->spinAddRead, 0);
update_device_to_entry(add_widgets->cbtAddDevice, add_widgets->chbAddWrite, add_widgets->spinAddWrite, 1);
update_device_to_entry(add_widgets->cbtAddDevice,add_widgets->cbtAddRead, add_widgets->chbAddRead, add_widgets->spinAddRead, 0);
update_device_to_entry(add_widgets->cbtAddDevice,add_widgets->cbtAddWrite, add_widgets->chbAddWrite, add_widgets->spinAddWrite, 1);
}
void add_event(add_window *widgets) {
@ -422,43 +425,28 @@ char* add_get_select_device_to_level_2() {
}
char*** add_get_read_device() {
int index = 0;
if (!obj_add_config.i_o_limit_read) {
obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&index, "-");
obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&index, NULL);
}
obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size, NULL);
obj_add_config.size--;
return &obj_add_config.i_o_limit_read;
}
int** add_get_read_device_size_pow() {
int index = 0;
if (!obj_add_config.i_o_limit_read_size) {
obj_add_config.i_o_limit_read_size = philos_int_append(obj_add_config.i_o_limit_read_size,&index, -1);
obj_add_config.i_o_limit_read_size = philos_int_append(obj_add_config.i_o_limit_read_size,&index, -2);
}
obj_add_config.i_o_limit_read_size = philos_int_append(obj_add_config.i_o_limit_read_size,&obj_add_config.size, -2);
obj_add_config.size--;
return &obj_add_config.i_o_limit_read_size;
}
char*** add_get_write_device() {
int index = 0;
if (!obj_add_config.i_o_limit_write) {
obj_add_config.i_o_limit_write = yon_char_parsed_append(obj_add_config.i_o_limit_write, &index, "-");
obj_add_config.i_o_limit_write = yon_char_parsed_append(obj_add_config.i_o_limit_write, &index, NULL);
}
obj_add_config.i_o_limit_write = yon_char_parsed_append(obj_add_config.i_o_limit_write, &obj_add_config.size, NULL);
obj_add_config.size--;
return &obj_add_config.i_o_limit_write;
}
int** add_get_write_device_size_pow() {
int index = 0;
if (!obj_add_config.i_o_limit_write_size) {
obj_add_config.i_o_limit_write_size = philos_int_append(obj_add_config.i_o_limit_write_size,&index, -1);
obj_add_config.i_o_limit_write_size = philos_int_append(obj_add_config.i_o_limit_write_size,&index, -2);
}
obj_add_config.i_o_limit_write_size = philos_int_append(obj_add_config.i_o_limit_write_size,&obj_add_config.size, -2);
obj_add_config.size--;
return &obj_add_config.i_o_limit_write_size;
}
char*** add_get_select_device() {
int index = 0;
if (!obj_add_config.disk) {
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&index, "-");
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&index, NULL);
}
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, NULL);
obj_add_config.size--;
return &obj_add_config.disk;
}

Loading…
Cancel
Save