Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Avoid parsing the ABI file too many times
Baptiste Daroussin committed 8 years ago
commit 2888b9ce7e603501416e91bdf144b658e0a8670a
parent 6f7e273
2 files changed +4 -5
modified libpkg/pkg_create.c
@@ -306,7 +306,7 @@ pkg_load_metadata(struct pkg *pkg, const char *mfile, const char *md_dir,
    const char *plist, const char *rootdir, bool testing)
{
	struct pkg_manifest_key *keys = NULL;
-
	char			 arch[BUFSIZ];
+
	const char		*arch;
	regex_t			 preg;
	regmatch_t		 pmatch[2];
	int			 i, ret = EPKG_OK;
@@ -346,7 +346,7 @@ pkg_load_metadata(struct pkg *pkg, const char *mfile, const char *md_dir,

	/* if no arch autodetermine it */
	if (pkg->abi == NULL) {
-
		pkg_get_myarch(arch, BUFSIZ);
+
		arch = pkg_object_string(pkg_config_get("ABI"));
		pkg->abi = xstrdup(arch);
		defaultarch = true;
	}
modified libpkg/pkgdb.c
@@ -205,7 +205,6 @@ void
pkgdb_myarch(sqlite3_context *ctx, int argc, sqlite3_value **argv)
{
	const unsigned char	*arch = NULL;
-
	char			 myarch[BUFSIZ];

	if (argc > 1) {
		sqlite3_result_error(ctx, "Invalid usage of myarch\n", -1);
@@ -213,8 +212,8 @@ pkgdb_myarch(sqlite3_context *ctx, int argc, sqlite3_value **argv)
	}

	if (argc == 0 || (arch = sqlite3_value_text(argv[0])) == NULL) {
-
		pkg_get_myarch(myarch, BUFSIZ);
-
		sqlite3_result_text(ctx, myarch, strlen(myarch), NULL);
+
		arch = pkg_object_string(pkg_config_get("ABI"));
+
		sqlite3_result_text(ctx, arch, strlen(arch), NULL);
		return;
	}
	sqlite3_result_text(ctx, arch, strlen(arch), NULL);