summaryrefslogtreecommitdiff
path: root/pkgmgr_shortcut
diff options
context:
space:
mode:
authorSung-jae Park <nicesj.park@samsung.com>2012-08-30 10:25:41 +0900
committerSung-jae Park <nicesj.park@samsung.com>2012-08-30 10:56:16 +0900
commit46807ba87a9c855ac9361d21a08282da16984eda (patch)
tree4f0f14aa78e0cdc15f6de057046c8efa32c71d54 /pkgmgr_shortcut
parent8f7883fd8a5c392d28f03a91e36b898643a705f6 (diff)
downloadshortcut-46807ba87a9c855ac9361d21a08282da16984eda.tar.gz
shortcut-46807ba87a9c855ac9361d21a08282da16984eda.tar.bz2
shortcut-46807ba87a9c855ac9361d21a08282da16984eda.zip
Fix the bug of shortcut parser.
missing appid. Change-Id: If293884743f602ef0956309545792679794eb811
Diffstat (limited to 'pkgmgr_shortcut')
-rw-r--r--pkgmgr_shortcut/src/service_register.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/pkgmgr_shortcut/src/service_register.c b/pkgmgr_shortcut/src/service_register.c
index 58e177d..2cd7df4 100644
--- a/pkgmgr_shortcut/src/service_register.c
+++ b/pkgmgr_shortcut/src/service_register.c
@@ -590,6 +590,7 @@ int PKGMGR_PARSER_PLUGIN_INSTALL(xmlDocPtr docPtr, const char *appid)
xmlChar *data;
xmlChar *name;
xmlChar *icon;
+ xmlChar *shortcut_appid;
xmlNodePtr root;
struct i18n_name {
xmlChar *name;
@@ -638,6 +639,7 @@ int PKGMGR_PARSER_PLUGIN_INSTALL(xmlDocPtr docPtr, const char *appid)
key = xmlGetProp(node, (xmlChar *)"extra_key");
data = xmlGetProp(node, (xmlChar *)"extra_data");
+ shortcut_appid = xmlGetProp(node, (xmlChar *)"appid");
icon = NULL;
name = NULL;
@@ -680,19 +682,21 @@ int PKGMGR_PARSER_PLUGIN_INSTALL(xmlDocPtr docPtr, const char *appid)
}
DbgPrint("appid: %s\n", appid);
+ DbgPrint("shortcut appid: %s\n", shortcut_appid);
DbgPrint("key: %s\n", key);
DbgPrint("data: %s\n", data);
DbgPrint("icon: %s\n", icon);
DbgPrint("Default name: %s\n", name);
+ if (!shortcut_appid) {
+ shortcut_appid = xmlStrdup((xmlChar *)appid);
+ DbgPrint("Use the default appid\n");
+ }
+
begin_transaction();
- if (db_insert_record(appid, (char *)icon, (char *)name, (char *)key, (char *)data) < 0) {
+ if (db_insert_record((char *)shortcut_appid, (char *)icon, (char *)name, (char *)key, (char *)data) < 0) {
ErrPrint("Failed to insert a new record\n");
rollback_transaction();
- xmlFree(key);
- xmlFree(data);
- xmlFree(icon);
- xmlFree(name);
dlist_foreach_safe(i18n_list, l, n, i18n) {
i18n_list = dlist_remove(i18n_list, l);
@@ -701,14 +705,10 @@ int PKGMGR_PARSER_PLUGIN_INSTALL(xmlDocPtr docPtr, const char *appid)
free(i18n);
}
} else {
- id = db_get_id(appid, (char *)key, (char *)data);
+ id = db_get_id((char *)shortcut_appid, (char *)key, (char *)data);
if (id < 0) {
ErrPrint("Failed to insert a new record\n");
rollback_transaction();
- xmlFree(key);
- xmlFree(data);
- xmlFree(icon);
- xmlFree(name);
dlist_foreach_safe(i18n_list, l, n, i18n) {
i18n_list = dlist_remove(i18n_list, l);
@@ -728,6 +728,12 @@ int PKGMGR_PARSER_PLUGIN_INSTALL(xmlDocPtr docPtr, const char *appid)
commit_transaction();
}
}
+
+ xmlFree(key);
+ xmlFree(data);
+ xmlFree(icon);
+ xmlFree(name);
+ xmlFree(shortcut_appid);
}
return 0;