From: stephan Date: Fri, 24 Oct 2025 14:30:42 +0000 (+0000) Subject: Make explicit that sqlite3_bind_pointer() and sqlite3_carray_bind() call the provided... X-Git-Tag: major-release~50 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4bb53ab2e4ba92c765298e8b74f5a65c01342c28;p=thirdparty%2Fsqlite.git Make explicit that sqlite3_bind_pointer() and sqlite3_carray_bind() call the provided destructor even if those routines fail, per [forum:6d81b10952|forum feedback]. FossilOrigin-Name: 1fcb0b60798c708fec53d9d69a65cca2e37a9af7a5fa654c7b2bba97056cd461 --- diff --git a/manifest b/manifest index db17350cee..28418c9946 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Update\sthe\sMSVC\smakefile\sfor\sthe\samalgamation\sdistribution. -D 2025-10-24T13:23:43.179 +C Make\sexplicit\sthat\ssqlite3_bind_pointer()\sand\ssqlite3_carray_bind()\scall\sthe\sprovided\sdestructor\seven\sif\sthose\sroutines\sfail,\sper\s[forum:6d81b10952|forum\sfeedback]. +D 2025-10-24T14:30:42.743 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -737,7 +737,7 @@ F src/resolve.c f8d1d011aba0964ff1bdccd049d4d2c2fec217efd90d202a4bb775e926b2c25d F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97 F src/select.c b95181711d59c36d9789e67f76c4cfec64b99f9629a50be5e6566e117b87d957 F src/shell.c.in 8d218cb62f8badb58cb6d91302ca8b6ccdc93232dd2ba39a9ace2e41fd8495cb -F src/sqlite.h.in 10faecc456d3962c7cedae70d69305f7c80129f28dd8524bd8a06b3eac955e54 +F src/sqlite.h.in 84b45d68953c7fab8392c8ff7055db4e398e496083b853dac61e787154913720 F src/sqlite3.rc 015537e6ac1eec6c7050e17b616c2ffe6f70fca241835a84a4f0d5937383c479 F src/sqlite3ext.h 7f236ca1b175ffe03316d974ef57df79b3938466c28d2f95caef5e08c57f3a52 F src/sqliteInt.h 88f7fc9ce1630d9a5f7e0a8e1f3287cdc63882fba985c18e7eee1b9f457f59aa @@ -2171,8 +2171,8 @@ F tool/version-info.c 33d0390ef484b3b1cb685d59362be891ea162123cea181cb8e6d2cf6dd F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings.sh 1ad0169b022b280bcaaf94a7fa231591be96b514230ab5c98fbf15cd7df842dd F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 4e713558f6c6ea3dfbc97d2eb0a328955ef6ad6f2ad05517efe9ed4a60181440 -R 0fcfe6c38d765341c4866b3b667e0b35 -U drh -Z bdcd0255339b5b84488e0aa1144cbe00 +P 440ce1cff2b7519912fec87f440894592e901d730bf74cf99479e7b1d047bf02 +R 96b76ffc99b8e4156ec41163bd33020c +U stephan +Z 84de5de3825ba943849eab13baee19f5 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 20f95ce671..da5eca4753 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -440ce1cff2b7519912fec87f440894592e901d730bf74cf99479e7b1d047bf02 +1fcb0b60798c708fec53d9d69a65cca2e37a9af7a5fa654c7b2bba97056cd461 diff --git a/src/sqlite.h.in b/src/sqlite.h.in index 7ace534b79..9eafdeac1f 100644 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@ -4907,9 +4907,10 @@ typedef struct sqlite3_context sqlite3_context; ** associated with the pointer P of type T. ^D is either a NULL pointer or ** a pointer to a destructor function for P. ^SQLite will invoke the ** destructor D with a single argument of P when it is finished using -** P. The T parameter should be a static string, preferably a string -** literal. The sqlite3_bind_pointer() routine is part of the -** [pointer passing interface] added for SQLite 3.20.0. +** P, even if the call to sqlite3_bind_pointer() fails. The T +** parameter should be a static string, preferably a string literal. +** The sqlite3_bind_pointer() routine is part of the [pointer passing +** interface] added for SQLite 3.20.0. ** ** ^If any of the sqlite3_bind_*() routines are called with a NULL pointer ** for the [prepared statement] or with a prepared statement for which @@ -11153,7 +11154,8 @@ int sqlite3_deserialize( ** [SQLITE_CARRAY_DOUBLE], [SQLITE_CARRAY_TEXT], or [SQLITE_CARRAY_BLOB] to ** indicate the datatype of the array being bound. The X argument is not a ** NULL pointer, then SQLite will invoke the function X on the P parameter -** after it has finished using P. +** after it has finished using P, even if the call to +** sqlite3_carray_bind() fails. */ SQLITE_API int sqlite3_carray_bind( sqlite3_stmt *pStmt, /* Statement to be bound */