Fix corner-case memory management issues in table-valued functions.  Change
virtual table handling so that if xDestroy is missing the table is
eponymous only even if xCreate is present.

FossilOrigin-Name: 774e6a14b124bbae4da0e188b62aee9ffb8c3745
diff --git a/src/resolve.c b/src/resolve.c
index 9799a13..0908d4c 100644
--- a/src/resolve.c
+++ b/src/resolve.c
@@ -1451,11 +1451,10 @@
   NameContext *pNC,       /* Namespace to resolve expressions in. */
   ExprList *pList         /* The expression list to be analyzed. */
 ){
-  if( pList ){
-    int i;
-    for(i=0; i<pList->nExpr; i++){
-      if( sqlite3ResolveExprNames(pNC, pList->a[i].pExpr) ) return WRC_Abort;
-    }
+  assert( pList!=0 );
+  int i;
+  for(i=0; i<pList->nExpr; i++){
+    if( sqlite3ResolveExprNames(pNC, pList->a[i].pExpr) ) return WRC_Abort;
   }
   return WRC_Continue;
 }