END_INT3_STRING3_LIST_START()
#define END_INT3_STRING3_LIST_ITERATE(__v) \
- free(__v->str1); \
- free(__v->str2); \
- free(__v->str3); \
+ evas_stringshare_del(__v->str1); \
+ evas_stringshare_del(__v->str2); \
+ evas_stringshare_del(__v->str3); \
free(__v); \
}
#define END_INT3_STRING3_LIST_START() \
END_INT4_STRING2_LIST_START()
#define END_INT4_STRING2_LIST_ITERATE(__v) \
- free(__v->str1); \
- free(__v->str2); \
+ evas_stringshare_del(__v->str1); \
+ evas_stringshare_del(__v->str2); \
free(__v); \
} \
evas_list_free(dat);
END_INT3_STRING4_LIST_START()
#define END_INT3_STRING4_LIST_ITERATE(__v) \
- free(__v->str1); \
- free(__v->str2); \
- free(__v->str3); \
- free(__v->str4); \
+ evas_stringshare_del(__v->str1); \
+ evas_stringshare_del(__v->str2); \
+ evas_stringshare_del(__v->str3); \
+ evas_stringshare_del(__v->str4); \
free(__v); \
} \
evas_list_free(dat);
LIST();
DECODE(e_ipc_codec_str_list_dec) {
int count;
- char *type;
+ char * type;
int res;
RESPONSE(r, E_Response_Dirs_List);
r->dirs = malloc(sizeof(char *) * count);
r->count = count - 1; /* leave off the "type" */
+ type = NULL;
+ res = 0;
count = 0;
FOR(dat) {
if (dat == l)
else if (!strcmp(type, "themes"))
res = E_RESPONSE_THEME_DIRS_LIST;
else if (!strcmp(type, "init"))
- res = E_RESPONSE_START_DIRS_LIST;
+ res = E_RESPONSE_INIT_DIRS_LIST;
else if (!strcmp(type, "icons"))
res = E_RESPONSE_ICON_DIRS_LIST;
else if (!strcmp(type, "modules"))
d = malloc(sizeof(E_Response_Binding_Signal_Data));
d->ctx = v->val1;
- d->signal = v->str1;
- d->source = v->str2;
+ d->signal = ((v->str1) ? evas_stringshare_add(v->str1) : NULL);
+ d->source = ((v->str2) ? evas_stringshare_add(v->str2) : NULL);
d->mod = v->val2;
d->any_mod = v->val3;
d->action = ((v->str3) ? evas_stringshare_add(v->str3) : NULL);
struct _E_Response_Binding_Key_Data
{
E_Lib_Binding_Context ctx;
- char *key;
+ const char *key;
E_Lib_Binding_Modifier mod;
unsigned char any_mod : 1;
- char *action;
- char *params;
+ const char *action;
+ const char *params;
};
struct _E_Response_Binding_Mouse_List
int button;
E_Lib_Binding_Modifier mod;
unsigned char any_mod : 1;
- char *action;
- char *params;
+ const char *action;
+ const char *params;
};
struct _E_Response_Binding_Signal_List
struct _E_Response_Binding_Signal_Data
{
E_Lib_Binding_Context ctx;
- char *signal;
- char *source;
+ const char *signal;
+ const char *source;
E_Lib_Binding_Modifier mod;
unsigned char any_mod : 1;
- char *action;
- char *params;
+ const char *action;
+ const char *params;
};
struct _E_Response_Binding_Wheel_List
int z;
E_Lib_Binding_Modifier mod;
unsigned char any_mod : 1;
- char *action;
- char *params;
+ const char *action;
+ const char *params;
};
extern EAPI int E_RESPONSE_ICON_DIRS_LIST;
extern EAPI int E_RESPONSE_MODULE_DIRS_LIST;
extern EAPI int E_RESPONSE_BACKGROUND_DIRS_LIST;
-extern EAPI int E_RESPONSE_START_DIRS_LIST;
extern EAPI int E_RESPONSE_BINDING_KEY_LIST;
extern EAPI int E_RESPONSE_BINDING_MOUSE_LIST;
EAPI int E_RESPONSE_ICON_DIRS_LIST = 0;
EAPI int E_RESPONSE_MODULE_DIRS_LIST = 0;
EAPI int E_RESPONSE_BACKGROUND_DIRS_LIST = 0;
-EAPI int E_RESPONSE_START_DIRS_LIST = 0;
EAPI int E_RESPONSE_BINDING_KEY_LIST = 0;
EAPI int E_RESPONSE_BINDING_MOUSE_LIST = 0;