:-) (CVS 56)

FossilOrigin-Name: b52dd82fe32c38c999aef4f07d046d0428336965
diff --git a/src/expr.c b/src/expr.c
index 1b3e852..857d727 100644
--- a/src/expr.c
+++ b/src/expr.c
@@ -23,7 +23,7 @@
 *************************************************************************
 ** This file contains C code routines used for processing expressions
 **
-** $Id: expr.c,v 1.7 2000/06/06 01:50:43 drh Exp $
+** $Id: expr.c,v 1.8 2000/06/06 03:31:22 drh Exp $
 */
 #include "sqliteInt.h"
 
@@ -179,6 +179,9 @@
         v = pParse->pVdbe = sqliteVdbeCreate(pParse->db->pBe);
       }
       if( v==0 ) return 1;
+      if( sqliteExprResolveIds(pParse, pTabList, pExpr->pLeft) ){
+        return 1;
+      }
       if( pExpr->pSelect ){
         /* Case 1:     expr IN (SELECT ...)
         **
@@ -228,6 +231,7 @@
           }
         }
       }
+      break;
     }
 
     case TK_SELECT: {
@@ -589,6 +593,7 @@
       break;
     }
     case TK_IN: {
+      sqliteExprCode(pParse, pExpr->pLeft);
       if( pExpr->pSelect ){
         sqliteVdbeAddOp(v, OP_Found, pExpr->iTable, dest, 0, 0);
       }else{
@@ -679,6 +684,7 @@
       break;
     }
     case TK_IN: {
+      sqliteExprCode(pParse, pExpr->pLeft);
       if( pExpr->pSelect ){
         sqliteVdbeAddOp(v, OP_NotFound, pExpr->iTable, dest, 0, 0);
       }else{
diff --git a/src/vdbe.c b/src/vdbe.c
index d52e187..a563d98 100644
--- a/src/vdbe.c
+++ b/src/vdbe.c
@@ -41,7 +41,7 @@
 ** But other routines are also provided to help in building up
 ** a program instruction by instruction.
 **
-** $Id: vdbe.c,v 1.18 2000/06/06 01:50:43 drh Exp $
+** $Id: vdbe.c,v 1.19 2000/06/06 03:31:22 drh Exp $
 */
 #include "sqliteInt.h"
 #include <unistd.h>
@@ -476,7 +476,7 @@
   for(pElem=p->apHash[h]; pElem; pElem=pElem->pHash){
     if( strcmp(pElem->zKey, zKey)==0 ) return;
   }
-  pElem = sqliteMalloc( sizeof(pElem) + strlen(zKey) );
+  pElem = sqliteMalloc( sizeof(*pElem) + strlen(zKey) );
   if( pElem==0 ) return;
   strcpy(pElem->zKey, zKey);
   pElem->pNext = p->pAll;
@@ -2893,6 +2893,7 @@
           pc = pOp->p2 - 1;
         }
         PopStack(p, 1);
+        break;
       }
 
       /* Opcode: SetNotFound P1 P2 *
@@ -2910,6 +2911,7 @@
           pc = pOp->p2 - 1;
         }
         PopStack(p, 1);
+        break;
       }
 
       /* An other opcode is illegal...