| Index: patches/ucnv_refcount.patch
|
| diff --git a/patches/ucnv_refcount.patch b/patches/ucnv_refcount.patch
|
| deleted file mode 100644
|
| index e5420be595edc81f0636051bdd0d1aa73a710aab..0000000000000000000000000000000000000000
|
| --- a/patches/ucnv_refcount.patch
|
| +++ /dev/null
|
| @@ -1,668 +0,0 @@
|
| -diff --git a/source/common/ucnv.c b/source/common/ucnv.c
|
| -index 5cf4d15..8d57010 100644
|
| ---- a/source/common/ucnv.c
|
| -+++ b/source/common/ucnv.c
|
| -@@ -1,7 +1,7 @@
|
| - /*
|
| - ******************************************************************************
|
| - *
|
| --* Copyright (C) 1998-2013, International Business Machines
|
| -+* Copyright (C) 1998-2015, International Business Machines
|
| - * Corporation and others. All Rights Reserved.
|
| - *
|
| - ******************************************************************************
|
| -@@ -295,12 +295,7 @@ ucnv_safeClone(const UConverter* cnv, void *stackBuffer, int32_t *pBufferSize, U
|
| - }
|
| -
|
| - /* increment refcount of shared data if needed */
|
| -- /*
|
| -- Checking whether it's an algorithic converter is okay
|
| -- in multithreaded applications because the value never changes.
|
| -- Don't check referenceCounter for any other value.
|
| -- */
|
| -- if (cnv->sharedData->referenceCounter != ~0) {
|
| -+ if (cnv->sharedData->isReferenceCounted) {
|
| - ucnv_incrementRefCount(cnv->sharedData);
|
| - }
|
| -
|
| -@@ -385,12 +380,7 @@ ucnv_close (UConverter * converter)
|
| - uprv_free(converter->subChars);
|
| - }
|
| -
|
| -- /*
|
| -- Checking whether it's an algorithic converter is okay
|
| -- in multithreaded applications because the value never changes.
|
| -- Don't check referenceCounter for any other value.
|
| -- */
|
| -- if (converter->sharedData->referenceCounter != ~0) {
|
| -+ if (converter->sharedData->isReferenceCounted) {
|
| - ucnv_unloadSharedDataIfReady(converter->sharedData);
|
| - }
|
| -
|
| -diff --git a/source/common/ucnv2022.cpp b/source/common/ucnv2022.cpp
|
| -index 7b8df9b..ea165ec 100644
|
| ---- a/source/common/ucnv2022.cpp
|
| -+++ b/source/common/ucnv2022.cpp
|
| -@@ -3813,16 +3813,8 @@ static const UConverterStaticData _ISO2022StaticData={
|
| - 0,
|
| - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */
|
| - };
|
| --const UConverterSharedData _ISO2022Data={
|
| -- sizeof(UConverterSharedData),
|
| -- ~((uint32_t) 0),
|
| -- NULL,
|
| -- NULL,
|
| -- &_ISO2022StaticData,
|
| -- FALSE,
|
| -- &_ISO2022Impl,
|
| -- 0, UCNV_MBCS_TABLE_INITIALIZER
|
| --};
|
| -+const UConverterSharedData _ISO2022Data=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_ISO2022StaticData, &_ISO2022Impl);
|
| -
|
| - /*************JP****************/
|
| - static const UConverterImpl _ISO2022JPImpl={
|
| -@@ -3869,16 +3861,8 @@ static const UConverterStaticData _ISO2022JPStaticData={
|
| -
|
| - namespace {
|
| -
|
| --const UConverterSharedData _ISO2022JPData={
|
| -- sizeof(UConverterSharedData),
|
| -- ~((uint32_t) 0),
|
| -- NULL,
|
| -- NULL,
|
| -- &_ISO2022JPStaticData,
|
| -- FALSE,
|
| -- &_ISO2022JPImpl,
|
| -- 0, UCNV_MBCS_TABLE_INITIALIZER
|
| --};
|
| -+const UConverterSharedData _ISO2022JPData=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_ISO2022JPStaticData, &_ISO2022JPImpl);
|
| -
|
| - } // namespace
|
| -
|
| -@@ -3928,16 +3912,8 @@ static const UConverterStaticData _ISO2022KRStaticData={
|
| -
|
| - namespace {
|
| -
|
| --const UConverterSharedData _ISO2022KRData={
|
| -- sizeof(UConverterSharedData),
|
| -- ~((uint32_t) 0),
|
| -- NULL,
|
| -- NULL,
|
| -- &_ISO2022KRStaticData,
|
| -- FALSE,
|
| -- &_ISO2022KRImpl,
|
| -- 0, UCNV_MBCS_TABLE_INITIALIZER
|
| --};
|
| -+const UConverterSharedData _ISO2022KRData=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_ISO2022KRStaticData, &_ISO2022KRImpl);
|
| -
|
| - } // namespace
|
| -
|
| -@@ -3987,16 +3963,8 @@ static const UConverterStaticData _ISO2022CNStaticData={
|
| -
|
| - namespace {
|
| -
|
| --const UConverterSharedData _ISO2022CNData={
|
| -- sizeof(UConverterSharedData),
|
| -- ~((uint32_t) 0),
|
| -- NULL,
|
| -- NULL,
|
| -- &_ISO2022CNStaticData,
|
| -- FALSE,
|
| -- &_ISO2022CNImpl,
|
| -- 0, UCNV_MBCS_TABLE_INITIALIZER
|
| --};
|
| -+const UConverterSharedData _ISO2022CNData=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_ISO2022CNStaticData, &_ISO2022CNImpl);
|
| -
|
| - } // namespace
|
| - #endif /* #if !UCONFIG_NO_NON_HTML5_CONVERSION */
|
| -diff --git a/source/common/ucnv_bld.cpp b/source/common/ucnv_bld.cpp
|
| -index 047f18a..3357a64 100644
|
| ---- a/source/common/ucnv_bld.cpp
|
| -+++ b/source/common/ucnv_bld.cpp
|
| -@@ -285,6 +285,7 @@ ucnv_data_unFlattenClone(UConverterLoadArgs *pArgs, UDataMemory *pData, UErrorCo
|
| -
|
| - if( (uint16_t)type >= UCNV_NUMBER_OF_SUPPORTED_CONVERTER_TYPES ||
|
| - converterData[type] == NULL ||
|
| -+ !converterData[type]->isReferenceCounted ||
|
| - converterData[type]->referenceCounter != 1 ||
|
| - source->structSize != sizeof(UConverterStaticData))
|
| - {
|
| -@@ -301,26 +302,6 @@ ucnv_data_unFlattenClone(UConverterLoadArgs *pArgs, UDataMemory *pData, UErrorCo
|
| - /* copy initial values from the static structure for this type */
|
| - uprv_memcpy(data, converterData[type], sizeof(UConverterSharedData));
|
| -
|
| --#if 0 /* made UConverterMBCSTable part of UConverterSharedData -- markus 20031107 */
|
| -- /*
|
| -- * It would be much more efficient if the table were a direct member, not a pointer.
|
| -- * However, that would add to the size of all UConverterSharedData objects
|
| -- * even if they do not use this table (especially algorithmic ones).
|
| -- * If this changes, then the static templates from converterData[type]
|
| -- * need more entries.
|
| -- *
|
| -- * In principle, it would be cleaner if the load() function below
|
| -- * allocated the table.
|
| -- */
|
| -- data->table = (UConverterTable *)uprv_malloc(sizeof(UConverterTable));
|
| -- if(data->table == NULL) {
|
| -- uprv_free(data);
|
| -- *status = U_MEMORY_ALLOCATION_ERROR;
|
| -- return NULL;
|
| -- }
|
| -- uprv_memset(data->table, 0, sizeof(UConverterTable));
|
| --#endif
|
| --
|
| - data->staticData = source;
|
| -
|
| - data->sharedDataCached = FALSE;
|
| -@@ -331,7 +312,6 @@ ucnv_data_unFlattenClone(UConverterLoadArgs *pArgs, UDataMemory *pData, UErrorCo
|
| - if(data->impl->load != NULL) {
|
| - data->impl->load(data, pArgs, raw + source->structSize, status);
|
| - if(U_FAILURE(*status)) {
|
| -- uprv_free(data->table);
|
| - uprv_free(data);
|
| - return NULL;
|
| - }
|
| -@@ -535,25 +515,6 @@ ucnv_deleteSharedConverterData(UConverterSharedData * deadSharedData)
|
| - udata_close(data);
|
| - }
|
| -
|
| -- if(deadSharedData->table != NULL)
|
| -- {
|
| -- uprv_free(deadSharedData->table);
|
| -- }
|
| --
|
| --#if 0
|
| -- /* if the static data is actually owned by the shared data */
|
| -- /* enable if we ever have this situation. */
|
| -- if(deadSharedData->staticDataOwned == TRUE) /* see ucnv_bld.h */
|
| -- {
|
| -- uprv_free((void*)deadSharedData->staticData);
|
| -- }
|
| --#endif
|
| --
|
| --#if 0
|
| -- /* Zap it ! */
|
| -- uprv_memset(deadSharedData->0, sizeof(*deadSharedData));
|
| --#endif
|
| --
|
| - uprv_free(deadSharedData);
|
| -
|
| - UTRACE_EXIT_VALUE((int32_t)TRUE);
|
| -@@ -604,7 +565,7 @@ ucnv_load(UConverterLoadArgs *pArgs, UErrorCode *err) {
|
| -
|
| - /**
|
| - * Unload a non-algorithmic converter.
|
| -- * It must be sharedData->referenceCounter != ~0
|
| -+ * It must be sharedData->isReferenceCounted
|
| - * and this function must be called inside umtx_lock(&cnvCacheMutex).
|
| - */
|
| - U_CAPI void
|
| -@@ -623,12 +584,7 @@ ucnv_unload(UConverterSharedData *sharedData) {
|
| - U_CFUNC void
|
| - ucnv_unloadSharedDataIfReady(UConverterSharedData *sharedData)
|
| - {
|
| -- /*
|
| -- Checking whether it's an algorithic converter is okay
|
| -- in multithreaded applications because the value never changes.
|
| -- Don't check referenceCounter for any other value.
|
| -- */
|
| -- if(sharedData != NULL && sharedData->referenceCounter != (uint32_t)~0) {
|
| -+ if(sharedData != NULL && sharedData->isReferenceCounted) {
|
| - umtx_lock(&cnvCacheMutex);
|
| - ucnv_unload(sharedData);
|
| - umtx_unlock(&cnvCacheMutex);
|
| -@@ -638,12 +594,7 @@ ucnv_unloadSharedDataIfReady(UConverterSharedData *sharedData)
|
| - U_CFUNC void
|
| - ucnv_incrementRefCount(UConverterSharedData *sharedData)
|
| - {
|
| -- /*
|
| -- Checking whether it's an algorithic converter is okay
|
| -- in multithreaded applications because the value never changes.
|
| -- Don't check referenceCounter for any other value.
|
| -- */
|
| -- if(sharedData != NULL && sharedData->referenceCounter != (uint32_t)~0) {
|
| -+ if(sharedData != NULL && sharedData->isReferenceCounted) {
|
| - umtx_lock(&cnvCacheMutex);
|
| - sharedData->referenceCounter++;
|
| - umtx_unlock(&cnvCacheMutex);
|
| -@@ -933,12 +884,7 @@ ucnv_createAlgorithmicConverter(UConverter *myUConverter,
|
| - }
|
| -
|
| - sharedData = converterData[type];
|
| -- /*
|
| -- Checking whether it's an algorithic converter is okay
|
| -- in multithreaded applications because the value never changes.
|
| -- Don't check referenceCounter for any other value.
|
| -- */
|
| -- if(sharedData == NULL || sharedData->referenceCounter != (uint32_t)~0) {
|
| -+ if(sharedData == NULL || sharedData->isReferenceCounted) {
|
| - /* not a valid type, or not an algorithmic converter */
|
| - *err = U_ILLEGAL_ARGUMENT_ERROR;
|
| - UTRACE_EXIT_STATUS(U_ILLEGAL_ARGUMENT_ERROR);
|
| -diff --git a/source/common/ucnv_bld.h b/source/common/ucnv_bld.h
|
| -index ce6f374..2fbba14 100644
|
| ---- a/source/common/ucnv_bld.h
|
| -+++ b/source/common/ucnv_bld.h
|
| -@@ -1,6 +1,6 @@
|
| - /*
|
| - **********************************************************************
|
| --* Copyright (C) 1999-2011 International Business Machines
|
| -+* Copyright (C) 1999-2015 International Business Machines
|
| - * Corporation and others. All Rights Reserved.
|
| - **********************************************************************
|
| - *
|
| -@@ -93,15 +93,15 @@ typedef struct UConverterStaticData { /* +offset: size */
|
| - */
|
| - struct UConverterSharedData {
|
| - uint32_t structSize; /* Size of this structure */
|
| -- uint32_t referenceCounter; /* used to count number of clients, 0xffffffff for static SharedData */
|
| -+ uint32_t referenceCounter; /* used to count number of clients, unused for static/immutable SharedData */
|
| -
|
| - const void *dataMemory; /* from udata_openChoice() - for cleanup */
|
| -- void *table; /* Unused. This used to be a UConverterTable - Pointer to conversion data - see mbcs below */
|
| -
|
| - const UConverterStaticData *staticData; /* pointer to the static (non changing) data. */
|
| -
|
| - UBool sharedDataCached; /* TRUE: shared data is in cache, don't destroy on ucnv_close() if 0 ref. FALSE: shared data isn't in the cache, do attempt to clean it up if the ref is 0 */
|
| -- /*UBool staticDataOwned; TRUE if static data owned by shared data & should be freed with it, NEVER true for udata() loaded statics. This ignored variable was removed to make space for sharedDataCached. */
|
| -+ /** If FALSE, then referenceCounter is not used. Must not change after initialization. */
|
| -+ UBool isReferenceCounted;
|
| -
|
| - const UConverterImpl *impl; /* vtable-style struct of mostly function pointers */
|
| -
|
| -@@ -115,16 +115,21 @@ struct UConverterSharedData {
|
| - * which always has a UConverterMBCSTable
|
| - *
|
| - * To eliminate one allocation, I am making the UConverterMBCSTable
|
| -- * a member of the shared data. It is the last member so that static
|
| -- * definitions of UConverterSharedData work as before.
|
| -- * The table field above also remains to avoid updating all static
|
| -- * definitions, but is now unused.
|
| -+ * a member of the shared data.
|
| - *
|
| - * markus 2003-nov-07
|
| - */
|
| - UConverterMBCSTable mbcs;
|
| - };
|
| -
|
| -+/** UConverterSharedData initializer for static, non-reference-counted converters. */
|
| -+#define UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(pStaticData, pImpl) \
|
| -+ { \
|
| -+ sizeof(UConverterSharedData), ~((uint32_t)0), \
|
| -+ NULL, pStaticData, FALSE, FALSE, pImpl, \
|
| -+ 0, UCNV_MBCS_TABLE_INITIALIZER \
|
| -+ }
|
| -+
|
| - /* Defines a UConverter, the lightweight mutable part the user sees */
|
| -
|
| - struct UConverter {
|
| -@@ -266,7 +271,7 @@ ucnv_load(UConverterLoadArgs *pArgs, UErrorCode *err);
|
| -
|
| - /**
|
| - * Unload a non-algorithmic converter.
|
| -- * It must be sharedData->referenceCounter != ~0
|
| -+ * It must be sharedData->isReferenceCounted
|
| - * and this function must be called inside umtx_lock(&cnvCacheMutex).
|
| - */
|
| - U_CAPI void
|
| -diff --git a/source/common/ucnv_ct.c b/source/common/ucnv_ct.c
|
| -index e723fa6..51362ed 100644
|
| ---- a/source/common/ucnv_ct.c
|
| -+++ b/source/common/ucnv_ct.c
|
| -@@ -629,15 +629,7 @@ static const UConverterStaticData _CompoundTextStaticData = {
|
| - 0,
|
| - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */
|
| - };
|
| --const UConverterSharedData _CompoundTextData = {
|
| -- sizeof(UConverterSharedData),
|
| -- ~((uint32_t) 0),
|
| -- NULL,
|
| -- NULL,
|
| -- &_CompoundTextStaticData,
|
| -- FALSE,
|
| -- &_CompoundTextImpl,
|
| -- 0
|
| --};
|
| -+const UConverterSharedData _CompoundTextData =
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_CompoundTextStaticData, &_CompoundTextImpl);
|
| -
|
| - #endif /* #if !UCONFIG_NO_LEGACY_CONVERSION */
|
| -diff --git a/source/common/ucnv_lmb.c b/source/common/ucnv_lmb.c
|
| -index a4fccee..6196660 100644
|
| ---- a/source/common/ucnv_lmb.c
|
| -+++ b/source/common/ucnv_lmb.c
|
| -@@ -606,11 +606,8 @@ static const UConverterStaticData _LMBCSStaticData##n={\
|
| - 0, UCNV_IBM, UCNV_LMBCS_##n, 1, 3,\
|
| - { 0x3f, 0, 0, 0 },1,FALSE,FALSE,0,0,{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} \
|
| - };\
|
| --const UConverterSharedData _LMBCSData##n={\
|
| -- sizeof(UConverterSharedData), ~((uint32_t) 0),\
|
| -- NULL, NULL, &_LMBCSStaticData##n, FALSE, &_LMBCSImpl##n, \
|
| -- 0 \
|
| --};
|
| -+const UConverterSharedData _LMBCSData##n= \
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_LMBCSStaticData##n, &_LMBCSImpl##n);
|
| -
|
| - /* The only function we needed to duplicate 12 times was the 'open'
|
| - function, which will do basically the same thing except set a different
|
| -diff --git a/source/common/ucnv_u16.c b/source/common/ucnv_u16.c
|
| -index a2044aa..f4f902a 100644
|
| ---- a/source/common/ucnv_u16.c
|
| -+++ b/source/common/ucnv_u16.c
|
| -@@ -1,6 +1,6 @@
|
| - /*
|
| - **********************************************************************
|
| --* Copyright (C) 2002-2010, International Business Machines
|
| -+* Copyright (C) 2002-2015, International Business Machines
|
| - * Corporation and others. All Rights Reserved.
|
| - **********************************************************************
|
| - * file name: ucnv_u16.c
|
| -@@ -635,11 +635,8 @@ static const UConverterStaticData _UTF16BEStaticData={
|
| - };
|
| -
|
| -
|
| --const UConverterSharedData _UTF16BEData={
|
| -- sizeof(UConverterSharedData), ~((uint32_t) 0),
|
| -- NULL, NULL, &_UTF16BEStaticData, FALSE, &_UTF16BEImpl,
|
| -- 0
|
| --};
|
| -+const UConverterSharedData _UTF16BEData=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_UTF16BEStaticData, &_UTF16BEImpl);
|
| -
|
| - /* UTF-16LE ----------------------------------------------------------------- */
|
| -
|
| -@@ -1235,11 +1232,8 @@ static const UConverterStaticData _UTF16LEStaticData={
|
| - };
|
| -
|
| -
|
| --const UConverterSharedData _UTF16LEData={
|
| -- sizeof(UConverterSharedData), ~((uint32_t) 0),
|
| -- NULL, NULL, &_UTF16LEStaticData, FALSE, &_UTF16LEImpl,
|
| -- 0
|
| --};
|
| -+const UConverterSharedData _UTF16LEData=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_UTF16LEStaticData, &_UTF16LEImpl);
|
| -
|
| - /* UTF-16 (Detect BOM) ------------------------------------------------------ */
|
| -
|
| -@@ -1511,11 +1505,8 @@ static const UConverterStaticData _UTF16StaticData = {
|
| - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */
|
| - };
|
| -
|
| --const UConverterSharedData _UTF16Data = {
|
| -- sizeof(UConverterSharedData), ~((uint32_t) 0),
|
| -- NULL, NULL, &_UTF16StaticData, FALSE, &_UTF16Impl,
|
| -- 0
|
| --};
|
| -+const UConverterSharedData _UTF16Data =
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_UTF16StaticData, &_UTF16Impl);
|
| -
|
| - static const UConverterImpl _UTF16v2Impl = {
|
| - UCNV_UTF16,
|
| -@@ -1552,10 +1543,7 @@ static const UConverterStaticData _UTF16v2StaticData = {
|
| - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */
|
| - };
|
| -
|
| --static const UConverterSharedData _UTF16v2Data = {
|
| -- sizeof(UConverterSharedData), ~((uint32_t) 0),
|
| -- NULL, NULL, &_UTF16v2StaticData, FALSE, &_UTF16v2Impl,
|
| -- 0
|
| --};
|
| -+static const UConverterSharedData _UTF16v2Data =
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_UTF16v2StaticData, &_UTF16v2Impl);
|
| -
|
| - #endif
|
| -diff --git a/source/common/ucnv_u32.c b/source/common/ucnv_u32.c
|
| -index c24aaee..49d6746 100644
|
| ---- a/source/common/ucnv_u32.c
|
| -+++ b/source/common/ucnv_u32.c
|
| -@@ -495,11 +495,8 @@ static const UConverterStaticData _UTF32BEStaticData = {
|
| - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */
|
| - };
|
| -
|
| --const UConverterSharedData _UTF32BEData = {
|
| -- sizeof(UConverterSharedData), ~((uint32_t) 0),
|
| -- NULL, NULL, &_UTF32BEStaticData, FALSE, &_UTF32BEImpl,
|
| -- 0
|
| --};
|
| -+const UConverterSharedData _UTF32BEData =
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_UTF32BEStaticData, &_UTF32BEImpl);
|
| -
|
| - /* UTF-32LE ---------------------------------------------------------- */
|
| -
|
| -@@ -991,11 +988,8 @@ static const UConverterStaticData _UTF32LEStaticData = {
|
| - };
|
| -
|
| -
|
| --const UConverterSharedData _UTF32LEData = {
|
| -- sizeof(UConverterSharedData), ~((uint32_t) 0),
|
| -- NULL, NULL, &_UTF32LEStaticData, FALSE, &_UTF32LEImpl,
|
| -- 0
|
| --};
|
| -+const UConverterSharedData _UTF32LEData =
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_UTF32LEStaticData, &_UTF32LEImpl);
|
| -
|
| - /* UTF-32 (Detect BOM) ------------------------------------------------------ */
|
| -
|
| -@@ -1240,10 +1234,7 @@ static const UConverterStaticData _UTF32StaticData = {
|
| - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */
|
| - };
|
| -
|
| --const UConverterSharedData _UTF32Data = {
|
| -- sizeof(UConverterSharedData), ~((uint32_t) 0),
|
| -- NULL, NULL, &_UTF32StaticData, FALSE, &_UTF32Impl,
|
| -- 0
|
| --};
|
| -+const UConverterSharedData _UTF32Data =
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_UTF32StaticData, &_UTF32Impl);
|
| -
|
| - #endif
|
| -diff --git a/source/common/ucnv_u7.c b/source/common/ucnv_u7.c
|
| -index 6466b87..80bb209 100644
|
| ---- a/source/common/ucnv_u7.c
|
| -+++ b/source/common/ucnv_u7.c
|
| -@@ -775,11 +775,8 @@ static const UConverterStaticData _UTF7StaticData={
|
| - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */
|
| - };
|
| -
|
| --const UConverterSharedData _UTF7Data={
|
| -- sizeof(UConverterSharedData), ~((uint32_t)0),
|
| -- NULL, NULL, &_UTF7StaticData, FALSE, &_UTF7Impl,
|
| -- 0
|
| --};
|
| -+const UConverterSharedData _UTF7Data=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_UTF7StaticData, &_UTF7Impl);
|
| -
|
| - /* IMAP mailbox name encoding ----------------------------------------------- */
|
| -
|
| -@@ -1475,10 +1472,7 @@ static const UConverterStaticData _IMAPStaticData={
|
| - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */
|
| - };
|
| -
|
| --const UConverterSharedData _IMAPData={
|
| -- sizeof(UConverterSharedData), ~((uint32_t)0),
|
| -- NULL, NULL, &_IMAPStaticData, FALSE, &_IMAPImpl,
|
| -- 0
|
| --};
|
| -+const UConverterSharedData _IMAPData=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_IMAPStaticData, &_IMAPImpl);
|
| -
|
| - #endif
|
| -diff --git a/source/common/ucnv_u8.c b/source/common/ucnv_u8.c
|
| -index 24205f5..15dfbd0 100644
|
| ---- a/source/common/ucnv_u8.c
|
| -+++ b/source/common/ucnv_u8.c
|
| -@@ -1043,11 +1043,8 @@ static const UConverterStaticData _UTF8StaticData={
|
| - };
|
| -
|
| -
|
| --const UConverterSharedData _UTF8Data={
|
| -- sizeof(UConverterSharedData), ~((uint32_t) 0),
|
| -- NULL, NULL, &_UTF8StaticData, FALSE, &_UTF8Impl,
|
| -- 0
|
| --};
|
| -+const UConverterSharedData _UTF8Data=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_UTF8StaticData, &_UTF8Impl);
|
| -
|
| - /* CESU-8 converter data ---------------------------------------------------- */
|
| -
|
| -@@ -1086,10 +1083,7 @@ static const UConverterStaticData _CESU8StaticData={
|
| - };
|
| -
|
| -
|
| --const UConverterSharedData _CESU8Data={
|
| -- sizeof(UConverterSharedData), ~((uint32_t) 0),
|
| -- NULL, NULL, &_CESU8StaticData, FALSE, &_CESU8Impl,
|
| -- 0
|
| --};
|
| -+const UConverterSharedData _CESU8Data=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_CESU8StaticData, &_CESU8Impl);
|
| -
|
| - #endif
|
| -diff --git a/source/common/ucnvbocu.cpp b/source/common/ucnvbocu.cpp
|
| -index 281d6d9..a995207 100644
|
| ---- a/source/common/ucnvbocu.cpp
|
| -+++ b/source/common/ucnvbocu.cpp
|
| -@@ -1392,11 +1392,7 @@ static const UConverterStaticData _Bocu1StaticData={
|
| - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */
|
| - };
|
| -
|
| --const UConverterSharedData _Bocu1Data={
|
| -- sizeof(UConverterSharedData), ~((uint32_t)0),
|
| -- NULL, NULL, &_Bocu1StaticData, FALSE, &_Bocu1Impl,
|
| -- 0,
|
| -- UCNV_MBCS_TABLE_INITIALIZER
|
| --};
|
| -+const UConverterSharedData _Bocu1Data=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_Bocu1StaticData, &_Bocu1Impl);
|
| -
|
| - #endif
|
| -diff --git a/source/common/ucnvhz.c b/source/common/ucnvhz.c
|
| -index 51825e2..84df1a8 100644
|
| ---- a/source/common/ucnvhz.c
|
| -+++ b/source/common/ucnvhz.c
|
| -@@ -622,17 +622,8 @@ static const UConverterStaticData _HZStaticData={
|
| - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, /* reserved */
|
| -
|
| - };
|
| --
|
| --
|
| --const UConverterSharedData _HZData={
|
| -- sizeof(UConverterSharedData),
|
| -- ~((uint32_t) 0),
|
| -- NULL,
|
| -- NULL,
|
| -- &_HZStaticData,
|
| -- FALSE,
|
| -- &_HZImpl,
|
| -- 0
|
| --};
|
| -+
|
| -+const UConverterSharedData _HZData=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_HZStaticData, &_HZImpl);
|
| -
|
| - #endif /* #if !UCONFIG_NO_CONVERSION && !UCONFIG_NO_LEGACY_CONVERSION && !UCONFIG_NO_NON_HTML5_CONVERSION */
|
| -diff --git a/source/common/ucnvisci.c b/source/common/ucnvisci.c
|
| -index 16fd0a3..70b6477 100644
|
| ---- a/source/common/ucnvisci.c
|
| -+++ b/source/common/ucnvisci.c
|
| -@@ -1617,15 +1617,7 @@ static const UConverterStaticData _ISCIIStaticData={
|
| -
|
| - };
|
| -
|
| --const UConverterSharedData _ISCIIData={
|
| -- sizeof(UConverterSharedData),
|
| -- ~((uint32_t) 0),
|
| -- NULL,
|
| -- NULL,
|
| -- &_ISCIIStaticData,
|
| -- FALSE,
|
| -- &_ISCIIImpl,
|
| -- 0
|
| --};
|
| -+const UConverterSharedData _ISCIIData=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_ISCIIStaticData, &_ISCIIImpl);
|
| -
|
| - #endif /* #if !UCONFIG_NO_LEGACY_CONVERSION */
|
| -diff --git a/source/common/ucnvlat1.c b/source/common/ucnvlat1.c
|
| -index 202f8aa..95e0495 100644
|
| ---- a/source/common/ucnvlat1.c
|
| -+++ b/source/common/ucnvlat1.c
|
| -@@ -1,6 +1,6 @@
|
| - /*
|
| - **********************************************************************
|
| --* Copyright (C) 2000-2012, International Business Machines
|
| -+* Copyright (C) 2000-2015, International Business Machines
|
| - * Corporation and others. All Rights Reserved.
|
| - **********************************************************************
|
| - * file name: ucnvlat1.cpp
|
| -@@ -458,11 +458,8 @@ static const UConverterStaticData _Latin1StaticData={
|
| - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */
|
| - };
|
| -
|
| --const UConverterSharedData _Latin1Data={
|
| -- sizeof(UConverterSharedData), ~((uint32_t) 0),
|
| -- NULL, NULL, &_Latin1StaticData, FALSE, &_Latin1Impl,
|
| -- 0
|
| --};
|
| -+const UConverterSharedData _Latin1Data=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_Latin1StaticData, &_Latin1Impl);
|
| -
|
| - /* US-ASCII ----------------------------------------------------------------- */
|
| -
|
| -@@ -735,10 +732,7 @@ static const UConverterStaticData _ASCIIStaticData={
|
| - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */
|
| - };
|
| -
|
| --const UConverterSharedData _ASCIIData={
|
| -- sizeof(UConverterSharedData), ~((uint32_t) 0),
|
| -- NULL, NULL, &_ASCIIStaticData, FALSE, &_ASCIIImpl,
|
| -- 0
|
| --};
|
| -+const UConverterSharedData _ASCIIData=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_ASCIIStaticData, &_ASCIIImpl);
|
| -
|
| - #endif
|
| -diff --git a/source/common/ucnvmbcs.cpp b/source/common/ucnvmbcs.cpp
|
| -index f03f8a8..4e4de8d 100644
|
| ---- a/source/common/ucnvmbcs.cpp
|
| -+++ b/source/common/ucnvmbcs.cpp
|
| -@@ -1,7 +1,7 @@
|
| - /*
|
| - ******************************************************************************
|
| - *
|
| --* Copyright (C) 2000-2014, International Business Machines
|
| -+* Copyright (C) 2000-2015, International Business Machines
|
| - * Corporation and others. All Rights Reserved.
|
| - *
|
| - ******************************************************************************
|
| -@@ -510,7 +510,7 @@ static const UConverterImpl _MBCSImpl={
|
| -
|
| - const UConverterSharedData _MBCSData={
|
| - sizeof(UConverterSharedData), 1,
|
| -- NULL, NULL, NULL, FALSE, &_MBCSImpl,
|
| -+ NULL, NULL, FALSE, TRUE, &_MBCSImpl,
|
| - 0, UCNV_MBCS_TABLE_INITIALIZER
|
| - };
|
| -
|
| -diff --git a/source/common/ucnvscsu.c b/source/common/ucnvscsu.c
|
| -index a6f8c9e..5b4787f 100644
|
| ---- a/source/common/ucnvscsu.c
|
| -+++ b/source/common/ucnvscsu.c
|
| -@@ -2009,10 +2009,7 @@ static const UConverterStaticData _SCSUStaticData={
|
| - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */
|
| - };
|
| -
|
| --const UConverterSharedData _SCSUData={
|
| -- sizeof(UConverterSharedData), ~((uint32_t)0),
|
| -- NULL, NULL, &_SCSUStaticData, FALSE, &_SCSUImpl,
|
| -- 0
|
| --};
|
| -+const UConverterSharedData _SCSUData=
|
| -+ UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_SCSUStaticData, &_SCSUImpl);
|
| -
|
| - #endif
|
|
|