From 6f58f7069ba7c2cb5844893ad4a511524261e7ef Mon Sep 17 00:00:00 2001 From: drh Date: Sun, 8 Jan 2006 05:26:41 +0000 Subject: [PATCH] Remove some cruft from the VDBE. Bring comments up to date. (CVS 2888) FossilOrigin-Name: 41aef6496a10c81e1095408dc8f69740d6ea7627 --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/vdbe.c | 33 ++++++++++++++++++--------------- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/manifest b/manifest index 27a9c4b508..49cdf3cf7a 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Reduce\smemory\srequirements\sfor\sORDER\sBY\scombined\swith\sLIMIT.\s\sTicket\s#1586.\s(CVS\s2887) -D 2006-01-08T05:02:55 +C Remove\ssome\scruft\sfrom\sthe\sVDBE.\s\sBring\scomments\sup\sto\sdate.\s(CVS\s2888) +D 2006-01-08T05:26:41 F Makefile.in c79fbdaa264c6afcd435f2fb492551de5a8cf80d F Makefile.linux-gcc aee18d8a05546dcf1888bd4547e442008a49a092 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 @@ -84,7 +84,7 @@ F src/update.c 29ba0385c8639803cd8e6e616e99096a0bc10443 F src/utf.c b7bffac4260177ae7f83c01d025fe0f5ed70ce71 F src/util.c 8a3ef3c1b345cdadcee33ce4537c63bb0fda0ed8 F src/vacuum.c a7301804d4f849da0ce9d869219c71c6d621c34e -F src/vdbe.c 87a796e2889283b681be71076fa6b6318561f2bd +F src/vdbe.c 21a1cb8500e5482aa4b670ce4788b7474d3b8bb7 F src/vdbe.h 8729a4ee16ff9aeab2af9667df3cf300ff978e13 F src/vdbeInt.h 5451cf71f229e366ac543607c0a17f36e5737ea9 F src/vdbeapi.c 7335569b1bad946ba53892384b4b1534e877b1ee @@ -335,7 +335,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513 -P 0ae461313c1642a49a9f6cda608c42c7c0053ce4 -R 79c569a066edb0857c89ee545cff9b3e +P 55e703ecac6e03d7364c2d919ba18d7293d6b7f6 +R b966bf179439ff438aedbc30041f68e4 U drh -Z e2eb2297d27afb66b9b69713714cfa42 +Z 3ef314255d1b0a31cdba3fda0e06ec3c diff --git a/manifest.uuid b/manifest.uuid index dd1dcb56b2..51c273ef38 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -55e703ecac6e03d7364c2d919ba18d7293d6b7f6 \ No newline at end of file +41aef6496a10c81e1095408dc8f69740d6ea7627 \ No newline at end of file diff --git a/src/vdbe.c b/src/vdbe.c index fd1d942226..22e9393534 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -43,7 +43,7 @@ ** in this file for details. If in doubt, do not deviate from existing ** commenting and indentation practices when changing or adding code. ** -** $Id: vdbe.c,v 1.516 2006/01/07 18:48:26 drh Exp $ +** $Id: vdbe.c,v 1.517 2006/01/08 05:26:41 drh Exp $ */ #include "sqliteInt.h" #include "os.h" @@ -4277,14 +4277,12 @@ case OP_MemMax: { /* no-push */ } #endif /* SQLITE_OMIT_AUTOINCREMENT */ -/* Opcode: MemIncr P1 P2 * +/* Opcode: MemIncr P1 * * ** -** Increment the integer valued memory cell P1 by 1. If P2 is not zero -** and the result after the increment is exactly 0, then jump -** to P2. +** Increment the integer valued memory cell P1 by 1. ** -** This instruction throws an error if the memory cell is not initially -** an integer. +** It is illegal to use this instruction on a memory cell that does +** not contain an integer. An assertion fault will result if you try. */ case OP_MemIncr: { /* no-push */ int i = pOp->p1; @@ -4293,24 +4291,25 @@ case OP_MemIncr: { /* no-push */ pMem = &p->aMem[i]; assert( pMem->flags==MEM_Int ); pMem->i++; - if( pOp->p2>0 && pMem->i==0 ){ - pc = pOp->p2 - 1; - } + assert( pOp->p2==0 ); break; } /* Opcode: IfMemPos P1 P2 * ** ** If the value of memory cell P1 is 1 or greater, jump to P2. If -** the memory cell holds an integer of 0 or less or if it holds something -** that is not an integer, then fall thru. +** the memory cell holds an integer of 0 or less. +** +** It is illegal to use this instruction on a memory cell that does +** not contain an integer. An assertion fault will result if you try. */ case OP_IfMemPos: { /* no-push */ int i = pOp->p1; Mem *pMem; assert( i>=0 && inMem ); pMem = &p->aMem[i]; - if( pMem->flags==MEM_Int && pMem->i>0 ){ + assert( pMem->flags==MEM_Int ); + if( pMem->i>0 ){ pc = pOp->p2 - 1; } break; @@ -4318,14 +4317,18 @@ case OP_IfMemPos: { /* no-push */ /* Opcode: IfMemZero P1 P2 * ** -** If the value of memory cell P1 is exactly 0, jump to P2. +** If the value of memory cell P1 is exactly 0, jump to P2. +** +** It is illegal to use this instruction on a memory cell that does +** not contain an integer. An assertion fault will result if you try. */ case OP_IfMemZero: { /* no-push */ int i = pOp->p1; Mem *pMem; assert( i>=0 && inMem ); pMem = &p->aMem[i]; - if( pMem->flags==MEM_Int && pMem->i==0 ){ + assert( pMem->flags==MEM_Int ); + if( pMem->i==0 ){ pc = pOp->p2 - 1; } break;