Reworking handling privileges for hybrid application
[platform/core/appfw/pkgmgr-info.git] / src / pkgmgrinfo_basic.c
index 060f264..d4601e7 100644 (file)
@@ -234,6 +234,16 @@ static void __ps_free_support_size(gpointer data)
        free((void *)support_size);
 }
 
+static void __ps_free_privilege(gpointer data)
+{
+       privilege_x *privilege = (privilege_x *)data;
+       if (privilege->type)
+               free((void *)privilege->type);
+       if (privilege->value)
+               free((void *)privilege->value);
+       free((void *)privilege);
+}
+
 static void __ps_free_application(gpointer data)
 {
        application_x *application = (application_x *)data;
@@ -328,6 +338,8 @@ static void __ps_free_application(gpointer data)
                free((void *)application->ambient_support);
        if (application->alias_appid)
                free((void *)application->alias_appid);
+       if (application->external_path)
+               free((void *)application->external_path);
 
        /*Free Label*/
        g_list_free_full(application->label, __ps_free_label);
@@ -420,6 +432,8 @@ API void pkgmgrinfo_basic_free_package(package_x *package)
                free((void *)package->tep_name);
        if (package->zip_mount_file)
                free((void *)package->zip_mount_file);
+       if (package->external_path)
+               free((void *)package->external_path);
 
        /*Free Icon*/
        g_list_free_full(package->icon, __ps_free_icon);
@@ -432,7 +446,7 @@ API void pkgmgrinfo_basic_free_package(package_x *package)
        /*Free License*/
        g_list_free_full(package->license, __ps_free_license);
        /*Free Privileges*/
-       g_list_free_full(package->privileges, free);
+       g_list_free_full(package->privileges, __ps_free_privilege);
        /*Free Application*/
        g_list_free_full(package->application, __ps_free_application);
        /*Free Compatibility*/