]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Avoid unnecessary calls to sqlite3VdbeSerialType() from within
authordrh <drh@noemail.net>
Tue, 10 Dec 2013 21:38:08 +0000 (21:38 +0000)
committerdrh <drh@noemail.net>
Tue, 10 Dec 2013 21:38:08 +0000 (21:38 +0000)
sqlite3VdbeSerialPut().

FossilOrigin-Name: 079c04a5013074b68f7d90f1ce8bf8e7092ad8a2

manifest
manifest.uuid
src/vdbe.c
src/vdbeInt.h
src/vdbeaux.c
src/vdbemem.c

index 28544906b39bcd466a5430806be123bdf5441022..73f5c3738bc972fe8a820a1333d615f0f830ebfe 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C In\sthe\sOP_MakeRecord\sopcode,\sfactor\sout\saffinity\schanges\sinto\sseparate\sloop,\nfor\sa\sslight\sperformance\sadvantage.
-D 2013-12-10T20:53:01.865
+C Avoid\sunnecessary\scalls\sto\ssqlite3VdbeSerialType()\sfrom\swithin\nsqlite3VdbeSerialPut().
+D 2013-12-10T21:38:08.728
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in e1a9b4258bbde53f5636f4e238c65b7e11459e2b
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -280,13 +280,13 @@ F src/update.c d1c2477dcf14d90999d1935af4efb4806553250b
 F src/utf.c 6fc6c88d50448c469c5c196acf21617a24f90269
 F src/util.c 76ed0519296e3f62e97e57dab1999e34184c8e49
 F src/vacuum.c 3728d74919d4fb1356f9e9a13e27773db60b7179
-F src/vdbe.c c5b17309048f28ff79e0b65aeb72d365a3a415a1
+F src/vdbe.c 02fac31f3921b0238d0ca72c90db31eb0c91e358
 F src/vdbe.h c06f0813f853566457ce9cfb1a4a4bc39a5da644
-F src/vdbeInt.h 7e38eef8f4bd7141e1638b0eacaebf9bc41b26bc
+F src/vdbeInt.h e103e9223787cb11e0de48cefb1cdb9fef18e2e8
 F src/vdbeapi.c 93a22a9ba2abe292d5c2cf304d7eb2e894dde0ed
-F src/vdbeaux.c d64bc2a057e77aef3e2a4bc6670b80f516a36d55
+F src/vdbeaux.c a66fde9e0ecf1d8b7fe60162d28bb6b95f2f6c30
 F src/vdbeblob.c 8cd05a5630e6d5563ad017bf82edaf812b28acde
-F src/vdbemem.c a381254caef0d102b091923a309c4c3a06a65393
+F src/vdbemem.c dedc9ee05a9d5f7c4913ee623db8d41bdb24363f
 F src/vdbesort.c 9d83601f9d6243fe70dd0169a2820c5ddfd48147
 F src/vdbetrace.c e7ec40e1999ff3c6414424365d5941178966dcbc
 F src/vtab.c 21b932841e51ebd7d075e2d0ad1415dce8d2d5fd
@@ -1146,7 +1146,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
 F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
-P 48ecf18774ba9572d86696c60d87007a619d9f53
-R 8c35d8f315102eab592f6f641be2ff5b
+P 1c6ee9b85f61e5cdb5d9b7815cddf526dc78aaa7
+R 362b67923e10115892fb8388984a2dc3
 U drh
-Z ddd4b5e4f3e2f25b93fe4a6cd498d64a
+Z 43fa988f600d23d399ec0be485c6471b
index 6ce25cfed9b6d2aaeef9c57661e8447559eb5550..f11bb639e2f44984731c64b3e1b456ded9ea7081 100644 (file)
@@ -1 +1 @@
-1c6ee9b85f61e5cdb5d9b7815cddf526dc78aaa7
\ No newline at end of file
+079c04a5013074b68f7d90f1ce8bf8e7092ad8a2
\ No newline at end of file
index 37851802ce864e4a585226163332c68cdad57fe6..75680484920228ca0d09aa3bc48fb347045a6436 100644 (file)
@@ -2662,7 +2662,7 @@ case OP_MakeRecord: {
   do{
     serial_type = sqlite3VdbeSerialType(pRec, file_format);
     i += putVarint32(&zNewRecord[i], serial_type);            /* serial type */
-    j += sqlite3VdbeSerialPut(&zNewRecord[j], pRec, file_format); /* content */
+    j += sqlite3VdbeSerialPut(&zNewRecord[j], pRec, serial_type, file_format);
   }while( (++pRec)<=pLast );
   assert( i==nHdr );
   assert( j==nByte );
index b01af201880295c9829f2a3e64b626af8bed022c..e493e5b85e975a4ab86f468e7af3a2f49a590382 100644 (file)
@@ -389,7 +389,7 @@ void sqlite3VdbePrintOp(FILE*, int, Op*);
 #endif
 u32 sqlite3VdbeSerialTypeLen(u32);
 u32 sqlite3VdbeSerialType(Mem*, int);
-u32 sqlite3VdbeSerialPut(unsigned char*, Mem*, int);
+u32 sqlite3VdbeSerialPut(unsigned char*, Mem*, u32, int);
 u32 sqlite3VdbeSerialGet(const unsigned char*, u32, Mem*);
 void sqlite3VdbeDeleteAuxData(Vdbe*, int, int);
 
index c610de456298ba99e0ca80b38ddfc6754ec4c272..a41b222950dd6eeb58fe8d63684cad62441fee9a 100644 (file)
@@ -2835,8 +2835,7 @@ static u64 floatSwap(u64 in){
 ** of bytes in the zero-filled tail is included in the return value only
 ** if those bytes were zeroed in buf[].
 */ 
-u32 sqlite3VdbeSerialPut(u8 *buf, Mem *pMem, int file_format){
-  u32 serial_type = sqlite3VdbeSerialType(pMem, file_format);
+u32 sqlite3VdbeSerialPut(u8 *buf, Mem *pMem, u32 serial_type, int file_format){
   u32 len;
 
   /* Integer and Real */
index 6a0a66ead28e49a328fbd8760de77b99266a058d..1d0feb621692f0f1f9ab9f68dfd1635e2eec0bf2 100644 (file)
@@ -1219,7 +1219,7 @@ static void recordFunc(
   }else{
     aRet[0] = nSerial+1;
     sqlite3PutVarint(&aRet[1], iSerial);
-    sqlite3VdbeSerialPut(&aRet[1+nSerial], argv[0], file_format);
+    sqlite3VdbeSerialPut(&aRet[1+nSerial], argv[0], iSerial, file_format);
     sqlite3_result_blob(context, aRet, nRet, SQLITE_TRANSIENT);
     sqlite3DbFree(db, aRet);
   }