diff --git a/src/bin/e_randr.h b/src/bin/e_randr.h index 2d0340aa5..ee653e639 100644 --- a/src/bin/e_randr.h +++ b/src/bin/e_randr.h @@ -72,7 +72,7 @@ struct _E_Randr_Monitor_Info struct _E_Randr_Output_Info { Ecore_X_Randr_Output xid; - char *name; + Eina_Stringshare *name; int name_length; E_Randr_Crtc_Info *crtc; Eina_List *wired_clones; @@ -133,13 +133,13 @@ struct _E_Randr_Screen_Info struct _E_Randr_Serialized_Output_Policy { - char *name; + Eina_Stringshare *name; Ecore_X_Randr_Output_Policy policy; }; struct _E_Randr_Serialized_Output { - char *name; + Eina_Stringshare *name; double backlight_level; }; diff --git a/src/bin/e_randr_12_output.c b/src/bin/e_randr_12_output.c index 92332802b..4226ae113 100644 --- a/src/bin/e_randr_12_output.c +++ b/src/bin/e_randr_12_output.c @@ -112,7 +112,7 @@ _output_info_new(Ecore_X_Randr_Output output) output_info->compatibility_list = NULL; output_info->subpixel_order = Ecore_X_Randr_Unset; - output_info->name = ecore_x_randr_output_name_get(e_randr_screen_info.root, output_info->xid, &output_info->name_length); + output_info->name = eina_stringshare_add(ecore_x_randr_output_name_get(e_randr_screen_info.root, output_info->xid, &output_info->name_length)); output_info->connection_status = ecore_x_randr_output_connection_status_get(e_randr_screen_info.root, output_info->xid); return output_info; @@ -126,7 +126,7 @@ _output_info_free(E_Randr_Output_Info *output_info) eina_list_free(output_info->wired_clones); eina_list_free(output_info->possible_crtcs); eina_list_free(output_info->compatibility_list); - free(output_info->name); + eina_stringshare_del(output_info->name); _monitor_info_free(output_info->monitor); output_info->monitor = NULL; free(output_info); diff --git a/src/bin/e_randr_12_serialization.c b/src/bin/e_randr_12_serialization.c index 9679eee9d..1c221a1f9 100644 --- a/src/bin/e_randr_12_serialization.c +++ b/src/bin/e_randr_12_serialization.c @@ -142,8 +142,7 @@ Ecore_X_Randr_Mode_Info mi->vTotal = src->vTotal; if (src->nameLength > 0) { - mi->name = malloc(src->nameLength + 1); - strncpy(mi->name, src->name, src->nameLength); + mi->name = eina_stringshare_add(src->name); } mi->nameLength = src->nameLength; mi->modeFlags = src->modeFlags; @@ -179,8 +178,7 @@ _outputs_policies_list_new(Eina_List *outputs) if (!oi->name) continue; sop = E_NEW(E_Randr_Serialized_Output_Policy, 1); - sop->name = malloc(oi->name_length + 1); - strncpy(sop->name, oi->name, oi->name_length); + sop->name = eina_stringshare_add(oi->name); sop->policy = oi->policy; list = eina_list_append(list, sop); } @@ -198,8 +196,7 @@ _serialized_output_new(E_Randr_Output_Info *output_info) so = E_NEW(E_Randr_Serialized_Output, 1); - so->name = malloc(output_info->name_length + 1); - strncpy(so->name, output_info->name, output_info->name_length); + so->name = eina_stringshare_add(output_info->name); if (output_info->monitor) { so->backlight_level = output_info->monitor->backlight_level;