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

Unified Diff: source/common/ucnvmbcs.cpp

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/ucnvmbcs.c ('k') | source/common/ucnvscsu.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/common/ucnvmbcs.cpp
diff --git a/source/common/ucnvmbcs.c b/source/common/ucnvmbcs.cpp
similarity index 99%
rename from source/common/ucnvmbcs.c
rename to source/common/ucnvmbcs.cpp
index 143daf69af7a1ae9557408edc556eae83fee3462..f03f8a88c077ef83b8aa325108dab43a850cf4b3 100644
--- a/source/common/ucnvmbcs.c
+++ b/source/common/ucnvmbcs.cpp
@@ -1,11 +1,11 @@
/*
******************************************************************************
*
-* Copyright (C) 2000-2013, International Business Machines
+* Copyright (C) 2000-2014, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
-* file name: ucnvmbcs.c
+* file name: ucnvmbcs.cpp
* encoding: US-ASCII
* tab size: 8 (not used)
* indentation:4
@@ -56,7 +56,7 @@
#include "ucnv_cnv.h"
#include "cmemory.h"
#include "cstring.h"
-#include "cmutex.h"
+#include "umutex.h"
/* control optimizations according to the platform */
#define MBCS_UNROLL_SINGLE_TO_BMP 1
@@ -359,8 +359,161 @@
* adding new ones without crashing an unaware converter
*/
-static const UConverterImpl _SBCSUTF8Impl;
-static const UConverterImpl _DBCSUTF8Impl;
+/**
+ * Callback from ucnv_MBCSEnumToUnicode(), takes 32 mappings from
+ * consecutive sequences of bytes, starting from the one encoded in value,
+ * to Unicode code points. (Multiple mappings to reduce per-function call overhead.)
+ * Does not currently support m:n mappings or reverse fallbacks.
+ * This function will not be called for sequences of bytes with leading zeros.
+ *
+ * @param context an opaque pointer, as passed into ucnv_MBCSEnumToUnicode()
+ * @param value contains 1..4 bytes of the first byte sequence, right-aligned
+ * @param codePoints resulting Unicode code points, or negative if a byte sequence does
+ * not map to anything
+ * @return TRUE to continue enumeration, FALSE to stop
+ */
+typedef UBool U_CALLCONV
+UConverterEnumToUCallback(const void *context, uint32_t value, UChar32 codePoints[32]);
+
+static void
+ucnv_MBCSLoad(UConverterSharedData *sharedData,
+ UConverterLoadArgs *pArgs,
+ const uint8_t *raw,
+ UErrorCode *pErrorCode);
+
+static void
+ucnv_MBCSUnload(UConverterSharedData *sharedData);
+
+static void
+ucnv_MBCSOpen(UConverter *cnv,
+ UConverterLoadArgs *pArgs,
+ UErrorCode *pErrorCode);
+
+static UChar32
+ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs,
+ UErrorCode *pErrorCode);
+
+static void
+ucnv_MBCSGetStarters(const UConverter* cnv,
+ UBool starters[256],
+ UErrorCode *pErrorCode);
+
+static const char *
+ucnv_MBCSGetName(const UConverter *cnv);
+
+static void
+ucnv_MBCSWriteSub(UConverterFromUnicodeArgs *pArgs,
+ int32_t offsetIndex,
+ UErrorCode *pErrorCode);
+
+static UChar32
+ucnv_MBCSGetNextUChar(UConverterToUnicodeArgs *pArgs,
+ UErrorCode *pErrorCode);
+
+static void
+ucnv_SBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs,
+ UConverterToUnicodeArgs *pToUArgs,
+ UErrorCode *pErrorCode);
+
+static void
+ucnv_MBCSGetUnicodeSet(const UConverter *cnv,
+ const USetAdder *sa,
+ UConverterUnicodeSet which,
+ UErrorCode *pErrorCode);
+
+static void
+ucnv_DBCSFromUTF8(UConverterFromUnicodeArgs *pFromUArgs,
+ UConverterToUnicodeArgs *pToUArgs,
+ UErrorCode *pErrorCode);
+
+static const UConverterImpl _SBCSUTF8Impl={
+ UCNV_MBCS,
+
+ ucnv_MBCSLoad,
+ ucnv_MBCSUnload,
+
+ ucnv_MBCSOpen,
+ NULL,
+ NULL,
+
+ ucnv_MBCSToUnicodeWithOffsets,
+ ucnv_MBCSToUnicodeWithOffsets,
+ ucnv_MBCSFromUnicodeWithOffsets,
+ ucnv_MBCSFromUnicodeWithOffsets,
+ ucnv_MBCSGetNextUChar,
+
+ ucnv_MBCSGetStarters,
+ ucnv_MBCSGetName,
+ ucnv_MBCSWriteSub,
+ NULL,
+ ucnv_MBCSGetUnicodeSet,
+
+ NULL,
+ ucnv_SBCSFromUTF8
+};
+
+static const UConverterImpl _DBCSUTF8Impl={
+ UCNV_MBCS,
+
+ ucnv_MBCSLoad,
+ ucnv_MBCSUnload,
+
+ ucnv_MBCSOpen,
+ NULL,
+ NULL,
+
+ ucnv_MBCSToUnicodeWithOffsets,
+ ucnv_MBCSToUnicodeWithOffsets,
+ ucnv_MBCSFromUnicodeWithOffsets,
+ ucnv_MBCSFromUnicodeWithOffsets,
+ ucnv_MBCSGetNextUChar,
+
+ ucnv_MBCSGetStarters,
+ ucnv_MBCSGetName,
+ ucnv_MBCSWriteSub,
+ NULL,
+ ucnv_MBCSGetUnicodeSet,
+
+ NULL,
+ ucnv_DBCSFromUTF8
+};
+
+static const UConverterImpl _MBCSImpl={
+ UCNV_MBCS,
+
+ ucnv_MBCSLoad,
+ ucnv_MBCSUnload,
+
+ ucnv_MBCSOpen,
+ NULL,
+ NULL,
+
+ ucnv_MBCSToUnicodeWithOffsets,
+ ucnv_MBCSToUnicodeWithOffsets,
+ ucnv_MBCSFromUnicodeWithOffsets,
+ ucnv_MBCSFromUnicodeWithOffsets,
+ ucnv_MBCSGetNextUChar,
+
+ ucnv_MBCSGetStarters,
+ ucnv_MBCSGetName,
+ ucnv_MBCSWriteSub,
+ NULL,
+ ucnv_MBCSGetUnicodeSet,
+ NULL,
+ NULL
+};
+
+
+/* Static data is in tools/makeconv/ucnvstat.c for data-based
+ * converters. Be sure to update it as well.
+ */
+
+const UConverterSharedData _MBCSData={
+ sizeof(UConverterSharedData), 1,
+ NULL, NULL, NULL, FALSE, &_MBCSImpl,
+ 0, UCNV_MBCS_TABLE_INITIALIZER
+};
+
/* GB 18030 data ------------------------------------------------------------ */
@@ -473,22 +626,6 @@ static int32_t getSISOBytes(SISO_Option option, uint32_t cnvOption, uint8_t *val
/* Miscellaneous ------------------------------------------------------------ */
-/**
- * Callback from ucnv_MBCSEnumToUnicode(), takes 32 mappings from
- * consecutive sequences of bytes, starting from the one encoded in value,
- * to Unicode code points. (Multiple mappings to reduce per-function call overhead.)
- * Does not currently support m:n mappings or reverse fallbacks.
- * This function will not be called for sequences of bytes with leading zeros.
- *
- * @param context an opaque pointer, as passed into ucnv_MBCSEnumToUnicode()
- * @param value contains 1..4 bytes of the first byte sequence, right-aligned
- * @param codePoints resulting Unicode code points, or negative if a byte sequence does
- * not map to anything
- * @return TRUE to continue enumeration, FALSE to stop
- */
-typedef UBool U_CALLCONV
-UConverterEnumToUCallback(const void *context, uint32_t value, UChar32 codePoints[32]);
-
/* similar to ucnv_MBCSGetNextUChar() but recursive */
static UBool
enumToU(UConverterMBCSTable *mbcsTable, int8_t stateProps[],
@@ -987,7 +1124,7 @@ _extFromU(UConverter *cnv, const UConverterSharedData *sharedData,
int32_t i;
range=gb18030Ranges[0];
- for(i=0; i<sizeof(gb18030Ranges)/sizeof(gb18030Ranges[0]); range+=4, ++i) {
+ for(i=0; i<UPRV_LENGTHOF(gb18030Ranges); range+=4, ++i) {
if(range[0]<=(uint32_t)cp && (uint32_t)cp<=range[1]) {
/* found the Unicode code point, output the four-byte sequence for it */
uint32_t linear;
@@ -1054,7 +1191,7 @@ _extToU(UConverter *cnv, const UConverterSharedData *sharedData,
linear=LINEAR_18030(cnv->toUBytes[0], cnv->toUBytes[1], cnv->toUBytes[2], cnv->toUBytes[3]);
range=gb18030Ranges[0];
- for(i=0; i<sizeof(gb18030Ranges)/sizeof(gb18030Ranges[0]); range+=4, ++i) {
+ for(i=0; i<UPRV_LENGTHOF(gb18030Ranges); range+=4, ++i) {
if(range[2]<=linear && linear<=range[3]) {
/* found the sequence, output the Unicode code point for it */
*pErrorCode=U_ZERO_ERROR;
@@ -1374,7 +1511,7 @@ reconstituteData(UConverterMBCSTable *mbcsTable,
for(st1=0; stageUTF8Index<stageUTF8Length; ++st1) {
st2=stage1[st1];
- if(st2!=stage1Length/2) {
+ if(st2!=(int32_t)stage1Length/2) {
/* each stage 2 block has 64 entries corresponding to 16 entries in the mbcsIndex */
for(i=0; i<16; ++i) {
st3=mbcsTable->mbcsIndex[stageUTF8Index++];
@@ -1443,7 +1580,7 @@ ucnv_MBCSLoad(UConverterSharedData *sharedData,
}
if(mbcsTable->outputType==MBCS_OUTPUT_EXT_ONLY) {
- UConverterLoadArgs args={ 0 };
+ UConverterLoadArgs args=UCNV_LOAD_ARGS_INITIALIZER;
UConverterSharedData *baseSharedData;
const int32_t *extIndexes;
const char *baseName;
@@ -5479,7 +5616,7 @@ unassigned:
static void
ucnv_MBCSGetStarters(const UConverter* cnv,
UBool starters[256],
- UErrorCode *pErrorCode) {
+ UErrorCode *) {
const int32_t *state0;
int i;
@@ -5572,90 +5709,4 @@ ucnv_MBCSGetType(const UConverter* converter) {
return (UConverterType)UCNV_MBCS;
}
-static const UConverterImpl _SBCSUTF8Impl={
- UCNV_MBCS,
-
- ucnv_MBCSLoad,
- ucnv_MBCSUnload,
-
- ucnv_MBCSOpen,
- NULL,
- NULL,
-
- ucnv_MBCSToUnicodeWithOffsets,
- ucnv_MBCSToUnicodeWithOffsets,
- ucnv_MBCSFromUnicodeWithOffsets,
- ucnv_MBCSFromUnicodeWithOffsets,
- ucnv_MBCSGetNextUChar,
-
- ucnv_MBCSGetStarters,
- ucnv_MBCSGetName,
- ucnv_MBCSWriteSub,
- NULL,
- ucnv_MBCSGetUnicodeSet,
-
- NULL,
- ucnv_SBCSFromUTF8
-};
-
-static const UConverterImpl _DBCSUTF8Impl={
- UCNV_MBCS,
-
- ucnv_MBCSLoad,
- ucnv_MBCSUnload,
-
- ucnv_MBCSOpen,
- NULL,
- NULL,
-
- ucnv_MBCSToUnicodeWithOffsets,
- ucnv_MBCSToUnicodeWithOffsets,
- ucnv_MBCSFromUnicodeWithOffsets,
- ucnv_MBCSFromUnicodeWithOffsets,
- ucnv_MBCSGetNextUChar,
-
- ucnv_MBCSGetStarters,
- ucnv_MBCSGetName,
- ucnv_MBCSWriteSub,
- NULL,
- ucnv_MBCSGetUnicodeSet,
-
- NULL,
- ucnv_DBCSFromUTF8
-};
-
-static const UConverterImpl _MBCSImpl={
- UCNV_MBCS,
-
- ucnv_MBCSLoad,
- ucnv_MBCSUnload,
-
- ucnv_MBCSOpen,
- NULL,
- NULL,
-
- ucnv_MBCSToUnicodeWithOffsets,
- ucnv_MBCSToUnicodeWithOffsets,
- ucnv_MBCSFromUnicodeWithOffsets,
- ucnv_MBCSFromUnicodeWithOffsets,
- ucnv_MBCSGetNextUChar,
-
- ucnv_MBCSGetStarters,
- ucnv_MBCSGetName,
- ucnv_MBCSWriteSub,
- NULL,
- ucnv_MBCSGetUnicodeSet
-};
-
-
-/* Static data is in tools/makeconv/ucnvstat.c for data-based
- * converters. Be sure to update it as well.
- */
-
-const UConverterSharedData _MBCSData={
- sizeof(UConverterSharedData), 1,
- NULL, NULL, NULL, FALSE, &_MBCSImpl,
- 0
-};
-
#endif /* #if !UCONFIG_NO_LEGACY_CONVERSION */
« no previous file with comments | « source/common/ucnvmbcs.c ('k') | source/common/ucnvscsu.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698