{
WaylandIMContext *imcontext = (WaylandIMContext *)data;
Ecore_IMF_Preedit_Attr *attr = calloc(1, sizeof(*attr));
+ if (!attr) return;
switch (style)
{
free (imcontext->input_panel_data);
imcontext->input_panel_data = calloc (1, length);
- memcpy (imcontext->input_panel_data, input_panel_data, length);
+ if (imcontext->input_panel_data)
+ memcpy (imcontext->input_panel_data, input_panel_data, length);
+
imcontext->input_panel_data_length = length;
}
if (imcontext->preedit_attrs) {
EINA_LIST_FOREACH(imcontext->preedit_attrs, l, a) {
attr = malloc(sizeof(*attr));
- attr = memcpy(attr, a, sizeof(*attr));
- *attrs = eina_list_append(*attrs, attr);
+ if (attr) {
+ attr = memcpy(attr, a, sizeof(*attr));
+ *attrs = eina_list_append(*attrs, attr);
+ }
}
}
else {
if (imcontext->preedit_text) {
Ecore_IMF_Preedit_Attr *attr = calloc(1, sizeof(*attr));
- // use REVERSE style as default
- attr->preedit_type = ECORE_IMF_PREEDIT_TYPE_SUB2;
- attr->start_index = 0;
- attr->end_index = strlen(imcontext->preedit_text);
- *attrs = eina_list_append(*attrs, attr);
+ if (attr) {
+ // use REVERSE style as default
+ attr->preedit_type = ECORE_IMF_PREEDIT_TYPE_SUB2;
+ attr->start_index = 0;
+ attr->end_index = strlen(imcontext->preedit_text);
+ *attrs = eina_list_append(*attrs, attr);
+ }
}
}
}
free(imcontext->imdata);
imcontext->imdata = calloc(1, length);
- memcpy(imcontext->imdata, data, length);
+ if (imcontext->imdata)
+ memcpy(imcontext->imdata, data, length);
+
imcontext->imdata_size = length;
if (imcontext->input && imcontext->text_input && (imcontext->imdata_size > 0))
WaylandIMContext *wayland_im_context_new (struct wl_text_input_manager *text_input_manager)
{
WaylandIMContext *context = calloc(1, sizeof(WaylandIMContext));
-
- LOGD("new context created");
- context->text_input_manager = text_input_manager;
+ if (context) {
+ LOGD("new context created");
+ context->text_input_manager = text_input_manager;
+ }
return context;
}