[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