-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
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
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
** 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"
}
#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;
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 && i<p->nMem );
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;
/* 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 && i<p->nMem );
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;