Index: source/common/udata.c =================================================================== --- source/common/udata.c (revision 22653) +++ source/common/udata.c (working copy) @@ -709,7 +709,7 @@ * our common data. * * * *----------------------------------------------------------------------*/ -extern const DataHeader U_DATA_API U_ICUDATA_ENTRY_POINT; +extern const ICU_Data_Header U_DATA_API U_ICUDATA_ENTRY_POINT; /*----------------------------------------------------------------------* @@ -745,7 +745,7 @@ return gCommonICUData; } - tData.pHeader = &U_ICUDATA_ENTRY_POINT; + tData.pHeader = &U_ICUDATA_ENTRY_POINT.hdr; udata_checkCommonData(&tData, pErrorCode); setCommonICUData(&tData, NULL, FALSE, pErrorCode); return gCommonICUData; Index: source/common/ucmndata.h =================================================================== --- source/common/ucmndata.h (revision 22653) +++ source/common/ucmndata.h (working copy) @@ -44,6 +44,20 @@ } DataHeader; typedef struct { + DataHeader hdr; + char padding[8]; + uint32_t count, reserved; + /* + const struct { + const char *const name; + const void *const data; + } toc[1]; + */ + int fakeNameAndData[4]; /* TODO: Change this header type from */ + /* pointerTOC to OffsetTOC. */ +} ICU_Data_Header; + +typedef struct { uint32_t nameOffset; uint32_t dataOffset; } UDataOffsetTOCEntry; Index: source/stubdata/stubdata.c =================================================================== --- source/stubdata/stubdata.c (revision 22653) +++ source/stubdata/stubdata.c (working copy) @@ -20,45 +20,34 @@ #include "unicode/utypes.h" #include "unicode/udata.h" #include "unicode/uversion.h" +#include "ucmndata.h" -typedef struct { - uint16_t headerSize; - uint8_t magic1, magic2; - UDataInfo info; - char padding[8]; - uint32_t count, reserved; - /* - const struct { - const char *const name; - const void *const data; - } toc[1]; - */ - int fakeNameAndData[4]; /* TODO: Change this header type from */ - /* pointerTOC to OffsetTOC. */ -} ICU_Data_Header; - U_EXPORT const ICU_Data_Header U_ICUDATA_ENTRY_POINT = { - 32, /* headerSize */ - 0xda, /* magic1, (see struct MappedData in udata.c) */ - 0x27, /* magic2 */ - { /*UDataInfo */ - sizeof(UDataInfo), /* size */ - 0, /* reserved */ + { /* DataHeader */ + { /* MappedData */ + 32, /* headerSize */ + 0xda, /* magic1, (see struct MappedData in udata.c) */ + 0x27, /* magic2 */ + }, + { /*UDataInfo */ + sizeof(UDataInfo), /* size */ + 0, /* reserved */ #if U_IS_BIG_ENDIAN - 1, + 1, #else - 0, + 0, #endif - U_CHARSET_FAMILY, - sizeof(UChar), - 0, /* reserved */ - { /* data format identifier */ - 0x54, 0x6f, 0x43, 0x50}, /* "ToCP" */ - {1, 0, 0, 0}, /* format version major, minor, milli, micro */ - {0, 0, 0, 0} /* dataVersion */ + U_CHARSET_FAMILY, + sizeof(UChar), + 0, /* reserved */ + { /* data format identifier */ + 0x54, 0x6f, 0x43, 0x50}, /* "ToCP" */ + {1, 0, 0, 0}, /* format version major, minor, milli, micro */ + {0, 0, 0, 0} /* dataVersion */ + }, }, {0,0,0,0,0,0,0,0}, /* Padding[8] */ 0, /* count */