Add codes for trust anchor
[platform/core/appfw/pkgmgr-info.git] / src / pkgmgrinfo_basic.c
1 #include <stdlib.h>
2
3 #include "pkgmgrinfo_basic.h"
4 #include "pkgmgrinfo_private.h"
5
6 static void __ps_free_metadata(gpointer data)
7 {
8         metadata_x *metadata = (metadata_x *)data;
9         if (metadata == NULL)
10                 return;
11         if (metadata->key)
12                 free((void *)metadata->key);
13         if (metadata->value)
14                 free((void *)metadata->value);
15         free((void *)metadata);
16 }
17
18 static void __ps_free_permission(gpointer data)
19 {
20         permission_x *permission = (permission_x *)data;
21         if (permission == NULL)
22                 return;
23         if (permission->type)
24                 free((void *)permission->type);
25         if (permission->value)
26                 free((void *)permission->value);
27         free((void *)permission);
28 }
29
30 static void __ps_free_icon(gpointer data)
31 {
32         icon_x *icon = (icon_x *)data;
33         if (icon == NULL)
34                 return;
35         if (icon->text)
36                 free((void *)icon->text);
37         if (icon->lang)
38                 free((void *)icon->lang);
39         if (icon->section)
40                 free((void *)icon->section);
41         if (icon->size)
42                 free((void *)icon->size);
43         if (icon->resolution)
44                 free((void *)icon->resolution);
45         if (icon->dpi)
46                 free((void *)icon->dpi);
47         free((void *)icon);
48 }
49
50 static void __ps_free_image(gpointer data)
51 {
52         image_x *image = (image_x *)data;
53         if (image == NULL)
54                 return;
55         if (image->text)
56                 free((void *)image->text);
57         if (image->lang)
58                 free((void *)image->lang);
59         if (image->section)
60                 free((void *)image->section);
61         free((void *)image);
62 }
63
64 static void __ps_free_notification(gpointer data)
65 {
66         notification_x *notification = (notification_x *)data;
67         if (notification == NULL)
68                 return;
69         if (notification->text)
70                 free((void *)notification->text);
71         if (notification->name)
72                 free((void *)notification->name);
73         free((void *)notification);
74 }
75
76 static void __ps_free_compatibility(gpointer data)
77 {
78         compatibility_x *compatibility = (compatibility_x *)data;
79         if (compatibility == NULL)
80                 return;
81         if (compatibility->text)
82                 free((void *)compatibility->text);
83         if (compatibility->name)
84                 free((void *)compatibility->name);
85         free((void *)compatibility);
86 }
87
88 static void __ps_free_appcontrol(gpointer data)
89 {
90         appcontrol_x *appcontrol = (appcontrol_x *)data;
91         if (appcontrol == NULL)
92                 return;
93         /*Free Operation*/
94         if (appcontrol->operation)
95                 free((void *)appcontrol->operation);
96         /*Free Uri*/
97         if (appcontrol->uri)
98                 free((void *)appcontrol->uri);
99         /*Free Mime*/
100         if (appcontrol->mime)
101                 free((void *)appcontrol->mime);
102         if (appcontrol->privileges)
103                 g_list_free_full(appcontrol->privileges, free);
104         free((void *)appcontrol);
105 }
106
107 static void __ps_free_define(gpointer data)
108 {
109         define_x *define = (define_x *)data;
110
111         if (define == NULL)
112                 return;
113         if (define->path)
114                 free((void *)define->path);
115         /*Free Request*/
116         g_list_free_full(define->request, free);
117         /*Free Allowed*/
118         g_list_free_full(define->allowed, free);
119         free((void *)define);
120 }
121
122 static void __ps_free_datashare(gpointer data)
123 {
124         datashare_x *datashare = (datashare_x *)data;
125         if (datashare == NULL)
126                 return;
127         /*Free Define*/
128         g_list_free_full(datashare->define, __ps_free_define);
129         /*Free Request*/
130         g_list_free_full(datashare->request, free);
131         free((void *)datashare);
132 }
133
134 static void __ps_free_label(gpointer data)
135 {
136         label_x *label = (label_x *)data;
137         if (label == NULL)
138                 return;
139         if (label->name)
140                 free((void *)label->name);
141         if (label->text)
142                 free((void *)label->text);
143         if (label->lang)
144                 free((void *)label->lang);
145         free((void *)label);
146 }
147
148 static void __ps_free_author(gpointer data)
149 {
150         author_x *author = (author_x *)data;
151         if (author == NULL)
152                 return;
153         if (author->email)
154                 free((void *)author->email);
155         if (author->text)
156                 free((void *)author->text);
157         if (author->href)
158                 free((void *)author->href);
159         if (author->lang)
160                 free((void *)author->lang);
161         free((void *)author);
162 }
163
164 static void __ps_free_description(gpointer data)
165 {
166         description_x *description = (description_x *)data;
167         if (description == NULL)
168                 return;
169         if (description->name)
170                 free((void *)description->name);
171         if (description->text)
172                 free((void *)description->text);
173         if (description->lang)
174                 free((void *)description->lang);
175         free((void *)description);
176 }
177
178 static void __ps_free_license(gpointer data)
179 {
180         license_x *license = (license_x *)data;
181         if (license == NULL)
182                 return;
183         if (license->text)
184                 free((void *)license->text);
185         if (license->lang)
186                 free((void *)license->lang);
187         free((void *)license);
188 }
189
190 static void __ps_free_splashscreen(gpointer data)
191 {
192         splashscreen_x *splashscreen = (splashscreen_x *)data;
193         if (splashscreen == NULL)
194                 return;
195         if (splashscreen->src)
196                 free((void *)splashscreen->src);
197         if (splashscreen->type)
198                 free((void *)splashscreen->type);
199         if (splashscreen->dpi)
200                 free((void *)splashscreen->dpi);
201         if (splashscreen->orientation)
202                 free((void *)splashscreen->orientation);
203         if (splashscreen->indicatordisplay)
204                 free((void *)splashscreen->indicatordisplay);
205         if (splashscreen->operation)
206                 free((void *)splashscreen->operation);
207         if (splashscreen->color_depth)
208                 free((void *)splashscreen->color_depth);
209         free((void *)splashscreen);
210 }
211
212 static void __ps_free_privilege(gpointer data)
213 {
214         privilege_x *privilege = (privilege_x *)data;
215         if (privilege == NULL)
216                 return;
217         if (privilege->type)
218                 free((void *)privilege->type);
219         if (privilege->value)
220                 free((void *)privilege->value);
221         free((void *)privilege);
222 }
223
224 static void __ps_free_appdefined_privilege(gpointer data)
225 {
226         appdefined_privilege_x *privilege = (appdefined_privilege_x *)data;
227         if (privilege == NULL)
228                 return;
229         if (privilege->type)
230                 free((void *)privilege->type);
231         if (privilege->value)
232                 free((void *)privilege->value);
233         if (privilege->license)
234                 free((void *)privilege->license);
235         free((void *)privilege);
236 }
237
238 static void __ps_free_datacontrol(gpointer data)
239 {
240         datacontrol_x *datacontrol = (datacontrol_x *)data;
241         if (datacontrol == NULL)
242                 return;
243         if (datacontrol->providerid)
244                 free((void *)datacontrol->providerid);
245         if (datacontrol->access)
246                 free((void *)datacontrol->access);
247         if (datacontrol->type)
248                 free((void *)datacontrol->type);
249         if (datacontrol->trusted)
250                 free((void *)datacontrol->trusted);
251         if (datacontrol->privileges)
252                 g_list_free_full(datacontrol->privileges, free);
253         free((void *)datacontrol);
254 }
255
256 static void __ps_free_application(gpointer data)
257 {
258         application_x *application = (application_x *)data;
259         if (application == NULL)
260                 return;
261
262         if (application->appid)
263                 free((void *)application->appid);
264         if (application->component)
265                 free((void *)application->component);
266         if (application->exec)
267                 free((void *)application->exec);
268         if (application->nodisplay)
269                 free((void *)application->nodisplay);
270         if (application->type)
271                 free((void *)application->type);
272         if (application->onboot)
273                 free((void *)application->onboot);
274         if (application->multiple)
275                 free((void *)application->multiple);
276         if (application->autorestart)
277                 free((void *)application->autorestart);
278         if (application->taskmanage)
279                 free((void *)application->taskmanage);
280         if (application->categories)
281                 free((void *)application->categories);
282         if (application->extraid)
283                 free((void *)application->extraid);
284         if (application->hwacceleration)
285                 free((void *)application->hwacceleration);
286         if (application->screenreader)
287                 free((void *)application->screenreader);
288         if (application->mainapp)
289                 free((void *)application->mainapp);
290         if (application->recentimage)
291                 free((void *)application->recentimage);
292         if (application->launchcondition)
293                 free((void *)application->launchcondition);
294         if (application->indicatordisplay)
295                 free((void *)application->indicatordisplay);
296         if (application->portraitimg)
297                 free((void *)application->portraitimg);
298         if (application->landscapeimg)
299                 free((void *)application->landscapeimg);
300         if (application->guestmode_visibility)
301                 free((void *)application->guestmode_visibility);
302         if (application->permission_type)
303                 free((void *)application->permission_type);
304         if (application->preload)
305                 free((void *)application->preload);
306         if (application->submode)
307                 free((void *)application->submode);
308         if (application->submode_mainid)
309                 free((void *)application->submode_mainid);
310         if (application->process_pool)
311                 free((void *)application->process_pool);
312         if (application->installed_storage)
313                 free((void *)application->installed_storage);
314         if (application->launch_mode)
315                 free((void *)application->launch_mode);
316         if (application->ui_gadget)
317                 free((void *)application->ui_gadget);
318         if (application->component_type)
319                 free((void *)application->component_type);
320         if (application->package)
321                 free((void *)application->package);
322         if (application->support_disable)
323                 free((void *)application->support_disable);
324         if (application->tep_name)
325                 free((void *)application->tep_name);
326         if (application->zip_mount_file)
327                 free((void *)application->zip_mount_file);
328         if (application->root_path)
329                 free((void *)application->root_path);
330         if (application->api_version)
331                 free((void *)application->api_version);
332         if (application->for_all_users)
333                 free((void *)application->for_all_users);
334         if (application->effective_appid)
335                 free((void *)application->effective_appid);
336         if (application->is_disabled)
337                 free((void *)application->is_disabled);
338         if (application->splash_screen_display)
339                 free((void *)application->splash_screen_display);
340         if (application->effectimage_type)
341                 free((void *)application->effectimage_type);
342         if (application->package_type)
343                 free((void *)application->package_type);
344         if (application->support_ambient)
345                 free((void *)application->support_ambient);
346         if (application->alias_appid)
347                 free((void *)application->alias_appid);
348         if (application->external_path)
349                 free((void *)application->external_path);
350         if (application->package_system)
351                 free((void *)application->package_system);
352         if (application->removable)
353                 free((void *)application->removable);
354         if (application->package_installed_time)
355                 free((void *)application->package_installed_time);
356         if (application->support_mode)
357                 free((void *)application->support_mode);
358         if (application->setup_appid)
359                 free((void *)application->setup_appid);
360
361         /*Free Label*/
362         g_list_free_full(application->label, __ps_free_label);
363         /*Free Icon*/
364         g_list_free_full(application->icon, __ps_free_icon);
365         /*Free image*/
366         g_list_free_full(application->image, __ps_free_image);
367         /*Free AppControl*/
368         g_list_free_full(application->appcontrol, __ps_free_appcontrol);
369         /*Free Category*/
370         g_list_free_full(application->category, free);
371         /*Free Metadata*/
372         g_list_free_full(application->metadata, __ps_free_metadata);
373         /*Free permission*/
374         g_list_free_full(application->permission, __ps_free_permission);
375         /*Free LaunchConditions*/
376         g_list_free_full(application->launchconditions, free);
377         /*Free Notification*/
378         g_list_free_full(application->notification, __ps_free_notification);
379         /*Free DataShare*/
380         g_list_free_full(application->datashare, __ps_free_datashare);
381         /*Free DataControl*/
382         g_list_free_full(application->datacontrol, __ps_free_datacontrol);
383         /*Free BackgroundCategory*/
384         g_list_free_full(application->background_category, free);
385         /*Free SplashScreen*/
386         g_list_free_full(application->splashscreens, __ps_free_splashscreen);
387
388         free((void *)application);
389 }
390
391 API void pkgmgrinfo_basic_free_application(application_x *application)
392 {
393         __ps_free_application(application);
394 }
395
396 API void pkgmgrinfo_basic_free_package(package_x *package)
397 {
398         if (package == NULL)
399                 return;
400         if (package->for_all_users)
401                 free((void *)package->for_all_users);
402         if (package->ns)
403                 free((void *)package->ns);
404         if (package->package)
405                 free((void *)package->package);
406         if (package->version)
407                 free((void *)package->version);
408         if (package->installlocation)
409                 free((void *)package->installlocation);
410         if (package->preload)
411                 free((void *)package->preload);
412         if (package->readonly)
413                 free((void *)package->readonly);
414         if (package->removable)
415                 free((void *)package->removable);
416         if (package->update)
417                 free((void *)package->update);
418         if (package->system)
419                 free((void *)package->system);
420         if (package->type)
421                 free((void *)package->type);
422         if (package->package_size)
423                 free((void *)package->package_size);
424         if (package->installed_time)
425                 free((void *)package->installed_time);
426         if (package->installed_storage)
427                 free((void *)package->installed_storage);
428         if (package->storeclient_id)
429                 free((void *)package->storeclient_id);
430         if (package->mainapp_id)
431                 free((void *)package->mainapp_id);
432         if (package->package_url)
433                 free((void *)package->package_url);
434         if (package->root_path)
435                 free((void *)package->root_path);
436         if (package->csc_path)
437                 free((void *)package->csc_path);
438         if (package->appsetting)
439                 free((void *)package->appsetting);
440         if (package->nodisplay_setting)
441                 free((void *)package->nodisplay_setting);
442         if (package->api_version)
443                 free((void *)package->api_version);
444         if (package->support_disable)
445                 free((void *)package->support_disable);
446         if (package->tep_name)
447                 free((void *)package->tep_name);
448         if (package->zip_mount_file)
449                 free((void *)package->zip_mount_file);
450         if (package->external_path)
451                 free((void *)package->external_path);
452         if (package->support_mode)
453                 free((void *)package->support_mode);
454         if (package->pkg_certs_dir)
455                 free((void *)package->pkg_certs_dir);
456         if (package->use_system_certs)
457                 free((void *)package->use_system_certs);
458
459         /*Free Icon*/
460         g_list_free_full(package->icon, __ps_free_icon);
461         /*Free Label*/
462         g_list_free_full(package->label, __ps_free_label);
463         /*Free Author*/
464         g_list_free_full(package->author, __ps_free_author);
465         /*Free Description*/
466         g_list_free_full(package->description, __ps_free_description);
467         /*Free License*/
468         g_list_free_full(package->license, __ps_free_license);
469         /*Free Privileges*/
470         g_list_free_full(package->privileges, __ps_free_privilege);
471         /*Free AppDefined Privileges*/
472         g_list_free_full(package->appdefined_privileges,
473                 __ps_free_appdefined_privilege);
474         /*Free Providing AppDefined Privileges*/
475         g_list_free_full(package->provides_appdefined_privileges,
476                 __ps_free_appdefined_privilege);
477         /*Free Application*/
478         g_list_free_full(package->application, __ps_free_application);
479         /*Free Compatibility*/
480         g_list_free_full(package->compatibility, __ps_free_compatibility);
481         /*Free Device profiles*/
482         g_list_free_full(package->deviceprofile, free);
483         free((void *)package);
484 }
485