/ Check-in [5990a1bd]
Login

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

Overview
Comment:Slight size reduction and performance increase in sqlite3VdbeHalt().
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:5990a1bdb4a0734ff23015ada71cf02d0cb1381f
User & Date: drh 2016-09-15 00:32:42
References
2016-09-18
16:08
Revise the implementation of OP_Once so that it is smaller, faster, and uses less memory. This also fixes an obscure bug introduced 3 days ago by check-in [5990a1bdb4a073]. check-in: 6bf5ba10 user: drh tags: trunk
Context
2016-09-15
05:47
Fix a typo in a comment in sqlite.h.in. No changes to code. check-in: 12df7152 user: dan tags: trunk
00:32
Slight size reduction and performance increase in sqlite3VdbeHalt(). check-in: 5990a1bd user: drh tags: trunk
00:04
Optimization to vdbeRecordCompareInt() makes it slightly smaller and faster. check-in: 5a2a7712 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/vdbeaux.c.

2565
2566
2567
2568
2569
2570
2571

2572
2573


2574
2575
2576
2577
2578
2579
2580
2581
2582
  **     SQLITE_INTERRUPT
  **
  ** Then the internal cache might have been left in an inconsistent
  ** state.  We need to rollback the statement transaction, if there is
  ** one, or the complete transaction if there is no statement transaction.
  */


  if( db->mallocFailed ){
    p->rc = SQLITE_NOMEM_BKPT;


  }
  if( p->aOnceFlag ) memset(p->aOnceFlag, 0, p->nOnceFlag);
  closeAllCursors(p);
  if( p->magic!=VDBE_MAGIC_RUN ){
    return SQLITE_OK;
  }
  checkActiveVdbeCnt(db);

  /* No commit or rollback needed if the program never started or if the







>


>
>

<







2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577

2578
2579
2580
2581
2582
2583
2584
  **     SQLITE_INTERRUPT
  **
  ** Then the internal cache might have been left in an inconsistent
  ** state.  We need to rollback the statement transaction, if there is
  ** one, or the complete transaction if there is no statement transaction.
  */

  assert( p->aOnceFlag!=0 || db->mallocFailed );
  if( db->mallocFailed ){
    p->rc = SQLITE_NOMEM_BKPT;
  }else{
    memset(p->aOnceFlag, 0, p->nOnceFlag);
  }

  closeAllCursors(p);
  if( p->magic!=VDBE_MAGIC_RUN ){
    return SQLITE_OK;
  }
  checkActiveVdbeCnt(db);

  /* No commit or rollback needed if the program never started or if the