Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Fix performance regression on files/directories
Baptiste Daroussin committed 10 years ago
commit 45c1211be760599011342010ddcb7ddbdb434493
parent 2b37fac
3 files changed +10 -6
modified libpkg/pkg.c
@@ -739,7 +739,7 @@ pkg_addfile_attr(struct pkg *pkg, const char *path, const char *sum,
		f->fflags = fflags;

	kh_add(pkg_files, pkg->filehash, f, f->path);
-
	LL_APPEND(pkg->files, f);
+
	DL_APPEND(pkg->files, f);

	return (EPKG_OK);
}
@@ -842,7 +842,7 @@ pkg_adddir_attr(struct pkg *pkg, const char *path, const char *uname,
		d->fflags = fflags;

	kh_add(pkg_dirs, pkg->dirhash, d, d->path);
-
	LL_APPEND(pkg->dirs, d);
+
	DL_APPEND(pkg->dirs, d);

	return (EPKG_OK);
}
@@ -1784,7 +1784,7 @@ pkg_message_from_ucl(struct pkg *pkg, const ucl_object_t *obj)
		}
		msg->str = strdup(ucl_object_tostring(obj));
		msg->type = PKG_MESSAGE_ALWAYS;
-
		LL_APPEND(pkg->message, msg);
+
		DL_APPEND(pkg->message, msg);
		return (EPKG_OK);
	}

@@ -1825,7 +1825,7 @@ pkg_message_from_ucl(struct pkg *pkg, const ucl_object_t *obj)
				    " message will always be printed");
		}
		if (msg->type != PKG_MESSAGE_UPGRADE) {
-
			LL_APPEND(pkg->message, msg);
+
			DL_APPEND(pkg->message, msg);
			continue;
		}

@@ -1839,7 +1839,7 @@ pkg_message_from_ucl(struct pkg *pkg, const ucl_object_t *obj)
			msg->maximum_version = strdup(ucl_object_tostring(elt));
		}

-
		LL_APPEND(pkg->message, msg);
+
		DL_APPEND(pkg->message, msg);
	}

	return (EPKG_OK);
modified libpkg/pkg_printf.c
@@ -1066,7 +1066,7 @@ format_files(struct sbuf *sbuf, const void *data, struct percent_esc *p)
		set_list_defaults(p, "%Fn\n", "");

		count = 1;
-
		while (pkg_files(pkg, &file) == EPKG_OK) {
+
		LL_FOREACH(pkg->files, file) {
			if (count > 1)
				iterate_item(sbuf, pkg, sbuf_data(p->sep_fmt),
					     file, count, PP_F);
modified libpkg/private/pkg.h
@@ -42,6 +42,7 @@
#include <stdbool.h>
#include <uthash.h>
#include <utlist.h>
+
#include <kvec.h>
#include <ucl.h>

#include "private/utils.h"
@@ -288,6 +289,7 @@ struct pkg_message {
	char			*minimum_version;
	char			*maximum_version;
	pkg_message_t		 type;
+
	struct pkg_message	*prev;
	struct pkg_message	*next;
};

@@ -313,6 +315,7 @@ struct pkg_file {
	char		 gname[MAXLOGNAME];
	mode_t		 perm;
	u_long		 fflags;
+
	struct pkg_file	*prev;
	struct pkg_file	*next;
};

@@ -322,6 +325,7 @@ struct pkg_dir {
	char		 gname[MAXLOGNAME];
	mode_t		 perm;
	u_long		 fflags;
+
	struct pkg_dir	*prev;
	struct pkg_dir	*next;
};