diff options
author | drh <drh@noemail.net> | 2006-01-12 12:43:36 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2006-01-12 12:43:36 +0000 |
commit | 4b494d65a75a3f6cc8f8998bb34d54f060b3ab93 (patch) | |
tree | 1f06752ac6f58f8491ce6196821e905e797e5858 /src/tokenize.c | |
parent | f06c59a3e576b397cf75294b7bfef70d44c30005 (diff) | |
download | sqlite-4b494d65a75a3f6cc8f8998bb34d54f060b3ab93.tar.gz sqlite-4b494d65a75a3f6cc8f8998bb34d54f060b3ab93.zip |
About a 2.5% speed improvement by reducing the number of sqlite3ThreadData
calls in the parser. (CVS 2924)
FossilOrigin-Name: 0caa1994770142d6ca15284a26bad3879b07b15a
Diffstat (limited to 'src/tokenize.c')
-rw-r--r-- | src/tokenize.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/tokenize.c b/src/tokenize.c index ec2efbe78..86e526a9e 100644 --- a/src/tokenize.c +++ b/src/tokenize.c @@ -15,7 +15,7 @@ ** individual tokens and sends those tokens one-by-one over to the ** parser for analysis. ** -** $Id: tokenize.c,v 1.113 2006/01/11 21:41:22 drh Exp $ +** $Id: tokenize.c,v 1.114 2006/01/12 12:43:36 drh Exp $ */ #include "sqliteInt.h" #include "os.h" @@ -339,6 +339,7 @@ int sqlite3RunParser(Parse *pParse, const char *zSql, char **pzErrMsg){ int tokenType; int lastTokenParsed = -1; sqlite3 *db = pParse->db; + ThreadData *pTsd = pParse->pTsd; extern void *sqlite3ParserAlloc(void*(*)(int)); extern void sqlite3ParserFree(void*, void(*)(void*)); extern int sqlite3Parser(void*, int, Token, Parse*); @@ -358,7 +359,7 @@ int sqlite3RunParser(Parse *pParse, const char *zSql, char **pzErrMsg){ assert( pParse->nVarExprAlloc==0 ); assert( pParse->apVarExpr==0 ); pParse->zTail = pParse->zSql = zSql; - while( sqlite3ThreadDataReadOnly()->mallocFailed==0 && zSql[i]!=0 ){ + while( pTsd->mallocFailed==0 && zSql[i]!=0 ){ assert( i>=0 ); pParse->sLastToken.z = (u8*)&zSql[i]; assert( pParse->sLastToken.dyn==0 ); @@ -406,7 +407,7 @@ abort_parse: sqlite3Parser(pEngine, 0, pParse->sLastToken, pParse); } sqlite3ParserFree(pEngine, sqlite3FreeX); - if( sqlite3ThreadDataReadOnly()->mallocFailed ){ + if( pTsd->mallocFailed ){ pParse->rc = SQLITE_NOMEM; } if( pParse->rc!=SQLITE_OK && pParse->rc!=SQLITE_DONE && pParse->zErrMsg==0 ){ |