bundle *content_info = NULL;
wc = (widget_context_s *)calloc(1, sizeof(widget_context_s));
- if (!wc)
+ if (!wc) {
+ _E("Out of memory");
return WIDGET_ERROR_OUT_OF_MEMORY;
+ }
wc->state = WC_READY;
wc->id = strdup(id);
ret = handle->ops.create(wc, content_info, w, h, handle->user_data);
if (ret < 0) {
- /* TODO send abort */
+ _W("Create callback resturns error(%d)", ret);
+ ret = __send_update_status(handle->classid, wc->id,
+ WIDGET_INSTANCE_EVENT_CREATE_ABORTED, NULL);
+ _widget_app_remove_context(wc);
+ if (wc->id)
+ free(wc->id);
+ if (wc->content)
+ free(wc->content);
+ free(wc);
+
+ if (_widget_app_get_contexts() == NULL && !exit_called)
+ widget_app_exit();
} else {
ret = __send_update_status(handle->classid, wc->id,
WIDGET_INSTANCE_EVENT_CREATE, NULL);