diff options
author | drh <drh@noemail.net> | 2015-08-19 12:45:57 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2015-08-19 12:45:57 +0000 |
commit | 0e07f6ae402bf01a0db96910cdf3ca8e3492553c (patch) | |
tree | 456d89067f8b03de0be63eb56841f6ad03552d52 /src | |
parent | 5ef2b281aa6fed9a45b8bbe20a5f26c9a03cc677 (diff) | |
download | sqlite-0e07f6ae402bf01a0db96910cdf3ca8e3492553c.tar.gz sqlite-0e07f6ae402bf01a0db96910cdf3ca8e3492553c.zip |
Simplification to error handling in addModuleArgument() in the virtual table
processing.
FossilOrigin-Name: c573b0a1aa3ba509234f07520fa94d008bcbb330
Diffstat (limited to 'src')
-rw-r--r-- | src/vtab.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/vtab.c b/src/vtab.c index 2ae861e67..d639e4f06 100644 --- a/src/vtab.c +++ b/src/vtab.c @@ -285,23 +285,17 @@ void sqlite3VtabClear(sqlite3 *db, Table *p){ ** deleted. */ static void addModuleArgument(sqlite3 *db, Table *pTable, char *zArg){ - int i = pTable->nModuleArg++; - int nBytes = sizeof(char *)*(1+pTable->nModuleArg); + int nBytes = sizeof(char *)*(2+pTable->nModuleArg); char **azModuleArg; azModuleArg = sqlite3DbRealloc(db, pTable->azModuleArg, nBytes); if( azModuleArg==0 ){ - int j; - for(j=0; j<i; j++){ - sqlite3DbFree(db, pTable->azModuleArg[j]); - } sqlite3DbFree(db, zArg); - sqlite3DbFree(db, pTable->azModuleArg); - pTable->nModuleArg = 0; }else{ + int i = pTable->nModuleArg++; azModuleArg[i] = zArg; azModuleArg[i+1] = 0; + pTable->azModuleArg = azModuleArg; } - pTable->azModuleArg = azModuleArg; } /* |