| OLD | NEW |
| (Empty) |
| 1 From 840d5ead53a23f8e1f54db479f2f5fc27f5821bf Mon Sep 17 00:00:00 2001 | |
| 2 From: Scott Hess <shess@chromium.org> | |
| 3 Date: Mon, 1 Feb 2016 17:07:24 -0800 | |
| 4 Subject: [PATCH 12/12] Use safe macros for UTF-8 iteration in sqlite icu | |
| 5 extension. | |
| 6 | |
| 7 Instead of U8_NEXT_UNSAFE and U8_FWD1_UNSAFE, use | |
| 8 U8_NEXT_OR_FFFD (efficient) and U8_FWD1 (slower than UNSAFE version). | |
| 9 | |
| 10 BUG=575205 | |
| 11 --- | |
| 12 third_party/sqlite/src/ext/icu/icu.c | 10 +++++----- | |
| 13 1 file changed, 5 insertions(+), 5 deletions(-) | |
| 14 | |
| 15 diff --git a/third_party/sqlite/src/ext/icu/icu.c b/third_party/sqlite/src/ext/i
cu/icu.c | |
| 16 index a2ff492..7e2b800 100644 | |
| 17 --- a/third_party/sqlite/src/ext/icu/icu.c | |
| 18 +++ b/third_party/sqlite/src/ext/icu/icu.c | |
| 19 @@ -82,7 +82,7 @@ static int icuLikeCompare( | |
| 20 | |
| 21 /* Read (and consume) the next character from the input pattern. */ | |
| 22 UChar32 uPattern; | |
| 23 - U8_NEXT_UNSAFE(zPattern, iPattern, uPattern); | |
| 24 + U8_NEXT_OR_FFFD(zPattern, iPattern, -1, uPattern); | |
| 25 | |
| 26 /* There are now 4 possibilities: | |
| 27 ** | |
| 28 @@ -102,7 +102,7 @@ static int icuLikeCompare( | |
| 29 while( (c=zPattern[iPattern]) == MATCH_ALL || c == MATCH_ONE ){ | |
| 30 if( c==MATCH_ONE ){ | |
| 31 if( zString[iString]==0 ) return 0; | |
| 32 - U8_FWD_1_UNSAFE(zString, iString); | |
| 33 + U8_FWD_1(zString, iString, -1); | |
| 34 } | |
| 35 iPattern++; | |
| 36 } | |
| 37 @@ -113,14 +113,14 @@ static int icuLikeCompare( | |
| 38 if( icuLikeCompare(&zPattern[iPattern], &zString[iString], uEsc) ){ | |
| 39 return 1; | |
| 40 } | |
| 41 - U8_FWD_1_UNSAFE(zString, iString); | |
| 42 + U8_FWD_1(zString, iString, -1); | |
| 43 } | |
| 44 return 0; | |
| 45 | |
| 46 }else if( !prevEscape && uPattern==MATCH_ONE ){ | |
| 47 /* Case 2. */ | |
| 48 if( zString[iString]==0 ) return 0; | |
| 49 - U8_FWD_1_UNSAFE(zString, iString); | |
| 50 + U8_FWD_1(zString, iString, -1); | |
| 51 | |
| 52 }else if( !prevEscape && uPattern==uEsc){ | |
| 53 /* Case 3. */ | |
| 54 @@ -129,7 +129,7 @@ static int icuLikeCompare( | |
| 55 }else{ | |
| 56 /* Case 4. */ | |
| 57 UChar32 uString; | |
| 58 - U8_NEXT_UNSAFE(zString, iString, uString); | |
| 59 + U8_NEXT_OR_FFFD(zString, iString, -1, uString); | |
| 60 uString = u_foldCase(uString, U_FOLD_CASE_DEFAULT); | |
| 61 uPattern = u_foldCase(uPattern, U_FOLD_CASE_DEFAULT); | |
| 62 if( uString!=uPattern ){ | |
| 63 -- | |
| 64 2.7.0 | |
| 65 | |
| OLD | NEW |