1*6777b538SAndroid Build Coastguard Workerdiff --git a/source/common/ucmndata.h b/source/common/ucmndata.h 2*6777b538SAndroid Build Coastguard Workerindex 486b4fd7..1e63833f 100644 3*6777b538SAndroid Build Coastguard Worker--- a/source/common/ucmndata.h 4*6777b538SAndroid Build Coastguard Worker+++ b/source/common/ucmndata.h 5*6777b538SAndroid Build Coastguard Worker@@ -45,6 +45,20 @@ typedef struct { 6*6777b538SAndroid Build Coastguard Worker UDataInfo info; 7*6777b538SAndroid Build Coastguard Worker } DataHeader; 8*6777b538SAndroid Build Coastguard Worker 9*6777b538SAndroid Build Coastguard Worker+typedef struct { 10*6777b538SAndroid Build Coastguard Worker+ DataHeader hdr; 11*6777b538SAndroid Build Coastguard Worker+ char padding[8]; 12*6777b538SAndroid Build Coastguard Worker+ uint32_t count, reserved; 13*6777b538SAndroid Build Coastguard Worker+ /* 14*6777b538SAndroid Build Coastguard Worker+ const struct { 15*6777b538SAndroid Build Coastguard Worker+ const char *const name; 16*6777b538SAndroid Build Coastguard Worker+ const void *const data; 17*6777b538SAndroid Build Coastguard Worker+ } toc[1]; 18*6777b538SAndroid Build Coastguard Worker+ */ 19*6777b538SAndroid Build Coastguard Worker+ int fakeNameAndData[4]; /* TODO: Change this header type from */ 20*6777b538SAndroid Build Coastguard Worker+ /* pointerTOC to OffsetTOC. */ 21*6777b538SAndroid Build Coastguard Worker+} ICU_Data_Header; 22*6777b538SAndroid Build Coastguard Worker+ 23*6777b538SAndroid Build Coastguard Worker typedef struct { 24*6777b538SAndroid Build Coastguard Worker uint32_t nameOffset; 25*6777b538SAndroid Build Coastguard Worker uint32_t dataOffset; 26*6777b538SAndroid Build Coastguard Workerdiff --git a/source/common/udata.cpp b/source/common/udata.cpp 27*6777b538SAndroid Build Coastguard Workerindex 88126fc6..93458444 100644 28*6777b538SAndroid Build Coastguard Worker--- a/source/common/udata.cpp 29*6777b538SAndroid Build Coastguard Worker+++ b/source/common/udata.cpp 30*6777b538SAndroid Build Coastguard Worker@@ -643,7 +643,7 @@ U_NAMESPACE_END 31*6777b538SAndroid Build Coastguard Worker *----------------------------------------------------------------------*/ 32*6777b538SAndroid Build Coastguard Worker #if !defined(ICU_DATA_DIR_WINDOWS) 33*6777b538SAndroid Build Coastguard Worker // When using the Windows system data, we expect only a single data file. 34*6777b538SAndroid Build Coastguard Worker-extern "C" const DataHeader U_DATA_API U_ICUDATA_ENTRY_POINT; 35*6777b538SAndroid Build Coastguard Worker+extern "C" const ICU_Data_Header U_DATA_API U_ICUDATA_ENTRY_POINT; 36*6777b538SAndroid Build Coastguard Worker #endif 37*6777b538SAndroid Build Coastguard Worker 38*6777b538SAndroid Build Coastguard Worker /* 39*6777b538SAndroid Build Coastguard Worker@@ -696,7 +696,7 @@ openCommonData(const char *path, /* Path from OpenChoice? */ 40*6777b538SAndroid Build Coastguard Worker // When using the Windows system data, we expect only a single data file. 41*6777b538SAndroid Build Coastguard Worker int32_t i; 42*6777b538SAndroid Build Coastguard Worker for(i = 0; i < commonDataIndex; ++i) { 43*6777b538SAndroid Build Coastguard Worker- if(gCommonICUDataArray[i]->pHeader == &U_ICUDATA_ENTRY_POINT) { 44*6777b538SAndroid Build Coastguard Worker+ if(gCommonICUDataArray[i]->pHeader == &U_ICUDATA_ENTRY_POINT.hdr) { 45*6777b538SAndroid Build Coastguard Worker /* The linked-in data is already in the list. */ 46*6777b538SAndroid Build Coastguard Worker return nullptr; 47*6777b538SAndroid Build Coastguard Worker } 48*6777b538SAndroid Build Coastguard Worker@@ -719,7 +719,7 @@ openCommonData(const char *path, /* Path from OpenChoice? */ 49*6777b538SAndroid Build Coastguard Worker */ 50*6777b538SAndroid Build Coastguard Worker #if !defined(ICU_DATA_DIR_WINDOWS) 51*6777b538SAndroid Build Coastguard Worker // When using the Windows system data, we expect only a single data file. 52*6777b538SAndroid Build Coastguard Worker- setCommonICUDataPointer(&U_ICUDATA_ENTRY_POINT, false, pErrorCode); 53*6777b538SAndroid Build Coastguard Worker+ setCommonICUDataPointer(&U_ICUDATA_ENTRY_POINT.hdr, false, pErrorCode); 54*6777b538SAndroid Build Coastguard Worker { 55*6777b538SAndroid Build Coastguard Worker Mutex lock; 56*6777b538SAndroid Build Coastguard Worker return gCommonICUDataArray[commonDataIndex]; 57*6777b538SAndroid Build Coastguard Workerdiff --git a/source/stubdata/stubdata.cpp b/source/stubdata/stubdata.cpp 58*6777b538SAndroid Build Coastguard Workerindex 0fa2b170..32ceb185 100644 59*6777b538SAndroid Build Coastguard Worker--- a/source/stubdata/stubdata.cpp 60*6777b538SAndroid Build Coastguard Worker+++ b/source/stubdata/stubdata.cpp 61*6777b538SAndroid Build Coastguard Worker@@ -1,3 +1,4 @@ 62*6777b538SAndroid Build Coastguard Worker+ 63*6777b538SAndroid Build Coastguard Worker // © 2016 and later: Unicode, Inc. and others. 64*6777b538SAndroid Build Coastguard Worker // License & terms of use: http://www.unicode.org/copyright.html 65*6777b538SAndroid Build Coastguard Worker /****************************************************************************** 66*6777b538SAndroid Build Coastguard Worker@@ -17,36 +18,40 @@ 67*6777b538SAndroid Build Coastguard Worker * 68*6777b538SAndroid Build Coastguard Worker * The stub data library (for which this file is the source) is sufficient 69*6777b538SAndroid Build Coastguard Worker * for running the data building tools. 70*6777b538SAndroid Build Coastguard Worker+* 71*6777b538SAndroid Build Coastguard Worker */ 72*6777b538SAndroid Build Coastguard Worker- 73*6777b538SAndroid Build Coastguard Worker-#include "stubdata.h" 74*6777b538SAndroid Build Coastguard Worker- 75*6777b538SAndroid Build Coastguard Worker-extern "C" U_EXPORT const ICU_Data_Header U_ICUDATA_ENTRY_POINT alignas(16) = { 76*6777b538SAndroid Build Coastguard Worker- 32, /* headerSize */ 77*6777b538SAndroid Build Coastguard Worker- 0xda, /* magic1, (see struct MappedData in udata.c) */ 78*6777b538SAndroid Build Coastguard Worker- 0x27, /* magic2 */ 79*6777b538SAndroid Build Coastguard Worker- { /*UDataInfo */ 80*6777b538SAndroid Build Coastguard Worker- sizeof(UDataInfo), /* size */ 81*6777b538SAndroid Build Coastguard Worker- 0, /* reserved */ 82*6777b538SAndroid Build Coastguard Worker- 83*6777b538SAndroid Build Coastguard Worker+#include "ucmndata.h" 84*6777b538SAndroid Build Coastguard Worker+extern "C" U_EXPORT const ICU_Data_Header U_ICUDATA_ENTRY_POINT = { 85*6777b538SAndroid Build Coastguard Worker+ { /* DataHeader */ 86*6777b538SAndroid Build Coastguard Worker+ { /* MappedData */ 87*6777b538SAndroid Build Coastguard Worker+ 32, /* headerSize */ 88*6777b538SAndroid Build Coastguard Worker+ 0xda, /* magic1, (see struct MappedData in udata.c) */ 89*6777b538SAndroid Build Coastguard Worker+ 0x27, /* magic2 */ 90*6777b538SAndroid Build Coastguard Worker+ }, 91*6777b538SAndroid Build Coastguard Worker+ { /*UDataInfo */ 92*6777b538SAndroid Build Coastguard Worker+ sizeof(UDataInfo), /* size */ 93*6777b538SAndroid Build Coastguard Worker+ 0, /* reserved */ 94*6777b538SAndroid Build Coastguard Worker #if U_IS_BIG_ENDIAN 95*6777b538SAndroid Build Coastguard Worker- 1, 96*6777b538SAndroid Build Coastguard Worker+ 1, 97*6777b538SAndroid Build Coastguard Worker #else 98*6777b538SAndroid Build Coastguard Worker- 0, 99*6777b538SAndroid Build Coastguard Worker+ 0, 100*6777b538SAndroid Build Coastguard Worker #endif 101*6777b538SAndroid Build Coastguard Worker- 102*6777b538SAndroid Build Coastguard Worker- U_CHARSET_FAMILY, 103*6777b538SAndroid Build Coastguard Worker- sizeof(char16_t), 104*6777b538SAndroid Build Coastguard Worker- 0, /* reserved */ 105*6777b538SAndroid Build Coastguard Worker- {0x54, 0x6f, 0x43, 0x50}, /* data format identifier: "ToCP" */ 106*6777b538SAndroid Build Coastguard Worker- {1, 0, 0, 0}, /* format version major, minor, milli, micro */ 107*6777b538SAndroid Build Coastguard Worker- {0, 0, 0, 0} /* dataVersion */ 108*6777b538SAndroid Build Coastguard Worker+ U_CHARSET_FAMILY, 109*6777b538SAndroid Build Coastguard Worker+ sizeof(UChar), 110*6777b538SAndroid Build Coastguard Worker+ 0, /* reserved */ 111*6777b538SAndroid Build Coastguard Worker+ { /* data format identifier */ 112*6777b538SAndroid Build Coastguard Worker+ 0x54, 0x6f, 0x43, 0x50}, /* "ToCP" */ 113*6777b538SAndroid Build Coastguard Worker+ {1, 0, 0, 0}, /* format version major, minor, milli, micro */ 114*6777b538SAndroid Build Coastguard Worker+ {0, 0, 0, 0} /* dataVersion */ 115*6777b538SAndroid Build Coastguard Worker+ }, 116*6777b538SAndroid Build Coastguard Worker }, 117*6777b538SAndroid Build Coastguard Worker- { 's', 't', 'u', 'b', 'd', 'a', 't', 'a' }, /* Padding[8] */ 118*6777b538SAndroid Build Coastguard Worker+ {0,0,0,0,0,0,0,0}, /* Padding[8] */ 119*6777b538SAndroid Build Coastguard Worker 0, /* count */ 120*6777b538SAndroid Build Coastguard Worker 0, /* Reserved */ 121*6777b538SAndroid Build Coastguard Worker { /* TOC structure */ 122*6777b538SAndroid Build Coastguard Worker- 0 , 0 /* name and data entries. Count says there are none, */ 123*6777b538SAndroid Build Coastguard Worker+/* { */ 124*6777b538SAndroid Build Coastguard Worker+ 0 , 0 , 0, 0 /* name and data entries. Count says there are none, */ 125*6777b538SAndroid Build Coastguard Worker /* but put one in just in case. */ 126*6777b538SAndroid Build Coastguard Worker+/* } */ 127*6777b538SAndroid Build Coastguard Worker } 128*6777b538SAndroid Build Coastguard Worker-}; 129*6777b538SAndroid Build Coastguard Worker+}; 130*6777b538SAndroid Build Coastguard Worker\ No newline at end of file 131