3 #include "pkgmgrinfo_basic.h"
6 #define API __attribute__ ((visibility("default")))
9 static void __ps_free_metadata(gpointer data)
11 metadata_x *metadata = (metadata_x *)data;
16 free((void *)metadata->key);
18 free((void *)metadata->value);
19 free((void *)metadata);
22 static void __ps_free_permission(gpointer data)
24 permission_x *permission = (permission_x *)data;
26 if (permission == NULL)
29 free((void *)permission->type);
30 if (permission->value)
31 free((void *)permission->value);
32 free((void *)permission);
35 static void __ps_free_icon(gpointer data)
37 icon_x *icon = (icon_x *)data;
42 free((void *)icon->text);
44 free((void *)icon->lang);
46 free((void *)icon->section);
48 free((void *)icon->size);
50 free((void *)icon->resolution);
52 free((void *)icon->dpi);
56 static void __ps_free_image(gpointer data)
58 image_x *image = (image_x *)data;
63 free((void *)image->text);
65 free((void *)image->lang);
67 free((void *)image->section);
71 static void __ps_free_notification(gpointer data)
73 notification_x *notification = (notification_x *)data;
75 if (notification == NULL)
77 if (notification->text)
78 free((void *)notification->text);
79 if (notification->name)
80 free((void *)notification->name);
81 free((void *)notification);
84 static void __ps_free_compatibility(gpointer data)
86 compatibility_x *compatibility = (compatibility_x *)data;
88 if (compatibility == NULL)
90 if (compatibility->text)
91 free((void *)compatibility->text);
92 if (compatibility->name)
93 free((void *)compatibility->name);
94 free((void *)compatibility);
97 static void __ps_free_plugin_info(gpointer data)
99 plugin_x *plugin = (plugin_x *)data;
104 free((void *)plugin->pkgid);
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);
114 static void __ps_free_appcontrol(gpointer data)
116 appcontrol_x *appcontrol = (appcontrol_x *)data;
118 if (appcontrol == NULL)
121 if (appcontrol->operation)
122 free((void *)appcontrol->operation);
125 free((void *)appcontrol->uri);
127 if (appcontrol->mime)
128 free((void *)appcontrol->mime);
130 if (appcontrol->visibility)
131 free((void *)appcontrol->visibility);
134 free((void *)appcontrol->id);
136 if (appcontrol->privileges)
137 g_list_free_full(appcontrol->privileges, free);
138 free((void *)appcontrol);
141 static void __ps_free_define(gpointer data)
143 define_x *define = (define_x *)data;
148 free((void *)define->path);
150 g_list_free_full(define->request, free);
152 g_list_free_full(define->allowed, free);
153 free((void *)define);
156 static void __ps_free_datashare(gpointer data)
158 datashare_x *datashare = (datashare_x *)data;
160 if (datashare == NULL)
163 g_list_free_full(datashare->define, __ps_free_define);
165 g_list_free_full(datashare->request, free);
166 free((void *)datashare);
169 static void __ps_free_label(gpointer data)
171 label_x *label = (label_x *)data;
176 free((void *)label->name);
178 free((void *)label->text);
180 free((void *)label->lang);
184 static void __ps_free_author(gpointer data)
186 author_x *author = (author_x *)data;
191 free((void *)author->email);
193 free((void *)author->text);
195 free((void *)author->href);
197 free((void *)author->lang);
198 free((void *)author);
201 static void __ps_free_description(gpointer data)
203 description_x *description = (description_x *)data;
205 if (description == NULL)
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);
216 static void __ps_free_license(gpointer data)
218 license_x *license = (license_x *)data;
223 free((void *)license->text);
225 free((void *)license->lang);
226 free((void *)license);
229 static void __ps_free_splashscreen(gpointer data)
231 splashscreen_x *splashscreen = (splashscreen_x *)data;
233 if (splashscreen == NULL)
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);
252 static void __ps_free_privilege(gpointer data)
254 privilege_x *privilege = (privilege_x *)data;
256 if (privilege == NULL)
259 free((void *)privilege->type);
260 if (privilege->value)
261 free((void *)privilege->value);
262 free((void *)privilege);
265 static void __ps_free_appdefined_privilege(gpointer data)
267 appdefined_privilege_x *privilege = (appdefined_privilege_x *)data;
269 if (privilege == NULL)
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);
280 static void __ps_free_datacontrol(gpointer data)
282 datacontrol_x *datacontrol = (datacontrol_x *)data;
284 if (datacontrol == NULL)
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);
299 static void __ps_free_dependency(gpointer data)
301 dependency_x *dependency = (dependency_x *)data;
303 if (dependency == NULL)
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);
316 static void __ps_free_application(gpointer data)
318 application_x *application = (application_x *)data;
320 if (application == NULL)
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);
425 g_list_free_full(application->label, __ps_free_label);
427 g_list_free_full(application->icon, __ps_free_icon);
429 g_list_free_full(application->image, __ps_free_image);
431 g_list_free_full(application->appcontrol, __ps_free_appcontrol);
433 g_list_free_full(application->category, free);
435 g_list_free_full(application->metadata, __ps_free_metadata);
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);
443 g_list_free_full(application->datashare, __ps_free_datashare);
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);
451 free((void *)application);
454 API void pkgmgrinfo_basic_free_application(application_x *application)
456 __ps_free_application(application);
459 API void pkgmgrinfo_basic_free_dependency(dependency_x *dependency)
461 __ps_free_dependency(dependency);
464 API void pkgmgrinfo_basic_free_package(package_x *package)
468 if (package->for_all_users)
469 free((void *)package->for_all_users);
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);
485 free((void *)package->update);
487 free((void *)package->system);
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);
525 free((void *)package->locale);
528 g_list_free_full(package->icon, __ps_free_icon);
530 g_list_free_full(package->label, __ps_free_label);
532 g_list_free_full(package->author, __ps_free_author);
534 g_list_free_full(package->description, __ps_free_description);
536 g_list_free_full(package->license, __ps_free_license);
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);
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);