Reworking handling privileges for hybrid application
[platform/core/appfw/pkgmgr-info.git] / src / pkgmgrinfo_basic.c
index a37a30b..d4601e7 100644 (file)
@@ -36,14 +36,14 @@ static void __ps_free_icon(gpointer data)
                free((void *)icon->text);
        if (icon->lang)
                free((void *)icon->lang);
-       if (icon->name)
-               free((void *)icon->name);
        if (icon->section)
                free((void *)icon->section);
        if (icon->size)
                free((void *)icon->size);
        if (icon->resolution)
                free((void *)icon->resolution);
+       if (icon->dpi)
+               free((void *)icon->dpi);
        free((void*)icon);
 }
 
@@ -56,8 +56,6 @@ static void __ps_free_image(gpointer data)
                free((void *)image->text);
        if (image->lang)
                free((void *)image->lang);
-       if (image->name)
-               free((void *)image->name);
        if (image->section)
                free((void *)image->section);
        free((void*)image);
@@ -118,28 +116,6 @@ static void __ps_free_appcontrol(gpointer data)
        free((void*)appcontrol);
 }
 
-static void __ps_free_appsvc(gpointer data)
-{
-       appsvc_x *appsvc = (appsvc_x *)data;
-       if (appsvc == NULL)
-               return;
-       if (appsvc->text)
-               free((void *)appsvc->text);
-       /*Free Operation*/
-       if (appsvc->operation)
-               free((void *)appsvc->operation);
-       /*Free Uri*/
-       if (appsvc->uri)
-               free((void *)appsvc->uri);
-       /*Free Mime*/
-       if (appsvc->mime)
-               free((void *)appsvc->mime);
-       /*Free subapp*/
-       if (appsvc->subapp)
-               free((void *)appsvc->subapp);
-       free((void*)appsvc);
-}
-
 static void __ps_free_define(gpointer data)
 {
        define_x *define = (define_x *)data;
@@ -223,6 +199,51 @@ static void __ps_free_license(gpointer data)
        free((void*)license);
 }
 
+static void __ps_free_splashscreen(gpointer data)
+{
+       splashscreen_x *splashscreen = (splashscreen_x *)data;
+       if (splashscreen == NULL)
+               return;
+       if (splashscreen->src)
+               free((void *)splashscreen->src);
+       if (splashscreen->type)
+               free((void *)splashscreen->type);
+       if (splashscreen->dpi)
+               free((void *)splashscreen->dpi);
+       if (splashscreen->orientation)
+               free((void *)splashscreen->orientation);
+       if (splashscreen->indicatordisplay)
+               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;
@@ -279,6 +300,10 @@ static void __ps_free_application(gpointer data)
                free((void *)application->submode);
        if (application->submode_mainid)
                free((void *)application->submode_mainid);
+       if (application->process_pool)
+               free((void *)application->process_pool);
+       if (application->installed_storage)
+               free((void *)application->installed_storage);
        if (application->launch_mode)
                free((void *)application->launch_mode);
        if (application->ui_gadget)
@@ -289,6 +314,32 @@ static void __ps_free_application(gpointer data)
                free((void *)application->package);
        if (application->support_disable)
                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)
+               free((void *)application->api_version);
+       if (application->for_all_users)
+               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);
@@ -296,8 +347,6 @@ static void __ps_free_application(gpointer data)
        g_list_free_full(application->icon, __ps_free_icon);
        /*Free image*/
        g_list_free_full(application->image, __ps_free_image);
-       /*Free AppSvc*/
-       g_list_free_full(application->appsvc, __ps_free_appsvc);
        /*Free AppControl*/
        g_list_free_full(application->appcontrol, __ps_free_appcontrol);
        /*Free Category*/
@@ -314,6 +363,13 @@ static void __ps_free_application(gpointer data)
        g_list_free_full(application->datashare, __ps_free_datashare);
        /*Free DataControl*/
        g_list_free_full(application->datacontrol, __ps_free_datacontrol);
+       /*Free BackgroundCategory*/
+       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);
 }
 
@@ -372,6 +428,12 @@ API void pkgmgrinfo_basic_free_package(package_x *package)
                free((void *)package->api_version);
        if (package->support_disable)
                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);
@@ -384,11 +446,13 @@ 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*/
        g_list_free_full(package->compatibility, __ps_free_compatibility);
+       /*Free Device profiles*/
+       g_list_free_full(package->deviceprofile, free);
        free((void*)package);
        return;
 }