/ Check-in [8415d484]
Login

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

Overview
Comment:Instead of just commenting out the unneeded code in the previous check-in, remove it completely.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 8415d4848ab36ca33b23d1fad6b063544de04a3b
User & Date: drh 2016-04-07 14:05:20
Context
2016-04-07
14:16
Avoid decrementing a pointer off the front end of the buffer in OP_MakeRecord. check-in: 153135bf user: drh tags: trunk
14:05
Instead of just commenting out the unneeded code in the previous check-in, remove it completely. check-in: 8415d484 user: drh tags: trunk
14:01
Remove an unnecessary test for a NULL pointer in freeP4(). check-in: e84e88e3 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Show Whitespace Changes Patch

Changes to src/vdbeaux.c.

787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
...
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849

static void vdbeFreeOpArray(sqlite3 *, Op *, int);

/*
** Delete a P4 value if necessary.
*/
static void freeP4(sqlite3 *db, int p4type, void *p4){
  /*if( p4 )*/{
    assert( db );
    switch( p4type ){
      case P4_FUNCCTX: {
        freeEphemeralFunction(db, ((sqlite3_context*)p4)->pFunc);
        /* Fall through into the next case */
      }
      case P4_REAL:
................................................................................
      }
      case P4_VTAB : {
        if( db->pnBytesFreed==0 ) sqlite3VtabUnlock((VTable *)p4);
        break;
      }
    }
  }
}

/*
** Free the space allocated for aOp and any p4 values allocated for the
** opcodes contained within. If aOp is not NULL it is assumed to contain 
** nOp entries. 
*/
static void vdbeFreeOpArray(sqlite3 *db, Op *aOp, int nOp){







<







 







<







787
788
789
790
791
792
793

794
795
796
797
798
799
800
...
834
835
836
837
838
839
840

841
842
843
844
845
846
847

static void vdbeFreeOpArray(sqlite3 *, Op *, int);

/*
** Delete a P4 value if necessary.
*/
static void freeP4(sqlite3 *db, int p4type, void *p4){

  assert( db );
  switch( p4type ){
    case P4_FUNCCTX: {
      freeEphemeralFunction(db, ((sqlite3_context*)p4)->pFunc);
      /* Fall through into the next case */
    }
    case P4_REAL:
................................................................................
    }
    case P4_VTAB : {
      if( db->pnBytesFreed==0 ) sqlite3VtabUnlock((VTable *)p4);
      break;
    }
  }
}


/*
** Free the space allocated for aOp and any p4 values allocated for the
** opcodes contained within. If aOp is not NULL it is assumed to contain 
** nOp entries. 
*/
static void vdbeFreeOpArray(sqlite3 *db, Op *aOp, int nOp){