PEPPER_CHECK(delivery_list, return 0, "Invalid delivery list\n");
if (!pepper_list_empty(&keyrouter->hard_keys[keycode].grab.excl)) {
- pepper_list_for_each(info, &keyrouter->hard_keys[keycode].grab.excl, link) {
+ info = pepper_container_of(keyrouter->hard_keys[keycode].grab.excl.next, info, link);
+ if (info) {
delivery = (keyrouter_key_info_t *)calloc(1, sizeof(keyrouter_key_info_t));
PEPPER_CHECK(delivery, return 0, "Failed to allocate memory\n");
delivery->data = info->data;
}
}
else if (!pepper_list_empty(&keyrouter->hard_keys[keycode].grab.or_excl)) {
- pepper_list_for_each(info, &keyrouter->hard_keys[keycode].grab.or_excl, link) {
+ info = pepper_container_of(keyrouter->hard_keys[keycode].grab.or_excl.next, info, link);
+ if (info) {
delivery = (keyrouter_key_info_t *)calloc(1, sizeof(keyrouter_key_info_t));
PEPPER_CHECK(delivery, return 0, "Failed to allocate memory\n");
delivery->data = info->data;
return TIZEN_KEYROUTER_ERROR_GRABBED_ALREADY;
info = (keyrouter_key_info_t *)calloc(1, sizeof(keyrouter_key_info_t));
+ PEPPER_CHECK(info, return TIZEN_KEYROUTER_ERROR_NO_SYSTEM_RESOURCES, "Failed to allocate memory");
+
info->data = data;
pepper_list_init(&info->link);
return;
}
- wl_resource_set_implementation(resource, &_pepper_keyrouter_implementation,
- pepper_keyrouter, _pepper_keyrouter_cb_destory);
-
rdata = (resources_data_t *)calloc(1, sizeof(resources_data_t));
+ if (!rdata)
+ {
+ PEPPER_ERROR("Failed to allocate memory !\n");
+
+ wl_resource_destroy(resource);
+ wl_client_post_no_memory(client);
+ return;
+ }
+
rdata->resource = resource;
pepper_list_init(&rdata->link);
-
pepper_list_insert(&pepper_keyrouter->resources, &rdata->link);
+
+
+ wl_resource_set_implementation(resource, &_pepper_keyrouter_implementation,
+ pepper_keyrouter, _pepper_keyrouter_cb_destory);
}
PEPPER_API void