Add metadata to pkginfo
[platform/core/appfw/pkgmgr-info.git] / src / pkgmgrinfo_basic.c
index 39e088d..df90d39 100644 (file)
@@ -9,6 +9,7 @@
 static void __ps_free_metadata(gpointer data)
 {
        metadata_x *metadata = (metadata_x *)data;
+
        if (metadata == NULL)
                return;
        if (metadata->key)
@@ -21,6 +22,7 @@ static void __ps_free_metadata(gpointer data)
 static void __ps_free_permission(gpointer data)
 {
        permission_x *permission = (permission_x *)data;
+
        if (permission == NULL)
                return;
        if (permission->type)
@@ -33,6 +35,7 @@ static void __ps_free_permission(gpointer data)
 static void __ps_free_icon(gpointer data)
 {
        icon_x *icon = (icon_x *)data;
+
        if (icon == NULL)
                return;
        if (icon->text)
@@ -53,6 +56,7 @@ static void __ps_free_icon(gpointer data)
 static void __ps_free_image(gpointer data)
 {
        image_x *image = (image_x *)data;
+
        if (image == NULL)
                return;
        if (image->text)
@@ -67,6 +71,7 @@ static void __ps_free_image(gpointer data)
 static void __ps_free_notification(gpointer data)
 {
        notification_x *notification = (notification_x *)data;
+
        if (notification == NULL)
                return;
        if (notification->text)
@@ -79,6 +84,7 @@ static void __ps_free_notification(gpointer data)
 static void __ps_free_compatibility(gpointer data)
 {
        compatibility_x *compatibility = (compatibility_x *)data;
+
        if (compatibility == NULL)
                return;
        if (compatibility->text)
@@ -91,6 +97,7 @@ static void __ps_free_compatibility(gpointer data)
 static void __ps_free_plugin_info(gpointer data)
 {
        plugin_x *plugin = (plugin_x *)data;
+
        if (plugin == NULL)
                return;
        if (plugin->pkgid)
@@ -104,9 +111,21 @@ static void __ps_free_plugin_info(gpointer data)
        free((void *)plugin);
 }
 
+static void __ps_free_res_allowed_packages(gpointer data)
+{
+       res_allowed_package_x *allowed_package = (res_allowed_package_x *)data;
+
+       if (allowed_package == NULL)
+               return;
+       g_list_free_full(allowed_package->required_privileges, free);
+       free((void *)allowed_package->allowed_package);
+       free((void *)allowed_package);
+}
+
 static void __ps_free_appcontrol(gpointer data)
 {
        appcontrol_x *appcontrol = (appcontrol_x *)data;
+
        if (appcontrol == NULL)
                return;
        /*Free Operation*/
@@ -148,6 +167,7 @@ static void __ps_free_define(gpointer data)
 static void __ps_free_datashare(gpointer data)
 {
        datashare_x *datashare = (datashare_x *)data;
+
        if (datashare == NULL)
                return;
        /*Free Define*/
@@ -160,6 +180,7 @@ static void __ps_free_datashare(gpointer data)
 static void __ps_free_label(gpointer data)
 {
        label_x *label = (label_x *)data;
+
        if (label == NULL)
                return;
        if (label->name)
@@ -174,6 +195,7 @@ static void __ps_free_label(gpointer data)
 static void __ps_free_author(gpointer data)
 {
        author_x *author = (author_x *)data;
+
        if (author == NULL)
                return;
        if (author->email)
@@ -190,6 +212,7 @@ static void __ps_free_author(gpointer data)
 static void __ps_free_description(gpointer data)
 {
        description_x *description = (description_x *)data;
+
        if (description == NULL)
                return;
        if (description->name)
@@ -204,6 +227,7 @@ static void __ps_free_description(gpointer data)
 static void __ps_free_license(gpointer data)
 {
        license_x *license = (license_x *)data;
+
        if (license == NULL)
                return;
        if (license->text)
@@ -216,6 +240,7 @@ static void __ps_free_license(gpointer data)
 static void __ps_free_splashscreen(gpointer data)
 {
        splashscreen_x *splashscreen = (splashscreen_x *)data;
+
        if (splashscreen == NULL)
                return;
        if (splashscreen->src)
@@ -238,6 +263,7 @@ static void __ps_free_splashscreen(gpointer data)
 static void __ps_free_privilege(gpointer data)
 {
        privilege_x *privilege = (privilege_x *)data;
+
        if (privilege == NULL)
                return;
        if (privilege->type)
@@ -250,6 +276,7 @@ static void __ps_free_privilege(gpointer data)
 static void __ps_free_appdefined_privilege(gpointer data)
 {
        appdefined_privilege_x *privilege = (appdefined_privilege_x *)data;
+
        if (privilege == NULL)
                return;
        if (privilege->type)
@@ -264,6 +291,7 @@ static void __ps_free_appdefined_privilege(gpointer data)
 static void __ps_free_datacontrol(gpointer data)
 {
        datacontrol_x *datacontrol = (datacontrol_x *)data;
+
        if (datacontrol == NULL)
                return;
        if (datacontrol->providerid)
@@ -282,8 +310,11 @@ static void __ps_free_datacontrol(gpointer data)
 static void __ps_free_dependency(gpointer data)
 {
        dependency_x *dependency = (dependency_x *)data;
+
        if (dependency == NULL)
                return;
+       if (dependency->pkgid)
+               free((void *)dependency->pkgid);
        if (dependency->depends_on)
                free((void *)dependency->depends_on);
        if (dependency->type)
@@ -293,9 +324,23 @@ static void __ps_free_dependency(gpointer data)
        free((void *)dependency);
 }
 
+static void __ps_free_res_control(gpointer data)
+{
+       res_control_x *res_control = (res_control_x *)data;
+
+       if (res_control == NULL)
+               return;
+       free((void *)res_control->res_type);
+       free((void *)res_control->min_res_version);
+       free((void *)res_control->max_res_version);
+       free((void *)res_control->auto_close);
+       free((void *)res_control);
+}
+
 static void __ps_free_application(gpointer data)
 {
        application_x *application = (application_x *)data;
+
        if (application == NULL)
                return;
 
@@ -399,6 +444,8 @@ static void __ps_free_application(gpointer data)
                free((void *)application->setup_appid);
        if (application->locale)
                free((void *)application->locale);
+       if (application->light_user_switch_mode)
+               free((void *)application->light_user_switch_mode);
 
        /*Free Label*/
        g_list_free_full(application->label, __ps_free_label);
@@ -426,6 +473,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);
+       /*Free ResControl*/
+       g_list_free_full(application->res_control, __ps_free_res_control);
 
        free((void *)application);
 }
@@ -435,6 +484,11 @@ API void pkgmgrinfo_basic_free_application(application_x *application)
        __ps_free_application(application);
 }
 
+API void pkgmgrinfo_basic_free_dependency(dependency_x *dependency)
+{
+       __ps_free_dependency(dependency);
+}
+
 API void pkgmgrinfo_basic_free_package(package_x *package)
 {
        if (package == NULL)
@@ -497,6 +551,14 @@ API void pkgmgrinfo_basic_free_package(package_x *package)
                free((void *)package->use_system_certs);
        if (package->locale)
                free((void *)package->locale);
+       if (package->res_type)
+               free((void *)package->res_type);
+       if (package->res_version)
+               free((void *)package->res_version);
+       if (package->is_disabled)
+               free((void *)package->is_disabled);
+       if (package->light_user_switch_mode)
+               free((void *)package->light_user_switch_mode);
 
        /*Free Icon*/
        g_list_free_full(package->icon, __ps_free_icon);
@@ -526,6 +588,10 @@ API void pkgmgrinfo_basic_free_package(package_x *package)
        g_list_free_full(package->dependencies, __ps_free_dependency);
        /*Free Plugin execution history*/
        g_list_free_full(package->plugin, __ps_free_plugin_info);
+       /*Free resource allowed packages*/
+       g_list_free_full(package->res_allowed_packages, __ps_free_res_allowed_packages);
+       /*Free Metadata*/
+       g_list_free_full(package->metadata, __ps_free_metadata);
        free((void *)package);
 }