]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
The use P4_DYNAMIC in place of the P4_MPRINTF operand type.
authordrh <drh@noemail.net>
Wed, 7 Dec 2016 20:22:31 +0000 (20:22 +0000)
committerdrh <drh@noemail.net>
Wed, 7 Dec 2016 20:22:31 +0000 (20:22 +0000)
FossilOrigin-Name: 3954f83798ed78527280c9db6360c62a5134b9ec

manifest
manifest.uuid
src/vdbe.h
src/vdbeaux.c
src/wherecode.c

index f9b12284f96e119b083adaa9f817b62b1dff2470..5fd4826eedd62db5a740dde1209161f0715abdae 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Performance\soptimization\sfor\ssqlite3VdbeAddOp4().
-D 2016-12-07T20:09:51.583
+C The\suse\sP4_DYNAMIC\sin\splace\sof\sthe\sP4_MPRINTF\soperand\stype.
+D 2016-12-07T20:22:31.737
 F Makefile.in 7639c6a09da11a9c7c6f2630fc981ee588d1072d
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc b8ca53350ae545e3562403d5da2a69cec79308da
@@ -456,10 +456,10 @@ F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c
 F src/util.c e68e8ced7328f22d2cf7b4c898c394a0de34cdf1
 F src/vacuum.c 33c174b28886b2faf26e503b5a49a1c01a9b1c16
 F src/vdbe.c 3986f226945b14b98eb26bd589de3705223c95ad
-F src/vdbe.h c044be7050ac6bf596eecc6ab159f5dbc020a3b7
+F src/vdbe.h 1987921713ee2b948a79f0af192024065db095fb
 F src/vdbeInt.h 9b498d3cb52dc2efb53571fb8ae8e14cf298ce84
 F src/vdbeapi.c ea4e2dc2213cc6bd7bee375a29a9b51c31b93ae0
-F src/vdbeaux.c 3afb187a9239e49d999a0f077f7c138a2799d074
+F src/vdbeaux.c 8378658e15a82b20fa49718f9204d1286b4fbc26
 F src/vdbeblob.c f4f98ea672b242f807c08c92c7faaa79e5091b65
 F src/vdbemem.c 1af2f14ab0f7004b364933ddcfc767fb880d4742
 F src/vdbesort.c 91fda3909326860382b0ca8aa251e609c6a9d62c
@@ -471,7 +471,7 @@ F src/wal.h 06b2a0b599cc0f53ea97f497cf8c6b758c999f71
 F src/walker.c 91a6df7435827e41cff6bb7df50ea00934ee78b0
 F src/where.c 6bbf9284f4f15a6fa48663d033870cc0d7f5ee66
 F src/whereInt.h 2bcc3d176e6091cb8f50a30b65c006e88a73614d
-F src/wherecode.c 9a3b1034191c9ea8ac14a5405564402f8b1114b2
+F src/wherecode.c e04ac8f24c3ac8621df6c3be3ac8c7d4fa893745
 F src/whereexpr.c 87ecdf24beba4498e4380b31c4131febb0a6ceaa
 F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
 F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd
@@ -1536,7 +1536,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 24574a15a336ffcb961334f84b56e9ab98490a79
-R fe9a80abf2b1a7e9a5d7d152eff8a8fe
+P 04716c907bf9fc9b827e18fdc7b4e1069e201536
+R 5a971bdba4dcd12ecdc94b0ffc7d235f
 U drh
-Z 7f586b627685f0d65f8b0e7af7753ff2
+Z 9cd8827513cba2f6d012918afdfa6fc2
index 4c1a459fe2eceb9f178835734030c0bef0a59b3a..584cf3591551714a07e654dfc52603714b075119 100644 (file)
@@ -1 +1 @@
-04716c907bf9fc9b827e18fdc7b4e1069e201536
\ No newline at end of file
+3954f83798ed78527280c9db6360c62a5134b9ec
\ No newline at end of file
index ecb2b0e3f47bd373b8ed02e7fcd3484e9b422a14..6567a980f9036cbf7cdbfa43acf0d126a64d03dc 100644 (file)
@@ -110,22 +110,21 @@ typedef struct VdbeOpList VdbeOpList;
 #define P4_NOTUSED    0   /* The P4 parameter is not used */
 #define P4_DYNAMIC  (-1)  /* Pointer to a string obtained from sqliteMalloc() */
 #define P4_STATIC   (-2)  /* Pointer to a static string */
