diff options
author | dan <dan@noemail.net> | 2011-01-21 18:25:29 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2011-01-21 18:25:29 +0000 |
commit | a9ef7097c718a7685b42faa6033d9b04aeb8ee21 (patch) | |
tree | afd6919a47123fb3aa779acecd0c6f7586aeb406 /src | |
parent | f3aef49cbd4900f728dd4bed67faf859372e0262 (diff) | |
download | sqlite-a9ef7097c718a7685b42faa6033d9b04aeb8ee21.tar.gz sqlite-a9ef7097c718a7685b42faa6033d9b04aeb8ee21.zip |
Change sqlite3StrAccumAppend() to use realloc instead of malloc.
FossilOrigin-Name: 380f61df0754ceec6b3f6a758d04e951cce8c3d9
Diffstat (limited to 'src')
-rw-r--r-- | src/printf.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/printf.c b/src/printf.c index 755355de0..c88bb3000 100644 --- a/src/printf.c +++ b/src/printf.c @@ -763,6 +763,7 @@ void sqlite3StrAccumAppend(StrAccum *p, const char *z, int N){ return; } }else{ + char *zOld = (p->zText==p->zBase ? 0 : p->zText); i64 szNew = p->nChar; szNew += N + 1; if( szNew > p->mxAlloc ){ @@ -773,13 +774,12 @@ void sqlite3StrAccumAppend(StrAccum *p, const char *z, int N){ p->nAlloc = (int)szNew; } if( p->useMalloc==1 ){ - zNew = sqlite3DbMallocRaw(p->db, p->nAlloc ); + zNew = sqlite3DbRealloc(p->db, zOld, p->nAlloc); }else{ - zNew = sqlite3_malloc(p->nAlloc); + zNew = sqlite3_realloc(zOld, p->nAlloc); } if( zNew ){ - memcpy(zNew, p->zText, p->nChar); - sqlite3StrAccumReset(p); + if( zOld==0 ) memcpy(zNew, p->zText, p->nChar); p->zText = zNew; }else{ p->mallocFailed = 1; |