]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Cherry-pick the change at [2d4505510032bf9] into the 3.6.1 branch.
authordrh <drh@noemail.net>
Fri, 15 Oct 2010 14:45:12 +0000 (14:45 +0000)
committerdrh <drh@noemail.net>
Fri, 15 Oct 2010 14:45:12 +0000 (14:45 +0000)
FossilOrigin-Name: ecb1419e4b359e68d583b627ac40cff33cbc06b8

manifest
manifest.uuid
src/vdbemem.c

index 7c695c13c849fc0db6758abc2be8c572eee60c44..49055be3ab412bce057c2f5ab94946fa869e73c1 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,8 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-C An\simprovement\sto\sthe\sSQLITE_FCNTL_SIZE_HINT\schange\sthat\sinvokes\sthe\shint\nless\soften\sand\sonly\swhen\sreally\sneeded.
-D 2010-05-17T15:52:44
+C Cherry-pick\sthe\schange\sat\s[2d4505510032bf9]\sinto\sthe\s3.6.1\sbranch.
+D 2010-10-15T14:45:13
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in 2713ea64947be3b35f35d9a3158bb8299c90b019
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -193,7 +193,7 @@ F src/vdbeapi.c 803f365b77a22c1b2680a0dee9202bc75c02bf4a
 F src/vdbeaux.c 21126e0d319e19125f5e42fceafb17eafe58721c
 F src/vdbeblob.c f93110888ddc246215e9ba1f831d3d375bfd8355
 F src/vdbefifo.c 20fda2a7c4c0bcee1b90eb7e545fefcdbf2e1de7
-F src/vdbemem.c c37b2a266a49eaf0c0f5080157f9f1a908fdaac3
+F src/vdbemem.c d637ff35a41aea7b72977488284ffc52e3791495
 F src/vtab.c 9c1bbb54d8b29a3412bff4eee32e9be309d85727
 F src/where.c a800184a2d023b15d6f2758b7a6c7ab011258fee
 F tclinstaller.tcl 4356d9d94d2b5ed5e68f9f0c80c4df3048dd7617
@@ -620,14 +620,14 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
 F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
-P 9a083711712d652613c93b3ad96d4f7361376c7f
-R aea3444cc6c24b1c4506b5c6f93e797e
+P a1d20ceb9c195ea96f09c2a40c898ca75f504ee1
+R 8cc8bdc0c3cf81de99cf2e9284984853
 U drh
-Z 528ef0641d2748215fd8a1354579cc0a
+Z 856d63ea9343214cf010214001f60c6f
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.6 (GNU/Linux)
 
-iD4DBQFL8WZPoxKgR168RlERAsElAJdzpp/0CbCiHpVVmJdP1OrACx5BAJ9I1u53
-hQ/7mwNPgaNvk1lSyt7EQQ==
-=34QZ
+iD8DBQFMuGj9oxKgR168RlERAnT+AJ0clrambnDmJWe9bQ41R0Ug9lDU/gCff9WO
+Cmyzo0wAPkXuY5XqauECLuk=
+=Rzx0
 -----END PGP SIGNATURE-----
index ff86b4fc068bc7088b675717cf0f5efc7ba9664e..d82549e6d25d88dcf6450a8fa48c400f8a36d0d0 100644 (file)
@@ -1 +1 @@
-a1d20ceb9c195ea96f09c2a40c898ca75f504ee1
\ No newline at end of file
+ecb1419e4b359e68d583b627ac40cff33cbc06b8
\ No newline at end of file
index 8b94e3e4a552f02fe596f50626046bcb66934d0c..f9511c60e9cbf86f9eceba30160a448f3690cf04 100644 (file)
@@ -15,7 +15,7 @@
 ** only within the VDBE.  Interface routines refer to a Mem using the
 ** name sqlite_value
 **
-** $Id: vdbemem.c,v 1.121 2008/08/01 20:10:09 drh Exp $
+** $Id: vdbemem.c,v 1.123 2008/09/16 12:06:08 danielk1977 Exp $
 */
 #include "sqliteInt.h"
 #include <ctype.h>
@@ -739,22 +739,21 @@ int sqlite3MemCompare(const Mem *pMem1, const Mem *pMem2, const CollSeq *pColl){
         ** comparison function directly */
         return pColl->xCmp(pColl->pUser,pMem1->n,pMem1->z,pMem2->n,pMem2->z);
       }else{
-        u8 origEnc = pMem1->enc;
         const void *v1, *v2;
         int n1, n2;
-        /* Convert the strings into the encoding that the comparison
-        ** function expects */
-        v1 = sqlite3ValueText((sqlite3_value*)pMem1, pColl->enc);
-        n1 = v1==0 ? 0 : pMem1->n;
-        assert( n1==sqlite3ValueBytes((sqlite3_value*)pMem1, pColl->enc) );
-        v2 = sqlite3ValueText((sqlite3_value*)pMem2, pColl->enc);
-        n2 = v2==0 ? 0 : pMem2->n;
-        assert( n2==sqlite3ValueBytes((sqlite3_value*)pMem2, pColl->enc) );
-        /* Do the comparison */
+        Mem c1;
+        Mem c2;
+        memset(&c1, 0, sizeof(c1));
+        memset(&c2, 0, sizeof(c2));
+        sqlite3VdbeMemShallowCopy(&c1, pMem1, MEM_Ephem);
+        sqlite3VdbeMemShallowCopy(&c2, pMem2, MEM_Ephem);
+        v1 = sqlite3ValueText((sqlite3_value*)&c1, pColl->enc);
+        n1 = v1==0 ? 0 : c1.n;
+        v2 = sqlite3ValueText((sqlite3_value*)&c2, pColl->enc);
+        n2 = v2==0 ? 0 : c2.n;
         rc = pColl->xCmp(pColl->pUser, n1, v1, n2, v2);
-        /* Convert the strings back into the database encoding */
-        sqlite3ValueText((sqlite3_value*)pMem1, origEnc);
-        sqlite3ValueText((sqlite3_value*)pMem2, origEnc);
+        sqlite3VdbeMemRelease(&c1);
+        sqlite3VdbeMemRelease(&c2);
         return rc;
       }
     }