[Midnightbsd-cvs] src [9831] trunk/lib/libmport: fix package meta pointer
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Fri May 11 18:01:10 EDT 2018
Revision: 9831
http://svnweb.midnightbsd.org/src/?rev=9831
Author: laffer1
Date: 2018-05-11 18:01:09 -0400 (Fri, 11 May 2018)
Log Message:
-----------
fix package meta pointer
Modified Paths:
--------------
trunk/lib/libmport/Makefile
trunk/lib/libmport/asset.c
trunk/lib/libmport/mport.h
Modified: trunk/lib/libmport/Makefile
===================================================================
--- trunk/lib/libmport/Makefile 2018-05-11 21:58:20 UTC (rev 9830)
+++ trunk/lib/libmport/Makefile 2018-05-11 22:01:09 UTC (rev 9831)
@@ -1,7 +1,7 @@
# $MidnightBSD$
LIB= mport
-SRCS= bundle_write.c bundle_read.c plist.c create_primative.c db.c \
+SRCS= asset.c bundle_write.c bundle_read.c plist.c create_primative.c db.c \
dispatch.c util.c error.c \
info.c install_primative.c instance.c \
version_cmp.c check_preconditions.c delete_primative.c \
Modified: trunk/lib/libmport/asset.c
===================================================================
--- trunk/lib/libmport/asset.c 2018-05-11 21:58:20 UTC (rev 9830)
+++ trunk/lib/libmport/asset.c 2018-05-11 22:01:09 UTC (rev 9831)
@@ -38,7 +38,7 @@
#include "mport_private.h"
MPORT_PUBLIC_API int
-mport_asset_get_package_from_file_path(mportInstance *mport, char *filePath, __block mportPackageMeta *pack)
+mport_asset_get_package_from_file_path(mportInstance *mport, const char *filePath, mportPackageMeta **pack)
{
__block sqlite3_stmt *stmt = NULL;
__block int result = MPORT_OK;
@@ -53,52 +53,40 @@
RETURN_ERROR(MPORT_ERR_FATAL, "Statement was null");
}
- dispatch_sync(mportSQLSerial, ^{
- while (1) {
- mportAssetListEntry *e;
+ while (1) {
+ int ret = sqlite3_step(stmt);
- int ret = sqlite3_step(stmt);
+ if (ret == SQLITE_BUSY || ret == SQLITE_LOCKED) {
+ sleep(1);
+ ret = sqlite3_step(stmt);
+ }
- if (ret == SQLITE_BUSY || ret == SQLITE_LOCKED) {
- sleep(1);
- ret = sqlite3_step(stmt);
- }
+ if (ret == SQLITE_DONE)
+ break;
- if (ret == SQLITE_DONE)
- break;
+ if (ret != SQLITE_ROW) {
+ err = (char *) sqlite3_errmsg(mport->db);
+ result = MPORT_ERR_FATAL;
+ break; // we finalize below
+ }
- if (ret != SQLITE_ROW) {
- err = (char *) sqlite3_errmsg(mport->db);
- result = MPORT_ERR_FATAL;
- break; // we finalize below
+ const unsigned char *pkgName = sqlite3_column_text(stmt, 0);
+ if (pkgName != NULL) {
+ mportPackageMeta **packs;
+ if (mport_pkgmeta_search_master(mport, &packs, "pkg=%Q", pkgName) != MPORT_OK || packs[0] == NULL) {
+ err = "Package does not exist despite having assets";
+ result = MPORT_ERR_FATAL;
+ break; // we finalize below
+ } else {
+ *pack = packs[0];
+ result = MPORT_OK;
+ break;
+ }
}
+ }
- e = (mportAssetListEntry *) calloc(1, sizeof(mportAssetListEntry));
+ sqlite3_finalize(stmt);
- if (e == NULL) {
- err = "Out of memory";
- result = MPORT_ERR_FATAL;
- break; // we finalize below
- }
-
- const unsigned char *pkgName = sqlite3_column_text(stmt, 0);
-
- if (pkgName != NULL) {
- mportPackageMeta **packs;
- if (mport_pkgmeta_search_master(mport, &packs, "pkg=%Q", pkgName) != MPORT_OK) {
- err = "Package does not exist despite having assets";
- result = MPORT_ERR_FATAL;
- break; // we finalize below
- } else {
- pack = packs[0];
- result = MPORT_OK;
- }
- }
- }
-
- sqlite3_finalize(stmt);
- });
-
if (result == MPORT_ERR_FATAL)
SET_ERRORX(result, "Error reading assets %s", err);
return result;
@@ -182,4 +170,4 @@
if (result == MPORT_ERR_FATAL)
SET_ERRORX(result, "Error reading assets %s", err);
return result;
-}
\ No newline at end of file
+}
Modified: trunk/lib/libmport/mport.h
===================================================================
--- trunk/lib/libmport/mport.h 2018-05-11 21:58:20 UTC (rev 9830)
+++ trunk/lib/libmport/mport.h 2018-05-11 22:01:09 UTC (rev 9831)
@@ -126,7 +126,7 @@
} mportPackageMeta;
int mport_asset_get_assetlist(mportInstance *, mportPackageMeta *, mportAssetList **);
-int mport_asset_get_package_from_file_path(mportInstance *, char *, mportPackageMeta *);
+int mport_asset_get_package_from_file_path(mportInstance *, const char *, mportPackageMeta **);
mportPackageMeta * mport_pkgmeta_new(void);
void mport_pkgmeta_free(mportPackageMeta *);
More information about the Midnightbsd-cvs
mailing list