Fix minor problems with the SSE hooks. (CVS 2483)

FossilOrigin-Name: 3516ca29da5f28adc1fd4da42ca5551d154b6320
diff --git a/src/main.c b/src/main.c
index 4d6d59d..f247803 100644
--- a/src/main.c
+++ b/src/main.c
@@ -14,7 +14,7 @@
 ** other files are for internal use by SQLite and should not be
 ** accessed by users of the library.
 **
-** $Id: main.c,v 1.291 2005/05/25 04:11:56 danielk1977 Exp $
+** $Id: main.c,v 1.292 2005/05/26 12:37:30 danielk1977 Exp $
 */
 #include "sqliteInt.h"
 #include "os.h"
@@ -131,6 +131,10 @@
     return SQLITE_MISUSE;
   }
 
+#ifdef SQLITE_SSE
+  sqlite3_finalize(db->pFetch);
+#endif 
+
   /* If there are any outstanding VMs, return SQLITE_BUSY. */
   if( db->pVdbe ){
     sqlite3Error(db, SQLITE_BUSY, 
@@ -200,10 +204,6 @@
   }
 #endif
 
-#ifdef SQLITE_SSE
-  sqlite3_finalize(db->pFetch);
-#endif 
-
   db->magic = SQLITE_MAGIC_ERROR;
   sqliteFree(db);
   return SQLITE_OK;
diff --git a/src/vdbeaux.c b/src/vdbeaux.c
index 7ed08d4..db619f3 100644
--- a/src/vdbeaux.c
+++ b/src/vdbeaux.c
@@ -353,6 +353,9 @@
     if( n==P3_DYNAMIC || n==P3_KEYINFO_HANDOFF ){
       sqliteFree((void*)zP3);
     }
+    if( n==P3_MEM ){
+      sqlite3ValueFree((sqlite3_value *)zP3);
+    }
     return;
   }
   if( addr<0 || addr>=p->nOp ){