/ Check-in [c8000e94]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Declare the Lemon-generated parser object as itself. (Duh)
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: c8000e94cca59dabf83d6cb75b40441aaf793d29880582dc4baa17246449b5fe
User & Date: drh 2017-03-30 17:13:37
Context
2017-04-01
00:20
Save a 78 bytes of code space and a million CPU cycles in speedtest1 by storing the cell index for the leaf page in the BtCursor object in its own field (BtCursor.ix), rather than as an entry in the BtCursor.aiIdx array. check-in: 2452f061 user: drh tags: trunk
2017-03-31
11:20
Merge latest trunk into this branch. check-in: cb721d0b user: dan tags: schemalint
2017-03-30
17:13
Declare the Lemon-generated parser object as itself. (Duh) check-in: c8000e94 user: drh tags: trunk
16:51
Increase the version number for the next development cycle. check-in: 9e550ccc user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/tokenize.c.

   478    478     void *pEngine;                  /* The LEMON-generated LALR(1) parser */
   479    479     int n = 0;                      /* Length of the next token token */
   480    480     int tokenType;                  /* type of the next token */
   481    481     int lastTokenParsed = -1;       /* type of the previous token */
   482    482     sqlite3 *db = pParse->db;       /* The database connection */
   483    483     int mxSqlLen;                   /* Max length of an SQL string */
   484    484   #ifdef sqlite3Parser_ENGINEALWAYSONSTACK
   485         -  /* Space to hold the Lemon-generated Parser object */
   486         -  sqlite3_uint64 zSpace[(sizeof(yyParser)+7)/sizeof(sqlite_uint64)];
          485  +  yyParser sEngine;    /* Space to hold the Lemon-generated Parser object */
   487    486   #endif
   488    487   
   489    488     assert( zSql!=0 );
   490    489     mxSqlLen = db->aLimit[SQLITE_LIMIT_SQL_LENGTH];
   491    490     if( db->nVdbeActive==0 ){
   492    491       db->u1.isInterrupted = 0;
   493    492     }
   494    493     pParse->rc = SQLITE_OK;
   495    494     pParse->zTail = zSql;
   496    495     assert( pzErrMsg!=0 );
   497    496     /* sqlite3ParserTrace(stdout, "parser: "); */
   498    497   #ifdef sqlite3Parser_ENGINEALWAYSONSTACK
   499         -  pEngine = zSpace;
          498  +  pEngine = &sEngine;
   500    499     sqlite3ParserInit(pEngine);
   501    500   #else
   502    501     pEngine = sqlite3ParserAlloc(sqlite3Malloc);
   503    502     if( pEngine==0 ){
   504    503       sqlite3OomFault(db);
   505    504       return SQLITE_NOMEM_BKPT;
   506    505     }