return ES_R_OK;
}
+static int __update_last_data_item(eventinfo_s *evti, bundle *data)
+{
+ struct last_data_item *item;
+ bundle_raw *raw = NULL;
+ int len;
+
+ if (!last_data_tbl)
+ return ES_R_OK;
+
+ item = (struct last_data_item *)g_hash_table_lookup(last_data_tbl,
+ evti->event_name);
+ if (item == NULL)
+ return ES_R_OK;
+
+ if (bundle_encode(data, &raw, &len)) {
+ _E("Unable to encode bundle");
+ return ES_R_ERROR;
+ }
+
+ if (!evti->is_trusted) {
+ if (item->param)
+ g_variant_unref(item->param);
+ item->param = g_variant_new("(us)", len, raw);
+ }
+
+ if (item->trusted_param)
+ g_variant_unref(item->trusted_param);
+ item->trusted_param = g_variant_new("(us)", len, raw);
+
+ bundle_free_encoded_rawdata(&raw);
+
+ _D("Update last data");
+
+ return ES_R_OK;
+}
+
/**
* function : send the user-event
*/
{
int ret = ES_R_OK;
eventinfo_s *evti = NULL;
- struct last_data_item *item;
- bundle_raw *raw = NULL;
- int len;
GDBusConnection *conn = NULL;
GList *trusted_dest_list = NULL;
evti->is_trusted = is_trusted;
if (__get_gdbus_shared_connection(&conn, G_BUS_TYPE_SESSION, ES_TYPE_USER) == ES_R_OK) {
- if (bundle_encode(data, &raw, &len)) {
- _E("Unable to encode bundle");
- ret = ES_R_ERROR;
+ ret = __update_last_data_item(evti, data);
+ if (ret != ES_R_OK)
goto out;
- }
-
- item = (struct last_data_item *)g_hash_table_lookup(last_data_tbl,
- evti->event_name);
- if (item) {
- if (!evti->is_trusted) {
- if (item->param)
- g_variant_unref(item->param);
- item->param = g_variant_new("(us)", len, raw);
- }
- if (item->trusted_param)
- g_variant_unref(item->trusted_param);
- item->trusted_param = g_variant_new("(us)", len, raw);
- }
-
- bundle_free_encoded_rawdata(&raw);
if (is_trusted) {
if (__eventsystem_request_destination_list(evti->event_name, &trusted_dest_list) < 0) {