Add new elements for component-based application
[platform/core/appfw/pkgmgr-info.git] / src / pkgmgrinfo_basic.c
index 7f0f30c..1c1103a 100644 (file)
@@ -85,6 +85,22 @@ static void __ps_free_compatibility(gpointer data)
        free((void *)compatibility);
 }
 
+static void __ps_free_plugin_info(gpointer data)
+{
+       plugin_x *plugin = (plugin_x *)data;
+       if (plugin == NULL)
+               return;
+       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_appcontrol(gpointer data)
 {
        appcontrol_x *appcontrol = (appcontrol_x *)data;
@@ -216,6 +232,21 @@ static void __ps_free_splashscreen(gpointer data)
        free((void *)splashscreen);
 }
 
+static void __ps_free_component_info(gpointer data)
+{
+       component_x *component = (component_x *)data;
+
+       if (component == NULL)
+               return;
+       if (component->id)
+               free((void *)component->id);
+       if (component->type)
+               free((void *)component->type);
+       if (component->launch_mode)
+               free((void *)component->launch_mode);
+       free((void *)component);
+}
+
 static void __ps_free_privilege(gpointer data)
 {
        privilege_x *privilege = (privilege_x *)data;
@@ -405,6 +436,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 ComponentInfo*/
+       g_list_free_full(application->components, __ps_free_component_info);
 
        free((void *)application);
 }
@@ -501,6 +534,8 @@ API void pkgmgrinfo_basic_free_package(package_x *package)
        g_list_free_full(package->deviceprofile, free);
        /*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((void *)package);
 }