]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Fix the utf8 to utf16 conversion routine for short strings. Bug
authordrh <drh@noemail.net>
Thu, 15 Dec 2005 22:34:00 +0000 (22:34 +0000)
committerdrh <drh@noemail.net>
Thu, 15 Dec 2005 22:34:00 +0000 (22:34 +0000)
introduced by check-in (2817). (CVS 2821)

FossilOrigin-Name: 4fba2db38e0693be52ca7251e4958bd836607f05

manifest
manifest.uuid
src/utf.c

index b01d03e0c91891c6c56976de80ec59f9edd3419a..5b495ea60ed80f159aa1b16c9186fcbb6d201847 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Add\sthe\ssqlite3_update_hook()\sAPI.\s(CVS\s2820)
-D 2005-12-15T15:22:09
+C Fix\sthe\sutf8\sto\sutf16\sconversion\sroutine\sfor\sshort\sstrings.\s\sBug\nintroduced\sby\scheck-in\s(2817).\s(CVS\s2821)
+D 2005-12-15T22:34:01
 F Makefile.in e3c6b3a38d734d41574c04f2fc90d18de2b87102
 F Makefile.linux-gcc aee18d8a05546dcf1888bd4547e442008a49a092
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -81,7 +81,7 @@ F src/test6.c cb811391ec0b7c75f29e545d4820a9cf19f3637e
 F src/tokenize.c 7a3a3d3cc734f684a77c4dfd09eb46fcee25394c
 F src/trigger.c 2925ba96d964d9b717e74006bf7e64b8a6b70d97
 F src/update.c ec8e540617b116725b5a55c8d6b4db8bc67fdd7d
-F src/utf.c d2360f55ecd666f3e472738191f8dae717b95e5e
+F src/utf.c b7bffac4260177ae7f83c01d025fe0f5ed70ce71
 F src/util.c 8bb5e0553692d36c769d6cd033eb7f68a7586648
 F src/vacuum.c fbfdd3967fd34e2f260fafed88dcbf3c10856b94
 F src/vdbe.c a9acffc91d3e06af24dc1dcf5bf7d5e77460b1c5
@@ -327,7 +327,7 @@ F www/tclsqlite.tcl ddcf912ea48695603c8ed7efb29f0812ef8d1b49
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b
 F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
-P 81a41f66370ea7f6810dfb323ba5cea60f240edd
-R eb3fb006708e7ea223867bd463f746c4
-U danielk1977
-Z d4836e8df9c05467b16e6242a013ac68
+P 36229018817eebfbfca7a66d2285e4faf7b39845
+R db348b533dcaa66ab84d8527c31842a7
+U drh
+Z 04cd55b34392e021d53876472bf23ee4
index a8e548d50748dfed60f243467b5c63752514e177..28a0663db4f2a57f9e744d972e349114c7acc871 100644 (file)
@@ -1 +1 @@
-36229018817eebfbfca7a66d2285e4faf7b39845
\ No newline at end of file
+4fba2db38e0693be52ca7251e4958bd836607f05
\ No newline at end of file
index 3387a576e7aaf575a3f6a3c9a9c046dd269e316d..b2534394d28d0af0bc8626f3753d342f7a2ff2bf 100644 (file)
--- a/src/utf.c
+++ b/src/utf.c
@@ -12,7 +12,7 @@
 ** This file contains routines used to translate between UTF-8, 
 ** UTF-16, UTF-16BE, and UTF-16LE.
 **
-** $Id: utf.c,v 1.34 2005/12/15 03:04:11 drh Exp $
+** $Id: utf.c,v 1.35 2005/12/15 22:34:01 drh Exp $
 **
 ** Notes on UTF-8:
 **
@@ -462,7 +462,9 @@ char *sqlite3utf16to8(const void *z, int nByte){
   memset(&m, 0, sizeof(m));
   sqlite3VdbeMemSetStr(&m, z, nByte, SQLITE_UTF16NATIVE, SQLITE_STATIC);
   sqlite3VdbeChangeEncoding(&m, SQLITE_UTF8);
-  return m.z;
+  assert( m.flags & MEM_Term );
+  assert( m.flags & MEM_Str );
+  return (m.flags & MEM_Dyn)!=0 ? m.z : sqlite3StrDup(m.z);
 }
 
 /*