diff options
author | drh <drh@noemail.net> | 2005-12-14 22:51:16 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2005-12-14 22:51:16 +0000 |
commit | 26abcb1eef9fb8fe6999e46db55da0bdd98cdeb2 (patch) | |
tree | bb957bd517a90a8891e241155a08b37643df6c50 /src | |
parent | 268803a95b343c238e4dffc7c69fd2769e9d6f2d (diff) | |
download | sqlite-26abcb1eef9fb8fe6999e46db55da0bdd98cdeb2.tar.gz sqlite-26abcb1eef9fb8fe6999e46db55da0bdd98cdeb2.zip |
Avoid using the transient value in the UTF-16 collation needed callback. (CVS 2816)
FossilOrigin-Name: ab6241af29b2e9f5f094b83c13afebe44a8ad6bc
Diffstat (limited to 'src')
-rw-r--r-- | src/callback.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/callback.c b/src/callback.c index 45556f6b4..4995ec36b 100644 --- a/src/callback.c +++ b/src/callback.c @@ -13,7 +13,7 @@ ** This file contains functions used to access the internal hash tables ** of user defined functions and collation sequences. ** -** $Id: callback.c,v 1.6 2005/12/14 20:11:30 drh Exp $ +** $Id: callback.c,v 1.7 2005/12/14 22:51:17 drh Exp $ */ #include "sqliteInt.h" @@ -35,11 +35,13 @@ static void callCollNeeded(sqlite3 *db, const char *zName, int nName){ #ifndef SQLITE_OMIT_UTF16 if( db->xCollNeeded16 ){ char const *zExternal; - sqlite3_value *pTmp = sqlite3GetTransientValue(db); + sqlite3_value *pTmp = sqlite3ValueNew(); sqlite3ValueSetStr(pTmp, nName, zName, SQLITE_UTF8, SQLITE_STATIC); zExternal = sqlite3ValueText(pTmp, SQLITE_UTF16NATIVE); - if( !zExternal ) return; - db->xCollNeeded16(db->pCollNeededArg, db, (int)db->enc, zExternal); + if( zExternal ){ + db->xCollNeeded16(db->pCollNeededArg, db, (int)db->enc, zExternal); + } + sqlite3ValueFree(pTmp); } #endif } |