-C Further\srefinements\sand\suses\sfor\ssqlite3_result_str().
-D 2026-06-19T20:01:47.172
+C Additional\schanges\sbased\son\sClaude\sanalysis.
+D 2026-06-19T21:43:04.776
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
F src/fkey.c 931f74cec1dc8038a0217ef340c91ce147dd1bbed08dc40c47ee0ec6edfffb08
F src/func.c 7e049176003271095ba560bca90995c8cb7c1e944aee539513daba015b172a18
-F src/global.c a19e4b1ca1335f560e9560e590fc13081e21f670643367f99cb9e8f9dc7d615b
+F src/global.c 2ea9484d8735e8d8077d4e9ed00b76563a851e7de86d7c65c08d6dd00de71ff2
F src/hash.c 03c8c0f4be9e8bcb6de65aa26d34a61d48a9430747084a69f9469fbb00ea52ca
F src/hash.h 46b92795a95bfefb210f52f0c316e9d7cdbcdd7e7fcfb0d8be796d3a5767cddf
F src/hwtime.h 5cb15147c8583d0fc4748e1c12ea6f38c9deaeefa147a4d8d379fd9bc81fee9a
F src/pcache1.c d7ee0f95992501a65379f620b3de1430b64e52e397769938668a9fd9dd1c8145
F src/pragma.c 789ef67117b74b5be0a2db6681f7f0c55e6913791b9da309aefd280de2c8a74d
F src/prepare.c d055c59c23b917367ed199a52888132316aa9cb9f7653ca71f0c45bd267206fd
-F src/printf.c 17d27023c1bc4078f67db138d41c70a25731ccc7b5afcbccf2c2436e984299ef
+F src/printf.c 54e6dc74d81dc40dd142aef2a778ef6b867539cce9694063ccd5bc3fbbe06735
F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
F src/resolve.c d0724113da9f5c0430d2052808ce59519f51ae7c4fbb1f5ef21fe3a832956086
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
F src/sqlite.h.in 8c70db561507478176b942a3f88cac396e00993eafb827ed31d48c191f327408
F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479
F src/sqlite3ext.h 0efd4723bad9124ea1f581d9f1ea0254ac1c6f3e5fb29e4f3dcf36c72485a456
-F src/sqliteInt.h 50d5b35c67c244db07694a3aff836c86289349ad553258631b75b88d29455869
+F src/sqliteInt.h fc70987022ecc7537473b5fa49881f3b0c7b555ad2a3ae0d2f8aaf368bab1080
F src/sqliteLimit.h c70656b67ab5b96741a8f1c812bdd80c81f2b1c1e443d0cc3ea8c33bb1f1a092
F src/status.c 7565d63a79aa2f326339a24a0461a60096d0bd2bce711fefb50b5c89335f3592
F src/table.c 0f141b58a16de7e2fbe81c308379e7279f4c6b50eb08efeec5892794a0ba30d1
F src/vdbe.c 39658ee12b9d6bf5fc546e1ede20b307d86d9e988ae709c9b461249a8312513d
F src/vdbe.h 70e862ac8a11b590f8c1eaac17a0078429d42bc4ea3f757a9af0f451dd966a71
F src/vdbeInt.h c31ba4dc8d280c2b1dc89c6fcee68f2555e3813ab34279552c20b964c0e338b1
-F src/vdbeapi.c a57d1ff4482f230f6a375aa520509f9c5a10383c15a7b512b02a94b3e5175d8e
+F src/vdbeapi.c 099eebc9d40d939b95aff89599f4eb7c7bf72374ec14db3efc8a61c2b73c8df7
F src/vdbeaux.c a052c43fcf342651f655e6771003c175d49b237a9473c3c4d79d44725f494dae
F src/vdbeblob.c b3f0640db9642fbdc88bd6ebcc83d6009514cafc98f062f675f2c8d505d82692
F src/vdbemem.c 6e7ad67507c9a8e625b46256a9c003929331d6a27b99bbe139b8f0dab636e1f2
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P cdbc62c36a37ad687589917c6f1e92ded6d99959c54eb8d79eaaef6fa57dacd3
-R 60e4da6667582dbfe16ab428736049fe
+P 974253a6058a7120354261b2134ed4803373031996957c7334161370b80bf428
+R d4284c01ee44237e94afe9a4eed3b649
U drh
-Z a2eb9a7d2f11cc4ba57193ad4f36ff09
+Z 5b79ac2945f5d69359867642a74e7c86
# Remove this line to create a well-formed Fossil manifest.
*/
FuncDefHash sqlite3BuiltinFunctions;
+/*
+** This singleton is an sqlite3_str object that is returned if
+** sqlite3_malloc() fails to provide space for a real one. This
+** sqlite3_str object accepts no new text and always returns
+** an SQLITE_NOMEM error.
+*/
+sqlite3_str sqlite3OomStr = {
+ 0, 0, 0, 0, 0, SQLITE_NOMEM, 0
+};
+
#if defined(SQLITE_COVERAGE_TEST) || defined(SQLITE_DEBUG)
/*
** Counter used for coverage testing. Does not come into play for
return p->zText;
}
-/*
-** This singleton is an sqlite3_str object that is returned if
-** sqlite3_malloc() fails to provide space for a real one. This
-** sqlite3_str object accepts no new text and always returns
-** an SQLITE_NOMEM error.
-*/
-static sqlite3_str sqlite3OomStr = {
- 0, 0, 0, 0, 0, SQLITE_NOMEM, 0
-};
-
/* Finalize a string created using sqlite3_str_new().
*/
char *sqlite3_str_finish(sqlite3_str *p){
** SQLITE_XFER The content of the sqlite3_str is transferred to
** the SQL function and the SQL function takes
** responsibility for freeing that content when it is
-** no longer neede. The sqlite3_str object is reset
+** no longer needed. The sqlite3_str object is reset
** to an empty string.
**
** SQLITE_FINISH Like SQLITE_XFER except that the pStr is also
-** freed using sqlite_str_free().
+** freed using sqlite3_str_free().
*/
void sqlite3_result_str(sqlite3_context *pCtx, sqlite3_str *pStr, int eOwn){
#ifdef SQLITE_ENABLE_API_ARMOR
sqlite3_result_error_toobig(pCtx);
}
if( eOwn ){
- sqlite3StrAccumInit(pStr, pStr->db, 0, 0, pStr->mxAlloc);
+ testcase( pStr==&sqlite3OomStr );
+ if( pStr->accError==0 ){
+ sqlite3StrAccumInit(pStr, pStr->db, 0, 0, pStr->mxAlloc);
+ }
if( eOwn==SQLITE_FINISH ){
sqlite3_str_free(pStr);
}