-
Notifications
You must be signed in to change notification settings - Fork 30k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update the version of the bundled ICU (deps/icu-small) to ICU version 64.2 (Unicode 12, CLDR 35) Fixes: #26388 PR-URL: #27361 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Steven R Loomis <srloomis@us.ibm.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
- Loading branch information
Showing
297 changed files
with
20,512 additions
and
13,162 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,8 @@ | ||
Small ICU sources - auto generated by shrink-icu-src.py | ||
|
||
This directory contains the ICU subset used by --with-intl=small-icu (the default) | ||
It is a strict subset of ICU 63 source files with the following exception(s): | ||
* deps/icu-small/source/data/in/icudt63l.dat : Reduced-size data file | ||
It is a strict subset of ICU 64 source files with the following exception(s): | ||
* deps/icu-small/source/data/in/icudt64l.dat : Reduced-size data file | ||
|
||
|
||
To rebuild this directory, see ../../tools/icu/README.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
// © 2018 and later: Unicode, Inc. and others. | ||
// License & terms of use: http://www.unicode.org/copyright.html | ||
|
||
#ifndef __CAPI_HELPER_H__ | ||
#define __CAPI_HELPER_H__ | ||
|
||
#include "unicode/utypes.h" | ||
|
||
U_NAMESPACE_BEGIN | ||
|
||
/** | ||
* An internal helper class to help convert between C and C++ APIs. | ||
*/ | ||
template<typename CType, typename CPPType, int32_t kMagic> | ||
class IcuCApiHelper { | ||
public: | ||
/** | ||
* Convert from the C type to the C++ type (const version). | ||
*/ | ||
static const CPPType* validate(const CType* input, UErrorCode& status); | ||
|
||
/** | ||
* Convert from the C type to the C++ type (non-const version). | ||
*/ | ||
static CPPType* validate(CType* input, UErrorCode& status); | ||
|
||
/** | ||
* Convert from the C++ type to the C type (const version). | ||
*/ | ||
const CType* exportConstForC() const; | ||
|
||
/** | ||
* Convert from the C++ type to the C type (non-const version). | ||
*/ | ||
CType* exportForC(); | ||
|
||
/** | ||
* Invalidates the object. | ||
*/ | ||
~IcuCApiHelper(); | ||
|
||
private: | ||
/** | ||
* While the object is valid, fMagic equals kMagic. | ||
*/ | ||
int32_t fMagic = kMagic; | ||
}; | ||
|
||
|
||
template<typename CType, typename CPPType, int32_t kMagic> | ||
const CPPType* | ||
IcuCApiHelper<CType, CPPType, kMagic>::validate(const CType* input, UErrorCode& status) { | ||
if (U_FAILURE(status)) { | ||
return nullptr; | ||
} | ||
if (input == nullptr) { | ||
status = U_ILLEGAL_ARGUMENT_ERROR; | ||
return nullptr; | ||
} | ||
auto* impl = reinterpret_cast<const CPPType*>(input); | ||
if (static_cast<const IcuCApiHelper<CType, CPPType, kMagic>*>(impl)->fMagic != kMagic) { | ||
status = U_INVALID_FORMAT_ERROR; | ||
return nullptr; | ||
} | ||
return impl; | ||
} | ||
|
||
template<typename CType, typename CPPType, int32_t kMagic> | ||
CPPType* | ||
IcuCApiHelper<CType, CPPType, kMagic>::validate(CType* input, UErrorCode& status) { | ||
auto* constInput = static_cast<const CType*>(input); | ||
auto* validated = validate(constInput, status); | ||
return const_cast<CPPType*>(validated); | ||
} | ||
|
||
template<typename CType, typename CPPType, int32_t kMagic> | ||
const CType* | ||
IcuCApiHelper<CType, CPPType, kMagic>::exportConstForC() const { | ||
return reinterpret_cast<const CType*>(static_cast<const CPPType*>(this)); | ||
} | ||
|
||
template<typename CType, typename CPPType, int32_t kMagic> | ||
CType* | ||
IcuCApiHelper<CType, CPPType, kMagic>::exportForC() { | ||
return reinterpret_cast<CType*>(static_cast<CPPType*>(this)); | ||
} | ||
|
||
template<typename CType, typename CPPType, int32_t kMagic> | ||
IcuCApiHelper<CType, CPPType, kMagic>::~IcuCApiHelper() { | ||
// head off application errors by preventing use of of deleted objects. | ||
fMagic = 0; | ||
} | ||
|
||
|
||
U_NAMESPACE_END | ||
|
||
#endif // __CAPI_HELPER_H__ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.