Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Reduce the number of call to hashes by caching debug_level
Baptiste Daroussin committed 11 years ago
commit e4b9d40a69ead4ce190a1956b23a0a0c9257516f
parent 05f30e3
4 files changed +6 -9
modified libpkg/pkg_config.c
@@ -63,6 +63,7 @@
#endif

int eventpipe = -1;
+
int64_t debug_level = 0;

struct config_entry {
	uint8_t type;
@@ -982,6 +983,8 @@ pkg_ini(const char *path, const char *reposdir, pkg_init_flags flags)
	if (evpipe != NULL)
		connect_evpipe(evpipe);

+
	debug_level = pkg_object_int(pkg_config_get("DEBUG_LEVEL"));
+

	it = NULL;
	object = ucl_object_find_key(config, "PKG_ENV");
	while ((cur = ucl_iterate_object(object, &it, true))) {
modified libpkg/pkg_event.c
@@ -938,11 +938,8 @@ pkg_debug(int level, const char *fmt, ...)
{
	struct pkg_event ev;
	va_list ap;
-
	int64_t expectlevel;

-
	expectlevel = pkg_object_int(pkg_config_get("DEBUG_LEVEL"));
-

-
	if (expectlevel < level)
+
	if (debug_level < level)
		return;

	ev.type = PKG_EVENT_DEBUG;
modified libpkg/pkg_solve.c
@@ -279,12 +279,8 @@ static void
pkg_debug_print_rule(struct pkg_solve_rule *rule)
{
	struct sbuf *sb;
-
	int64_t expectlevel;

-
	/* Avoid expensive printing if debug level is less than required */
-
	expectlevel = pkg_object_int(pkg_config_get("DEBUG_LEVEL"));
-

-
	if (expectlevel < 3)
+
	if (debug_level < 3)
		return;

	sb = sbuf_new_auto();
modified libpkg/private/pkg.h
@@ -116,6 +116,7 @@
	HASH_ADD(hh, head, type, sizeof(uint16_t), add)

extern int eventpipe;
+
extern int64_t debug_level;

struct pkg_repo_it;
struct pkg_repo;