From: drh Date: Fri, 24 Sep 2004 23:20:51 +0000 (+0000) Subject: Save a few bytes in utf.c. (CVS 1981) X-Git-Tag: version-3.0.8~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8dd3155e0d4d117fdefe39049a2ee429abe6e0f;p=thirdparty%2Fsqlite.git Save a few bytes in utf.c. (CVS 1981) FossilOrigin-Name: 8154d545e8ae3d22490b49ce4f327605883accaa --- diff --git a/manifest b/manifest index 98f9d9d666..8f8d76478e 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Optimizations\sto\svdbeaux.c\sand\sprintf.c\s(CVS\s1980) -D 2004-09-24T22:32:31 +C Save\sa\sfew\sbytes\sin\sutf.c.\s(CVS\s1981) +D 2004-09-24T23:20:52 F Makefile.in abdeb5bd9d017822691884935c320037c33f6ee6 F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457 F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd @@ -71,7 +71,7 @@ F src/test5.c b001fa7f1b9e2dc5c2331de62fc641b5ab2bd7a1 F src/tokenize.c 418ef7ba1149603a30dcf0057e04a3ea0e99edbe F src/trigger.c d1f770ee37a80391dd6d0948ee821b0272f99ae7 F src/update.c 7157084216c4b02a23cdb23eb6d246aa9034fa4d -F src/utf.c 328890099db492dda5620ee5f924e244c6e57ff7 +F src/utf.c f4f83acd73389090e32d6589d307fc55d794c7ed F src/util.c f9b661a3b80a1469777771776a59a5f0e2f193fc F src/vacuum.c 257de36230cb988842f66eb08dc6c0250b8e05f3 F src/vdbe.c 0542852785220807feb02b9dee1150ac2e592c8d @@ -247,7 +247,7 @@ F www/tclsqlite.tcl 560ecd6a916b320e59f2917317398f3d59b7cc25 F www/vdbe.tcl 59288db1ac5c0616296b26dce071c36cb611dfe9 F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0 F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4 -P bdc3bb070f7f29713b7bb9a6454a7ecbee6cf36d -R 07e2fbac83a5f125e4876d6fcf9bf7e8 +P eabc77c99b3e78b4c620a1736d9acfa6cb1e7b67 +R c07c37cfeb3c8a36c1a7b9c5d319b905 U drh -Z 242bf20dc4f04b5461b10f0143a31a44 +Z b991617d4e2790fa5a311f1ff33d427d diff --git a/manifest.uuid b/manifest.uuid index 287b4f3d72..6b569a3a91 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -eabc77c99b3e78b4c620a1736d9acfa6cb1e7b67 \ No newline at end of file +8154d545e8ae3d22490b49ce4f327605883accaa \ No newline at end of file diff --git a/src/utf.c b/src/utf.c index 033ed38a78..0d9a73395e 100644 --- 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.28 2004/08/31 00:52:37 drh Exp $ +** $Id: utf.c,v 1.29 2004/09/24 23:20:52 drh Exp $ ** ** Notes on UTF-8: ** @@ -324,17 +324,16 @@ int sqlite3VdbeMemTranslate(Mem *pMem, u8 desiredEnc){ READ_UTF8(zIn, c); WRITE_UTF16LE(z, c); } - WRITE_UTF16LE(z, 0); - pMem->n = (z-zOut)-2; - }else if( desiredEnc==SQLITE_UTF16BE ){ + }else{ + assert( desiredEnc==SQLITE_UTF16BE ); /* UTF-8 -> UTF-16 Big-endian */ while( zInn = (z-zOut)-2; } + pMem->n = z - zOut; + *z++ = 0; }else{ assert( desiredEnc==SQLITE_UTF8 ); if( pMem->enc==SQLITE_UTF16LE ){ @@ -343,18 +342,16 @@ int sqlite3VdbeMemTranslate(Mem *pMem, u8 desiredEnc){ READ_UTF16LE(zIn, c); WRITE_UTF8(z, c); } - WRITE_UTF8(z, 0); - pMem->n = (z-zOut)-1; }else{ /* UTF-16 Little-endian -> UTF-8 */ while( zInn = (z-zOut)-1; } + pMem->n = z - zOut; } + *z = 0; assert( (pMem->n+(desiredEnc==SQLITE_UTF8?1:2))<=len ); sqlite3VdbeMemRelease(pMem);