consider an extra icon_path for only RO package
[platform/core/appfw/pkgmgr-info.git] / src / pkgmgrinfo_pkginfo.c
index ea10d24..4bb259d 100644 (file)
@@ -175,7 +175,7 @@ static int _pkginfo_get_privilege(sqlite3 *db, const char *pkgid,
        int ret;
        char *query;
        sqlite3_stmt *stmt;
-       char *privilege;
+       privilege_x *privilege;
 
        query = sqlite3_mprintf(query_raw, pkgid);
        if (query == NULL) {
@@ -192,11 +192,11 @@ static int _pkginfo_get_privilege(sqlite3 *db, const char *pkgid,
        }
 
        while (sqlite3_step(stmt) == SQLITE_ROW) {
-               privilege = NULL;
-               _save_column_str(stmt, 0, &privilege);
-               if (privilege)
-                       *privileges = g_list_append(*privileges,
-                                       (gpointer)privilege);
+               privilege = calloc(1, sizeof(privilege_x));
+               _save_column_str(stmt, 0, &privilege->value);
+               _save_column_str(stmt, 1, &privilege->type);
+               *privileges = g_list_append(*privileges,
+                               (gpointer)privilege);
        }
 
        sqlite3_finalize(stmt);
@@ -1580,7 +1580,7 @@ API int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle,
        retvm_if(handle == NULL, PMINFO_R_EINVAL, "pkginfo handle is NULL");
        retvm_if(privilege_func == NULL, PMINFO_R_EINVAL, "Callback function is NULL");
        int ret;
-       const char *privilege;
+       privilege_x *privilege;
        GList *tmp;
        pkgmgr_pkginfo_x *info = (pkgmgr_pkginfo_x *)handle;
 
@@ -1588,10 +1588,10 @@ API int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle,
                return PMINFO_R_ERROR;
 
        for (tmp = info->pkg_info->privileges; tmp; tmp = tmp->next) {
-               privilege = (const char *)tmp->data;
+               privilege = (privilege_x *)tmp->data;
                if (privilege == NULL)
                        continue;
-               ret = privilege_func(privilege, user_data);
+               ret = privilege_func(privilege->value, user_data);
                if (ret < 0)
                        break;
        }