Combine the ExprList_item objects and the ExprList wrapper into a single
memory allocation, for improved performance and reduced footprint.
FossilOrigin-Name: 2b6560ad88b92820c383bcdc1e30c06f8b081ef7c6d9b1af71d2bb76c83e35cd
diff --git a/src/sqliteInt.h b/src/sqliteInt.h
index 271ea9a..a0acec4 100644
--- a/src/sqliteInt.h
+++ b/src/sqliteInt.h
@@ -2443,6 +2443,7 @@
*/
struct ExprList {
int nExpr; /* Number of expressions on the list */
+ int nAlloc; /* Number of a[] slots allocated */
struct ExprList_item { /* For each expression in the list */
Expr *pExpr; /* The parse tree for this expression */
char *zName; /* Token associated with this expression */
@@ -2458,7 +2459,7 @@
} x;
int iConstExprReg; /* Register in which Expr value is cached */
} u;
- } *a; /* Alloc a power of two greater or equal to nExpr */
+ } a[1]; /* One slot for each expression in the list */
};
/*