Reworking handling privileges for hybrid application
[platform/core/appfw/pkgmgr-info.git] / src / pkgmgrinfo_basic.c
index 502bd92..d4601e7 100644 (file)
@@ -216,9 +216,34 @@ static void __ps_free_splashscreen(gpointer data)
                free((void *)splashscreen->indicatordisplay);
        if (splashscreen->operation)
                free((void *)splashscreen->operation);
+       if (splashscreen->color_depth)
+               free((void *)splashscreen->color_depth);
        free((void *)splashscreen);
 }
 
+/* FIXME */
+static void __ps_free_support_size(gpointer data)
+{
+       support_size_x *support_size = (support_size_x *)data;
+       if (support_size == NULL)
+               return;
+       if (support_size->preview)
+               free((void *)support_size->preview);
+       if (support_size->size)
+               free((void *)support_size->size);
+       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;
@@ -291,6 +316,8 @@ static void __ps_free_application(gpointer data)
                free((void *)application->support_disable);
        if (application->tep_name)
                free((void *)application->tep_name);
+       if (application->zip_mount_file)
+               free((void *)application->zip_mount_file);
        if (application->root_path)
                free((void *)application->root_path);
        if (application->api_version)
@@ -299,6 +326,20 @@ static void __ps_free_application(gpointer data)
                free((void *)application->for_all_users);
        if (application->effective_appid)
                free((void *)application->effective_appid);
+       if (application->is_disabled)
+               free((void *)application->is_disabled);
+       if (application->splash_screen_display)
+               free((void *)application->splash_screen_display);
+       if (application->effectimage_type)
+               free((void *)application->effectimage_type);
+       if (application->package_type)
+               free((void *)application->package_type);
+       if (application->ambient_support)
+               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);
@@ -326,6 +367,8 @@ static void __ps_free_application(gpointer data)
        g_list_free_full(application->background_category, free);
        /*Free SplashScreen*/
        g_list_free_full(application->splashscreens, __ps_free_splashscreen);
+       /* FIXME */
+       g_list_free_full(application->support_sizes, __ps_free_support_size);
 
        free((void *)application);
 }
@@ -387,6 +430,10 @@ API void pkgmgrinfo_basic_free_package(package_x *package)
                free((void *)package->support_disable);
        if (package->tep_name)
                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);
@@ -399,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*/