]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
A couple fixes for the Win32 interface for lsm1.
authormistachkin <mistachkin@noemail.net>
Thu, 29 Jun 2017 14:17:48 +0000 (14:17 +0000)
committermistachkin <mistachkin@noemail.net>
Thu, 29 Jun 2017 14:17:48 +0000 (14:17 +0000)
FossilOrigin-Name: ebbd98e941d8a8ea97b434c29b70095515af0adab1977aa4d37fe74a7401f846

ext/lsm1/lsm_win32.c
manifest
manifest.uuid

index 88b275f8e960eece0463c22af61c9c942ff8b2e0..b5a20115510d4cc7916bba3e990fd106ae2f0b9a 100644 (file)
@@ -486,11 +486,9 @@ static int lsmWin32OsFullpath(
   if( zTempUtf8 ){
     int nOut = *pnOut;
     int nLen = strlen(zTempUtf8) + 1;
-    if( nLen>=nOut ){
-      lsmFree(pEnv, zTempUtf8);
-      return LSM_IOERR_BKPT;
+    if( nLen<=nOut ){
+      snprintf(zOut, nOut, "%s", zTempUtf8);
     }
-    snprintf(zOut, nOut, "%s", zTempUtf8);
     lsmFree(pEnv, zTempUtf8);
     *pnOut = nLen;
     return LSM_OK;
@@ -639,7 +637,8 @@ int lsmWin32OsShmMap(lsm_file *pFile, int iChunk, int sz, void **ppShm){
   assert( sz==LSM_SHM_CHUNK_SIZE );
   if( iChunk>=pWin32File->nShm ){
     int i;
-    void **apNew;
+    LPHANDLE ahNew;
+    LPVOID *apNew;
     int nNew = iChunk+1;
     lsm_i64 nReq = nNew * sz;
     LARGE_INTEGER fileSize;
@@ -669,12 +668,20 @@ int lsmWin32OsShmMap(lsm_file *pFile, int iChunk, int sz, void **ppShm){
       }
     }
 
+    ahNew = (void **)lsmRealloc(pWin32File->pEnv, pWin32File->ahShm,
+                                sizeof(LPHANDLE) * nNew);
+    if( !ahNew ) return LSM_NOMEM_BKPT;
     apNew = (void **)lsmRealloc(pWin32File->pEnv, pWin32File->apShm,
                                 sizeof(LPVOID) * nNew);
-    if( !apNew ) return LSM_NOMEM_BKPT;
+    if( !apNew ){
+      lsmFree(pWin32File->pEnv, ahNew);
+      return LSM_NOMEM_BKPT;
+    }
     for(i=pWin32File->nShm; i<nNew; i++){
+      ahNew[i] = NULL;
       apNew[i] = NULL;
     }
+    pWin32File->ahShm = ahNew;
     pWin32File->apShm = apNew;
     pWin32File->nShm = nNew;
   }
@@ -761,6 +768,7 @@ static int lsmWin32OsClose(lsm_file *pFile){
       break;
     }
   }while( 1 );
+  lsmFree(pWin32File->pEnv, pWin32File->ahShm);
   lsmFree(pWin32File->pEnv, pWin32File->apShm);
   lsmFree(pWin32File->pEnv, pWin32File);
   return rc;
index 3675bb7564533069bb79368aeb23bdd0390b480a..ef9237407f720b4afc742b0cb43e69da6ba1ebaa 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sthe\sstmts\svirtual\stable\sto\stestfixture\sbuilds.\s\sAdd\snew\scompile-time\noptions\sSQLITE_ENABLE_QPSG\sand\sSQLITE_ENABLE_STMTSVTAB\sto\sctime.c
-D 2017-06-29T13:41:59.045
+C A\scouple\sfixes\sfor\sthe\sWin32\sinterface\sfor\slsm1.
+D 2017-06-29T14:17:48.990
 F Makefile.in 2fde386bd3fca21b89a5f64eaa0c580b25079cd10f6eb9692987a70b7709edc0
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 822979c692e9f1004c3ac36802ad2c130709fe4d111c272d55b8bdeb0261070a
@@ -250,7 +250,7 @@ F ext/lsm1/lsm_tree.c 5d9fb2bc58a1a70c75126bd8d7198f7b627e165b
 F ext/lsm1/lsm_unix.c ee0201dff10ce2008ef13a65f52a6ea348f287e795270f651596f812fcfccdcc
 F ext/lsm1/lsm_varint.c b19ae9bd26b5a1e8402fb8a564b25d9542338a41
 F ext/lsm1/lsm_vtab.c fff303ce03168eca9e333add3c1429b3471674b0
-F ext/lsm1/lsm_win32.c bd3f7e82ec71ad09a1487d5b64fbc03e99398dc7e8ec0160b9cd0deb3ce4421c
+F ext/lsm1/lsm_win32.c c7a9e2c6b6465292c27e58a5defb1427181ff7bcfde6f46a4afd6de272a4ef3b
 F ext/misc/README.md 8e008c8d2b02e09096b31dfba033253ac27c6c06a18aa5826e299fa7601d90b2
 F ext/misc/amatch.c 6db4607cb17c54b853a2d7c7c36046d004853f65b9b733e6f019d543d5dfae87
 F ext/misc/anycollseq.c 5ffdfde9829eeac52219136ad6aa7cd9a4edb3b15f4f2532de52f4a22525eddb
@@ -1627,7 +1627,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P b7794cc5d5abc13c6301c8d5c1b330405432c047f154083430fd15823221e552
-R 1263a289b329cfabed471001fc5531df
-U drh
-Z 13eea48e6bae5beda0392b0d9ada0310
+P 60c628293a1d8a1505e1a36dbd01b1f62bcfd7915e144044c92385423cbf8e07
+R 6b1172fa5df14c2da55cdce2ba904e67
+U mistachkin
+Z b1cb3cacab6d77553cd0c3ad7148e349
index 5f47ba9857468b68494f8a95f1601d801165a289..4922e01dedaf2c611518a2e69df52f24d20c4f7c 100644 (file)
@@ -1 +1 @@
-60c628293a1d8a1505e1a36dbd01b1f62bcfd7915e144044c92385423cbf8e07
\ No newline at end of file
+ebbd98e941d8a8ea97b434c29b70095515af0adab1977aa4d37fe74a7401f846
\ No newline at end of file