-#define P4_COLLSEQ  (-4)  /* P4 is a pointer to a CollSeq structure */
-#define P4_FUNCDEF  (-5)  /* P4 is a pointer to a FuncDef structure */
-#define P4_KEYINFO  (-6)  /* P4 is a pointer to a KeyInfo structure */
-#define P4_EXPR     (-7)  /* P4 is a pointer to an Expr tree */
-#define P4_MEM      (-8)  /* P4 is a pointer to a Mem*    structure */
+#define P4_COLLSEQ  (-3)  /* P4 is a pointer to a CollSeq structure */
+#define P4_FUNCDEF  (-4)  /* P4 is a pointer to a FuncDef structure */
+#define P4_KEYINFO  (-5)  /* P4 is a pointer to a KeyInfo structure */
+#define P4_EXPR     (-6)  /* P4 is a pointer to an Expr tree */
+#define P4_MEM      (-7)  /* P4 is a pointer to a Mem*    structure */
 #define P4_TRANSIENT  0   /* P4 is a pointer to a transient string */
-#define P4_VTAB     (-10) /* P4 is a pointer to an sqlite3_vtab structure */
-#define P4_MPRINTF  (-11) /* P4 is a string obtained from sqlite3_mprintf() */
-#define P4_REAL     (-12) /* P4 is a 64-bit floating point value */
-#define P4_INT64    (-13) /* P4 is a 64-bit signed integer */
-#define P4_INT32    (-14) /* P4 is a 32-bit signed integer */
-#define P4_INTARRAY (-15) /* P4 is a vector of 32-bit integers */
-#define P4_SUBPROGRAM  (-18) /* P4 is a pointer to a SubProgram structure */
-#define P4_ADVANCE  (-19) /* P4 is a pointer to BtreeNext() or BtreePrev() */
-#define P4_TABLE    (-20) /* P4 is a pointer to a Table structure */
-#define P4_FUNCCTX  (-21) /* P4 is a pointer to an sqlite3_context object */
+#define P4_VTAB     (-8) /* P4 is a pointer to an sqlite3_vtab structure */
+#define P4_REAL     (-9) /* P4 is a 64-bit floating point value */
+#define P4_INT64    (-10) /* P4 is a 64-bit signed integer */
+#define P4_INT32    (-11) /* P4 is a 32-bit signed integer */
+#define P4_INTARRAY (-12) /* P4 is a vector of 32-bit integers */
+#define P4_SUBPROGRAM  (-13) /* P4 is a pointer to a SubProgram structure */
+#define P4_ADVANCE  (-14) /* P4 is a pointer to BtreeNext() or BtreePrev() */
+#define P4_TABLE    (-15) /* P4 is a pointer to a Table structure */
+#define P4_FUNCCTX  (-16) /* P4 is a pointer to an sqlite3_context object */
 
 /* Error message codes for OP_Halt */
 #define P5_ConstraintNotNull 1
index 04dc9599f5047c26ff76b19023c8ab29e753a569..01430c613661a7f1b4de6f1ca099a08d1a82b9ad 100644 (file)
@@ -828,10 +828,6 @@ static void freeP4(sqlite3 *db, int p4type, void *p4){
       break;
     }
 #endif
-    case P4_MPRINTF: {
-      if( db->pnBytesFreed==0 ) sqlite3_free(p4);
-      break;
-    }
     case P4_FUNCDEF: {
       freeEphemeralFunction(db, (FuncDef*)p4);
       break;
index 00c50b1ec77cf4257139b16b052be8ed32ffd0b1..032c56fef3c43b7d78bc0c466efd1f4fdd8a4ddc 100644 (file)
@@ -1142,7 +1142,7 @@ Bitmask sqlite3WhereCodeOneLoopStart(
     sqlite3VdbeAddOp2(v, OP_Integer, nConstraint, iReg+1);
     sqlite3VdbeAddOp4(v, OP_VFilter, iCur, addrNotFound, iReg,
                       pLoop->u.vtab.idxStr,
-                      pLoop->u.vtab.needFree ? P4_MPRINTF : P4_STATIC);
+                      pLoop->u.vtab.needFree ? P4_DYNAMIC : P4_STATIC);
     VdbeCoverage(v);
     pLoop->u.vtab.needFree = 0;
     pLevel->p1 = iCur;