aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordan <dan@noemail.net>2011-01-21 18:25:29 +0000
committerdan <dan@noemail.net>2011-01-21 18:25:29 +0000
commita9ef7097c718a7685b42faa6033d9b04aeb8ee21 (patch)
treeafd6919a47123fb3aa779acecd0c6f7586aeb406 /src
parentf3aef49cbd4900f728dd4bed67faf859372e0262 (diff)
downloadsqlite-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.c8
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;