-C Add\sa\scomment\sto\shelp\sclarify\sthe\sEP_FromJoin\shack\sin\sexprCodeBetween().
-D 2016-11-25T14:30:42.666
+C Performance\simprovement\sin\ssqlite3StrAccumFinish()\sfor\sthe\scommon\scase\swhere\nno\smemory\sallocation\sis\srequired.
+D 2016-11-25T15:11:26.619
F Makefile.in 6b572807415d3f0a379cebc9461416d8df4a12c8
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc bb4d970894abbbe0e88d00aac29bd52af8bc95f4
F src/pragma.c d932ba278654617cdd281f88a790a3185fca7c44
F src/pragma.h 64c78a648751b9f4f297276c4eb7507b14b4628c
F src/prepare.c b1140c3d0cf59bc85ace00ce363153041b424b7a
-F src/printf.c a5f0ca08ddede803c241266abb46356ec748ded1
+F src/printf.c 8a76e8e9b44a282bd78f5a4113e4dec233c3dfff
F src/random.c ba2679f80ec82c4190062d756f22d0c358180696
F src/resolve.c bb070cf5f23611c44ab7e4788803684e385fc3fb
F src/rowset.c 7b7e7e479212e65b723bf40128c7b36dc5afdfac
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 9a603a18ef626b7d7a24b82eb961d6d8b4926195
-R ef9f01036377c9e5a69b01dd8a74832e
+P 6df7c5747e0247b14bf015ef4320ddcf6fccf694
+R 52321675b69054515968315ac6e47ed5
U drh
-Z 1cc8fc31dc9cfa12819270a952431b2f
+Z 9d212a5ec3719e9483eacdb11891359b
** Return a pointer to the resulting string. Return a NULL
** pointer if any kind of error was encountered.
*/
+static SQLITE_NOINLINE char *strAccumFinishRealloc(StrAccum *p){
+ assert( p->mxAlloc>0 && !isMalloced(p) );
+ p->zText = sqlite3DbMallocRaw(p->db, p->nChar+1 );
+ if( p->zText ){
+ memcpy(p->zText, p->zBase, p->nChar+1);
+ p->printfFlags |= SQLITE_PRINTF_MALLOCED;
+ }else{
+ setStrAccumError(p, STRACCUM_NOMEM);
+ }
+ return p->zText;
+}
char *sqlite3StrAccumFinish(StrAccum *p){
if( p->zText ){
assert( (p->zText==p->zBase)==!isMalloced(p) );
p->zText[p->nChar] = 0;
if( p->mxAlloc>0 && !isMalloced(p) ){
- p->zText = sqlite3DbMallocRaw(p->db, p->nChar+1 );
- if( p->zText ){
- memcpy(p->zText, p->zBase, p->nChar+1);
- p->printfFlags |= SQLITE_PRINTF_MALLOCED;
- }else{
- setStrAccumError(p, STRACCUM_NOMEM);
- }
+ return strAccumFinishRealloc(p);
}
}
return p->zText;