projects
/
project
/
opkg-lede.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
using list_head to handle the list
[project/opkg-lede.git]
/
libopkg
/
opkg_remove.c
diff --git
a/libopkg/opkg_remove.c
b/libopkg/opkg_remove.c
index 3edb6de5303535acabb3e0fb872544af04f98a0a..0b913fd7cae083b118b8ba3d5bd97af9056c04f0 100644
(file)
--- a/
libopkg/opkg_remove.c
+++ b/
libopkg/opkg_remove.c
@@
-346,8
+346,8
@@
int remove_data_files_and_list(opkg_conf_t *conf, pkg_t *pkg)
str_list_init(&installed_dirs);
installed_files = pkg_get_installed_files(pkg);
str_list_init(&installed_dirs);
installed_files = pkg_get_installed_files(pkg);
- for (iter =
installed_files->head; iter; iter = iter->next
) {
- file_name = iter->data;
+ for (iter =
str_list_first(installed_files); iter; iter = str_list_next(installed_files, iter)
) {
+ file_name =
(char *)
iter->data;
if (file_is_dir(file_name)) {
str_list_append(&installed_dirs, strdup(file_name));
if (file_is_dir(file_name)) {
str_list_append(&installed_dirs, strdup(file_name));
@@
-377,8
+377,8
@@
int remove_data_files_and_list(opkg_conf_t *conf, pkg_t *pkg)
if (!conf->noaction) {
do {
removed_a_dir = 0;
if (!conf->noaction) {
do {
removed_a_dir = 0;
- for (iter =
installed_dirs.head; iter; iter = iter->next
) {
- file_name = iter->data;
+ for (iter =
str_list_first(&installed_dirs); iter; iter = str_list_next(&installed_dirs, iter)
) {
+ file_name =
(char *)
iter->data;
if (rmdir(file_name) == 0) {
opkg_message(conf, OPKG_INFO, " deleting %s\n", file_name);
if (rmdir(file_name) == 0) {
opkg_message(conf, OPKG_INFO, " deleting %s\n", file_name);
@@
-395,8
+395,8
@@
int remove_data_files_and_list(opkg_conf_t *conf, pkg_t *pkg)
pkg_remove_installed_files_list(conf, pkg);
/* Don't print warning for dirs that are provided by other packages */
pkg_remove_installed_files_list(conf, pkg);
/* Don't print warning for dirs that are provided by other packages */
- for (iter =
installed_dirs.head; iter; iter = iter->next
) {
- file_name = iter->data;
+ for (iter =
str_list_first(&installed_dirs); iter; iter = str_list_next(&installed_dirs, iter)
) {
+ file_name =
(char *)
iter->data;
owner = file_hash_get_file_owner(conf, file_name);
if (owner) {
owner = file_hash_get_file_owner(conf, file_name);
if (owner) {
@@
-407,9
+407,10
@@
int remove_data_files_and_list(opkg_conf_t *conf, pkg_t *pkg)
}
/* cleanup */
}
/* cleanup */
- for (iter = installed_dirs.head; iter; iter = iter->next) {
- free(iter->data);
- iter->data = NULL;
+ while (!void_list_empty(&installed_dirs)) {
+ iter = str_list_pop(&installed_dirs);
+ free(iter->data);
+ free(iter);
}
str_list_deinit(&installed_dirs);
}
str_list_deinit(&installed_dirs);