From: drh <> Date: Wed, 17 Jun 2026 19:28:17 +0000 (+0000) Subject: Remove the unnecessary Parse.szOpAlloc field, for small size reduction X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=HEAD;p=thirdparty%2Fsqlite.git Remove the unnecessary Parse.szOpAlloc field, for small size reduction and performance improvement. FossilOrigin-Name: 9a2a230464e4314033e67e602dbd9f554f50ec2eefc7b1a5f05b85249591f7b8 --- diff --git a/manifest b/manifest index 96295ff450..619979f047 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Small\sperformance\sboost\sin\sthe\ssqlite3VdbeResolveLabel()\sroutine\sof\sthe\ncode\sgenerator. -D 2026-06-17T18:39:05.979 +C Remove\sthe\sunnecessary\sParse.szOpAlloc\sfield,\sfor\ssmall\ssize\sreduction\nand\sperformance\simprovement. +D 2026-06-17T19:28:17.082 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -742,7 +742,7 @@ F src/shell.c.in a4e83895cfa336065ad7f7a7dea8fc2a19d050f7ce7466621c67208acaac9e4 F src/sqlite.h.in 740636d37edf1ed4a64378989e48ccfad169008aac250330f982e14aaf1d599b F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479 F src/sqlite3ext.h 9788c301f95370fa30e808861f1d2e6f022a816ddbe2a4f67486784c1b31db2e -F src/sqliteInt.h 1dcfbcc4419a7629c2e6b72aeeba283a48b17000e356b235680bdadc65b977cb +F src/sqliteInt.h 2020077a20fcf1a0cc00d7e5e44cb18c2478f64062749d4f99a046356822dd0c F src/sqliteLimit.h c70656b67ab5b96741a8f1c812bdd80c81f2b1c1e443d0cc3ea8c33bb1f1a092 F src/status.c 7565d63a79aa2f326339a24a0461a60096d0bd2bce711fefb50b5c89335f3592 F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1 @@ -808,7 +808,7 @@ F src/vdbe.c 39658ee12b9d6bf5fc546e1ede20b307d86d9e988ae709c9b461249a8312513d F src/vdbe.h 70e862ac8a11b590f8c1eaac17a0078429d42bc4ea3f757a9af0f451dd966a71 F src/vdbeInt.h c31ba4dc8d280c2b1dc89c6fcee68f2555e3813ab34279552c20b964c0e338b1 F src/vdbeapi.c 6cdcbe5c7afa754c998e73d2d5d2805556268362914b952811bdfb9c78a37cf1 -F src/vdbeaux.c 22b786874c7c26b0410990bf5acaf3e3e1f6f821a51d57d275dcc72d497e4099 +F src/vdbeaux.c 7c1f5542565bb7406ae2aae95acb0682a81b1abc6b86185fed8b96ed42e17822 F src/vdbeblob.c b3f0640db9642fbdc88bd6ebcc83d6009514cafc98f062f675f2c8d505d82692 F src/vdbemem.c 6e7ad67507c9a8e625b46256a9c003929331d6a27b99bbe139b8f0dab636e1f2 F src/vdbesort.c b69220f4ea9ffea5fdef34d968c60305444eea909252a81933b54c296d9cca70 @@ -2208,8 +2208,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P 17c444382979b70cdca78e51418366e802b2d41d1156774e5e9693b52542b84c -R eb60e5bacc37200fc3809eda21d427d1 +P f786f3643e410e862568777ea021afa47c924348e511a83e7e9000cf14bec534 +R 4c04be80f7283503d9c998bde86c0621 U drh -Z 287e30c1d3e97cd73a4cfc8f041f4b06 +Z ca70ffa427e0a2aecfc80c727849b21e # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 2f3b2098cc..d621b9a5b9 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -f786f3643e410e862568777ea021afa47c924348e511a83e7e9000cf14bec534 +9a2a230464e4314033e67e602dbd9f554f50ec2eefc7b1a5f05b85249591f7b8 diff --git a/src/sqliteInt.h b/src/sqliteInt.h index 12124e7d36..41ac01089f 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -3916,7 +3916,6 @@ struct Parse { int nErr; /* Number of errors seen */ int nTab; /* Number of previously allocated VDBE cursors */ int nMem; /* Number of memory cells used so far */ - int szOpAlloc; /* Bytes of memory space allocated for Vdbe.aOp[] */ int iSelfTab; /* Table associated with an index on expr, or negative ** of the base register during check-constraint eval */ int nNestSel; /* Number of nested SELECT statements and/or VIEWs */ diff --git a/src/vdbeaux.c b/src/vdbeaux.c index c7eb98dee3..9ccbf96a87 100644 --- a/src/vdbeaux.c +++ b/src/vdbeaux.c @@ -41,7 +41,6 @@ Vdbe *sqlite3VdbeCreate(Parse *pParse){ assert( pParse->aLabel==0 ); assert( pParse->nLabel==0 ); assert( p->nOpAlloc==0 ); - assert( pParse->szOpAlloc==0 ); sqlite3VdbeAddOp2(p, OP_Init, 0, 1); return p; } @@ -191,8 +190,7 @@ static int growOpArray(Vdbe *v, int nOp){ assert( nNew>=(v->nOpAlloc+nOp) ); pNew = sqlite3DbRealloc(p->db, v->aOp, nNew*sizeof(Op)); if( pNew ){ - p->szOpAlloc = sqlite3DbMallocSize(p->db, pNew); - v->nOpAlloc = p->szOpAlloc/sizeof(Op); + v->nOpAlloc = sqlite3DbMallocSize(p->db, pNew)/sizeof(Op); v->aOp = pNew; } return (pNew ? SQLITE_OK : SQLITE_NOMEM_BKPT); @@ -2695,7 +2693,7 @@ void sqlite3VdbeMakeReady( n = ROUND8P(sizeof(Op)*p->nOp); /* Bytes of opcode memory used */ x.pSpace = &((u8*)p->aOp)[n]; /* Unused opcode memory */ assert( EIGHT_BYTE_ALIGNMENT(x.pSpace) ); - x.nFree = ROUNDDOWN8(pParse->szOpAlloc - n); /* Bytes of unused memory */ + x.nFree = ROUNDDOWN8(p->nOpAlloc*sizeof(Op) - n); /* Bytes unused memory */ assert( x.nFree>=0 ); assert( EIGHT_BYTE_ALIGNMENT(&x.pSpace[x.nFree]) );