]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Avoid unnecessary function prologues in the sqlite3VdbeAddOp3() routine.
authordrh <drh@noemail.net>
Mon, 9 Nov 2015 12:33:39 +0000 (12:33 +0000)
committerdrh <drh@noemail.net>
Mon, 9 Nov 2015 12:33:39 +0000 (12:33 +0000)
FossilOrigin-Name: 7c6a19ba9b0bdb1cc0b9a9796b7c1c114944d927

manifest
manifest.uuid
src/vdbeaux.c

index f46bfb52599e66128c6c862f1015e9969ef03e2f..cd829a2bee3fb3bd26a516c8fba58fe0957f7b88 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Small\ssize\sreduction\sand\sperformance\sincrease\sin\sthe\sparser.
-D 2015-11-09T02:08:09.483
+C Avoid\sunnecessary\sfunction\sprologues\sin\sthe\ssqlite3VdbeAddOp3()\sroutine.
+D 2015-11-09T12:33:39.340
 F Makefile.in 3a705bb4bd12e194212ddbdbf068310d17153cdb
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 702d3e98f3afc6587a78481257f3c4c900efc3a4
@@ -407,7 +407,7 @@ F src/vdbe.c 7a9b18027414368d800716e6319e2acd699c70db
 F src/vdbe.h efb7a8c1459e31f3ea4377824c6a7e4cb5068637
 F src/vdbeInt.h 33403622c6a8feaaac5f0f3f17f5d1bf6df42286
 F src/vdbeapi.c 020681b943e77766b32ae1cddf86d7831b7374ca
-F src/vdbeaux.c 6d55530b05b69bc663c87d2d258318dcdf042644
+F src/vdbeaux.c da9eddc62e025148e30267600a6fe3882d5e912f
 F src/vdbeblob.c 565fabd302f5fca3bdf3d56cac330483616a39b6
 F src/vdbemem.c fdd1578e47bea61390d472de53c565781d81e045
 F src/vdbesort.c 8b23930a1289526f6d2a3a9f2e965bcc963e4a68
@@ -1401,7 +1401,7 @@ F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 7ea036ac37397ed8f6a0fa9f5bfc0994364b53dc
-R 3231bc9f57ce7558e058f50c744abb1e
+P d62cd757a69cc49c2d309e27c948610b5868632f
+R a904c99753c26b60df840fbeb9147fea
 U drh
-Z db3ec02e9e575bd3c4a05b8f4b24bc15
+Z 04359d40d10a11f87d61acdb694f52aa
index cf6442cb11c9601cdc95ce3d71af7a272efdc055..d3a3f51b6e36473919750683b7ac9aa71f6924d1 100644 (file)
@@ -1 +1 @@
-d62cd757a69cc49c2d309e27c948610b5868632f
\ No newline at end of file
+7c6a19ba9b0bdb1cc0b9a9796b7c1c114944d927
\ No newline at end of file
index 83a9047dc76f36df8303d776143cf0a8f7f742d1..a5bc0b71a25ccbb038185519906c3b010a93e240 100644 (file)
@@ -157,6 +157,12 @@ static void test_addop_breakpoint(void){
 ** the sqlite3VdbeChangeP4() function to change the value of the P4
 ** operand.
 */
+static SQLITE_NOINLINE int growOp3(Vdbe *p, int op, int p1, int p2, int p3){
+  assert( p->pParse->nOpAlloc<=p->nOp );
+  if( growOpArray(p, 1) ) return 1;
+  assert( p->pParse->nOpAlloc>p->nOp );
+  return sqlite3VdbeAddOp3(p, op, p1, p2, p3);
+}
 int sqlite3VdbeAddOp3(Vdbe *p, int op, int p1, int p2, int p3){
   int i;
   VdbeOp *pOp;
@@ -165,9 +171,7 @@ int sqlite3VdbeAddOp3(Vdbe *p, int op, int p1, int p2, int p3){
   assert( p->magic==VDBE_MAGIC_INIT );
   assert( op>0 && op<0xff );
   if( p->pParse->nOpAlloc<=i ){
-    if( growOpArray(p, 1) ){
-      return 1;
-    }
+    return growOp3(p, op, p1, p2, p3);
   }
   p->nOp++;
   pOp = &p->aOp[i];