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