Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1039)

Unified Diff: source/common/normalizer2impl.h

Issue 845603002: Update ICU to 54.1 step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@master
Patch Set: remove unusued directories Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « source/common/normalizer2.cpp ('k') | source/common/normalizer2impl.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/common/normalizer2impl.h
diff --git a/source/common/normalizer2impl.h b/source/common/normalizer2impl.h
index 3b85eb040ed0d6eafb9d2012b1c0c3b2954406af..eb026dbecda12ad35c44b503d209e38ceb7e0d2c 100644
--- a/source/common/normalizer2impl.h
+++ b/source/common/normalizer2impl.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2009-2013, International Business Machines
+* Copyright (C) 2009-2014, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -22,7 +22,6 @@
#if !UCONFIG_NO_NORMALIZATION
#include "unicode/normalizer2.h"
-#include "unicode/udata.h"
#include "unicode/unistr.h"
#include "unicode/unorm.h"
#include "unicode/utf16.h"
@@ -34,15 +33,19 @@ U_NAMESPACE_BEGIN
struct CanonIterData;
-class Hangul {
+class U_COMMON_API Hangul {
public:
/* Korean Hangul and Jamo constants */
enum {
JAMO_L_BASE=0x1100, /* "lead" jamo */
+ JAMO_L_END=0x1112,
JAMO_V_BASE=0x1161, /* "vowel" jamo */
+ JAMO_V_END=0x1175,
JAMO_T_BASE=0x11a7, /* "trail" jamo */
+ JAMO_T_END=0x11c2,
HANGUL_BASE=0xac00,
+ HANGUL_END=0xd7a3,
JAMO_L_COUNT=19,
JAMO_V_COUNT=21,
@@ -110,7 +113,7 @@ private:
class Normalizer2Impl;
-class ReorderingBuffer : public UMemory {
+class U_COMMON_API ReorderingBuffer : public UMemory {
public:
ReorderingBuffer(const Normalizer2Impl &ni, UnicodeString &dest) :
impl(ni), str(dest),
@@ -213,15 +216,17 @@ private:
UChar *codePointStart, *codePointLimit;
};
-class U_COMMON_API Normalizer2Impl : public UMemory {
+class U_COMMON_API Normalizer2Impl : public UObject {
public:
- Normalizer2Impl() : memory(NULL), normTrie(NULL), fCanonIterData(NULL) {
+ Normalizer2Impl() : normTrie(NULL), fCanonIterData(NULL) {
fCanonIterDataInitOnce.reset();
}
- ~Normalizer2Impl();
+ virtual ~Normalizer2Impl();
- void load(const char *packageName, const char *name, UErrorCode &errorCode);
+ void init(const int32_t *inIndexes, const UTrie2 *inTrie,
+ const uint16_t *inExtraData, const uint8_t *inSmallFCD);
+ void addLcccChars(UnicodeSet &set) const;
void addPropertyStarts(const USetAdder *sa, UErrorCode &errorCode) const;
void addCanonIterPropertyStarts(const USetAdder *sa, UErrorCode &errorCode) const;
@@ -242,6 +247,7 @@ public:
return UNORM_NO;
}
}
+ UBool isAlgorithmicNoNo(uint16_t norm16) const { return limitNoNo<=norm16 && norm16<minMaybeYes; }
UBool isCompNo(uint16_t norm16) const { return minNoNo<=norm16 && norm16<minMaybeYes; }
UBool isDecompYes(uint16_t norm16) const { return norm16<minYesNo || minMaybeYes<=norm16; }
@@ -416,6 +422,18 @@ public:
// higher-level functionality ------------------------------------------ ***
+ // NFD without an NFD Normalizer2 instance.
+ UnicodeString &decompose(const UnicodeString &src, UnicodeString &dest,
+ UErrorCode &errorCode) const;
+ /**
+ * Decomposes [src, limit[ and writes the result to dest.
+ * limit can be NULL if src is NUL-terminated.
+ * destLengthEstimate is the initial dest buffer capacity and can be -1.
+ */
+ void decompose(const UChar *src, const UChar *limit,
+ UnicodeString &dest, int32_t destLengthEstimate,
+ UErrorCode &errorCode) const;
+
const UChar *decompose(const UChar *src, const UChar *limit,
ReorderingBuffer *buffer, UErrorCode &errorCode) const;
void decomposeAndAppend(const UChar *src, const UChar *limit,
@@ -460,9 +478,6 @@ public:
}
UBool isFCDInert(UChar32 c) const { return getFCD16(c)<=1; }
private:
- static UBool U_CALLCONV
- isAcceptable(void *context, const char *type, const char *name, const UDataInfo *pInfo);
-
UBool isMaybe(uint16_t norm16) const { return minMaybeYes<=norm16 && norm16<=JAMO_VT; }
UBool isMaybeOrNonZeroCC(uint16_t norm16) const { return norm16>=minMaybeYes; }
static UBool isInert(uint16_t norm16) { return norm16==0; }
@@ -566,8 +581,7 @@ private:
int32_t getCanonValue(UChar32 c) const;
const UnicodeSet &getCanonStartSet(int32_t n) const;
- UDataMemory *memory;
- UVersionInfo dataVersion;
+ // UVersionInfo dataVersion;
// Code point thresholds for quick check codes.
UChar32 minDecompNoCP;
@@ -580,13 +594,13 @@ private:
uint16_t limitNoNo;
uint16_t minMaybeYes;
- UTrie2 *normTrie;
+ const UTrie2 *normTrie;
const uint16_t *maybeYesCompositions;
const uint16_t *extraData; // mappings and/or compositions for yesYes, yesNo & noNo characters
const uint8_t *smallFCD; // [0x100] one bit per 32 BMP code points, set if any FCD!=0
uint8_t tccc180[0x180]; // tccc values for U+0000..U+017F
- public: // CanonIterData is public to allow access from C callback functions.
+public: // CanonIterData is public to allow access from C callback functions.
UInitOnce fCanonIterDataInitOnce;
CanonIterData *fCanonIterData;
};
@@ -602,13 +616,8 @@ private:
*/
class U_COMMON_API Normalizer2Factory {
public:
- static const Normalizer2 *getNFCInstance(UErrorCode &errorCode);
- static const Normalizer2 *getNFDInstance(UErrorCode &errorCode);
static const Normalizer2 *getFCDInstance(UErrorCode &errorCode);
static const Normalizer2 *getFCCInstance(UErrorCode &errorCode);
- static const Normalizer2 *getNFKCInstance(UErrorCode &errorCode);
- static const Normalizer2 *getNFKDInstance(UErrorCode &errorCode);
- static const Normalizer2 *getNFKC_CFInstance(UErrorCode &errorCode);
static const Normalizer2 *getNoopInstance(UErrorCode &errorCode);
static const Normalizer2 *getInstance(UNormalizationMode mode, UErrorCode &errorCode);
« no previous file with comments | « source/common/normalizer2.cpp ('k') | source/common/normalizer2impl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698