#include <stdlib.h>
#include "pkgmgrinfo_basic.h"
-#include "pkgmgrinfo_private.h"
+
+#ifndef API
+#define API __attribute__ ((visibility("default")))
+#endif
static void __ps_free_metadata(gpointer data)
{
metadata_x *metadata = (metadata_x *)data;
+
if (metadata == NULL)
return;
if (metadata->key)
free((void *)metadata->key);
if (metadata->value)
free((void *)metadata->value);
- free((void*)metadata);
+ free((void *)metadata);
}
static void __ps_free_permission(gpointer data)
{
permission_x *permission = (permission_x *)data;
+
if (permission == NULL)
return;
if (permission->type)
free((void *)permission->type);
if (permission->value)
free((void *)permission->value);
- free((void*)permission);
+ free((void *)permission);
}
static void __ps_free_icon(gpointer data)
{
icon_x *icon = (icon_x *)data;
+
if (icon == NULL)
return;
if (icon->text)
free((void *)icon->resolution);
if (icon->dpi)
free((void *)icon->dpi);
- free((void*)icon);
+ free((void *)icon);
}
static void __ps_free_image(gpointer data)
{
image_x *image = (image_x *)data;
+
if (image == NULL)
return;
if (image->text)
free((void *)image->lang);
if (image->section)
free((void *)image->section);
- free((void*)image);
+ free((void *)image);
}
static void __ps_free_notification(gpointer data)
{
notification_x *notification = (notification_x *)data;
+
if (notification == NULL)
return;
if (notification->text)
free((void *)notification->text);
if (notification->name)
free((void *)notification->name);
- free((void*)notification);
+ free((void *)notification);
}
static void __ps_free_compatibility(gpointer data)
{
compatibility_x *compatibility = (compatibility_x *)data;
+
if (compatibility == NULL)
return;
if (compatibility->text)
free((void *)compatibility->text);
if (compatibility->name)
free((void *)compatibility->name);
- free((void*)compatibility);
+ free((void *)compatibility);
}
-static void __ps_free_datacontrol(gpointer data)
+static void __ps_free_plugin_info(gpointer data)
{
- datacontrol_x *datacontrol = (datacontrol_x *)data;
- if (datacontrol == NULL)
+ plugin_x *plugin = (plugin_x *)data;
+
+ if (plugin == NULL)
return;
- if (datacontrol->providerid)
- free((void *)datacontrol->providerid);
- if (datacontrol->access)
- free((void *)datacontrol->access);
- if (datacontrol->type)
- free((void *)datacontrol->type);
- free((void*)datacontrol);
+ if (plugin->pkgid)
+ free((void *)plugin->pkgid);
+ if (plugin->appid)
+ free((void *)plugin->appid);
+ if (plugin->plugin_type)
+ free((void *)plugin->plugin_type);
+ if (plugin->plugin_name)
+ free((void *)plugin->plugin_name);
+ 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*/
/*Free Mime*/
if (appcontrol->mime)
free((void *)appcontrol->mime);
- free((void*)appcontrol);
+ /*Free Visibility*/
+ if (appcontrol->visibility)
+ free((void *)appcontrol->visibility);
+ /*Free Id*/
+ if (appcontrol->id)
+ free((void *)appcontrol->id);
+ /*Free Privileges*/
+ if (appcontrol->privileges)
+ g_list_free_full(appcontrol->privileges, free);
+ free((void *)appcontrol);
}
static void __ps_free_define(gpointer data)
g_list_free_full(define->request, free);
/*Free Allowed*/
g_list_free_full(define->allowed, free);
- free((void*)define);
+ free((void *)define);
}
static void __ps_free_datashare(gpointer data)
{
datashare_x *datashare = (datashare_x *)data;
+
if (datashare == NULL)
return;
/*Free Define*/
g_list_free_full(datashare->define, __ps_free_define);
/*Free Request*/
g_list_free_full(datashare->request, free);
- free((void*)datashare);
+ free((void *)datashare);
}
static void __ps_free_label(gpointer data)
{
label_x *label = (label_x *)data;
+
if (label == NULL)
return;
if (label->name)
free((void *)label->text);
if (label->lang)
free((void *)label->lang);
- free((void*)label);
+ free((void *)label);
}
static void __ps_free_author(gpointer data)
{
author_x *author = (author_x *)data;
+
if (author == NULL)
return;
if (author->email)
free((void *)author->href);
if (author->lang)
free((void *)author->lang);
- free((void*)author);
+ free((void *)author);
}
static void __ps_free_description(gpointer data)
{
description_x *description = (description_x *)data;
+
if (description == NULL)
return;
if (description->name)
free((void *)description->text);
if (description->lang)
free((void *)description->lang);
- free((void*)description);
+ free((void *)description);
}
static void __ps_free_license(gpointer data)
{
license_x *license = (license_x *)data;
+
if (license == NULL)
return;
if (license->text)
free((void *)license->text);
if (license->lang)
free((void *)license->lang);
- free((void*)license);
+ 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);
}
+static void __ps_free_privilege(gpointer data)
+{
+ privilege_x *privilege = (privilege_x *)data;
+
+ if (privilege == NULL)
+ return;
+ if (privilege->type)
+ free((void *)privilege->type);
+ if (privilege->value)
+ free((void *)privilege->value);
+ free((void *)privilege);
+}
+
+static void __ps_free_appdefined_privilege(gpointer data)
+{
+ appdefined_privilege_x *privilege = (appdefined_privilege_x *)data;
+
+ if (privilege == NULL)
+ return;
+ if (privilege->type)
+ free((void *)privilege->type);
+ if (privilege->value)
+ free((void *)privilege->value);
+ if (privilege->license)
+ free((void *)privilege->license);
+ free((void *)privilege);
+}
+
+static void __ps_free_datacontrol(gpointer data)
+{
+ datacontrol_x *datacontrol = (datacontrol_x *)data;
+
+ if (datacontrol == NULL)
+ return;
+ if (datacontrol->providerid)
+ free((void *)datacontrol->providerid);
+ if (datacontrol->access)
+ free((void *)datacontrol->access);
+ if (datacontrol->type)
+ free((void *)datacontrol->type);
+ if (datacontrol->trusted)
+ free((void *)datacontrol->trusted);
+ if (datacontrol->privileges)
+ g_list_free_full(datacontrol->privileges, free);
+ free((void *)datacontrol);
+}
+
+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)
+ free((void *)dependency->type);
+ if (dependency->required_version)
+ free((void *)dependency->required_version);
+ 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;
free((void *)application->autorestart);
if (application->taskmanage)
free((void *)application->taskmanage);
- if (application->enabled)
- free((void *)application->enabled);
if (application->categories)
free((void *)application->categories);
if (application->extraid)
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->support_ambient)
+ free((void *)application->support_ambient);
+ if (application->alias_appid)
+ free((void *)application->alias_appid);
+ if (application->external_path)
+ free((void *)application->external_path);
+ if (application->package_system)
+ free((void *)application->package_system);
+ if (application->removable)
+ free((void *)application->removable);
+ if (application->package_installed_time)
+ free((void *)application->package_installed_time);
+ if (application->support_mode)
+ free((void *)application->support_mode);
+ if (application->setup_appid)
+ 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);
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);
}
__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)
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);
+ if (package->support_mode)
+ free((void *)package->support_mode);
+ if (package->use_system_certs)
+ 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);
/*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 AppDefined Privileges*/
+ g_list_free_full(package->appdefined_privileges,
+ __ps_free_appdefined_privilege);
+ /*Free Providing AppDefined Privileges*/
+ g_list_free_full(package->provides_appdefined_privileges,
+ __ps_free_appdefined_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;
+ /*Free Dependencies*/
+ 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);
}