Home | History | Annotate | Download | only in makeconv

Lines Matching defs:extData

76     CnvExtData *extData;
78 extData=(CnvExtData *)uprv_malloc(sizeof(CnvExtData));
79 if(extData==NULL) {
83 uprv_memset(extData, 0, sizeof(CnvExtData));
85 extData->ucm=ucm; /* aliased, not owned */
87 extData->newConverter.close=CnvExtClose;
88 extData->newConverter.isValid=CnvExtIsValid;
89 extData->newConverter.addTable=CnvExtAddTable;
90 extData->newConverter.write=CnvExtWrite;
91 return &extData->newConverter;
96 CnvExtData *extData=(CnvExtData *)cnvData;
97 if(extData!=NULL) {
98 utm_close(extData->toUTable);
99 utm_close(extData->toUUChars);
100 utm_close(extData->fromUTableUChars);
101 utm_close(extData->fromUTableValues);
102 utm_close(extData->fromUBytes);
103 uprv_free(extData);
117 CnvExtData *extData=(CnvExtData *)cnvData;
128 length=(int32_t)uprv_strlen(extData->ucm->baseName)+1;
131 extData->ucm->baseName[length++]=0;
143 udata_writeBlock(pData, extData->ucm->baseName, length);
153 indexes[UCNV_EXT_TO_U_LENGTH]=length=utm_countItems(extData->toUTable);
157 indexes[UCNV_EXT_TO_U_UCHARS_LENGTH]=length=utm_countItems(extData->toUUChars);
161 length=utm_countItems(extData->fromUTableUChars);
166 *((UChar *)utm_alloc(extData->fromUTableUChars))=0;
167 *((uint32_t *)utm_alloc(extData->fromUTableValues))=0;
177 length=utm_countItems(extData->fromUBytes);
182 *((uint8_t *)utm_alloc(extData->fromUBytes))=0;
189 indexes[UCNV_EXT_FROM_U_STAGE_1_LENGTH]=length=extData->stage1Top;
190 indexes[UCNV_EXT_FROM_U_STAGE_12_LENGTH]=length+=extData->stage2Top;
194 length=extData->stage3Top;
199 extData->stage3[extData->stage3Top++]=0;
206 indexes[UCNV_EXT_FROM_U_STAGE_3B_LENGTH]=length=extData->stage3bTop;
213 (extData->maxInBytes<<16)|
214 (extData->maxOutBytes<<8)|
215 extData->maxBytesPerUChar;
217 (extData->maxInUChars<<16)|
218 (extData->maxOutUChars<<8)|
219 extData->maxUCharsPerByte;
221 indexes[UCNV_EXT_FLAGS]=extData->ucm->ext->unicodeMask;
225 udata_writeBlock(pData, utm_getStart(extData->toUTable), indexes[UCNV_EXT_TO_U_LENGTH]*4);
226 udata_writeBlock(pData, utm_getStart(extData->toUUChars), indexes[UCNV_EXT_TO_U_UCHARS_LENGTH]*2);
228 udata_writeBlock(pData, utm_getStart(extData->fromUTableUChars), indexes[UCNV_EXT_FROM_U_LENGTH]*2);
229 udata_writeBlock(pData, utm_getStart(extData->fromUTableValues), indexes[UCNV_EXT_FROM_U_LENGTH]*4);
230 udata_writeBlock(pData, utm_getStart(extData->fromUBytes), indexes[UCNV_EXT_FROM_U_BYTES_LENGTH]);
232 udata_writeBlock(pData, extData->stage1, extData->stage1Top*2);
233 udata_writeBlock(pData, extData->stage2, extData->stage2Top*2);
234 udata_writeBlock(pData, extData->stage3, extData->stage3Top*2);
235 udata_writeBlock(pData, extData->stage3b, extData->stage3bTop*4);
241 length=extData->stage1Top;
245 if(extData->stage1[i]!=length) {
246 printf("stage1[%04x]=%04x\n", i, extData->stage1[i]);
251 length=extData->stage2Top;
255 if(extData->stage2[i]!=0) {
256 printf("stage12[%04x]=%04x\n", j, extData->stage2[i]);
260 length=extData->stage3Top;
264 if(extData->stage3[i]!=0) {
265 printf("stage3[%04x]=%04x\n", i, extData->stage3[i]);
269 length=extData->stage3bTop;
273 if(extData->stage3b[i]!=0) {
274 printf("stage3b[%04x]=%08x\n", i, extData->stage3b[i]);
329 getToUnicodeValue(CnvExtData *extData, UCMTable *table, UCMapping *m) {
354 ((uint32_t)utm_countItems(extData->toUUChars));
355 u=utm_allocN(extData->toUUChars, u16Length);
369 if(m->bLen>extData->maxInBytes) {
370 extData->maxInBytes=m->bLen;
372 if(u16Length>extData->maxOutUChars) {
373 extData->maxOutUChars=u16Length;
377 if(ratio>extData->maxUCharsPerByte) {
378 extData->maxUCharsPerByte=ratio;
412 generateToUTable(CnvExtData *extData, UCMTable *table,
466 section=(uint32_t *)utm_allocN(extData->toUTable, 1+count);
525 defaultValue=getToUnicodeValue(extData, table, m);
533 section[j]|=(uint32_t)utm_countItems(extData->toUTable);
536 if(!generateToUTable(extData, table, subStart, subLimit, unitIndex+1, defaultValue)) {
550 makeToUTable(CnvExtData *extData, UCMTable *table) {
555 extData->toUTable=utm_open("cnv extension toUTable", 0x10000, UCNV_EXT_TO_U_MIN_CODE_POINT, 4);
556 extData->toUUChars=utm_open("cnv extension toUUChars", 0x10000, UCNV_EXT_TO_U_INDEX_MASK+1, 2);
558 return generateToUTable(extData, table, 0, toUCount, 0, 0);
636 getFromUBytesValue(CnvExtData *extData, UCMTable *table, UCMapping *m) {
667 value=(uint32_t)utm_countItems(extData->fromUBytes);
668 resultBytes=utm_allocN(extData->fromUBytes, m->bLen);
687 if(u16Length>extData->maxInUChars) {
688 extData->maxInUChars=u16Length;
690 if(m->bLen>extData->maxOutBytes) {
691 extData->maxOutBytes=m->bLen;
695 if(ratio>extData->maxBytesPerUChar) {
696 extData->maxBytesPerUChar=ratio;
711 generateFromUTable(CnvExtData *extData, UCMTable *table,
750 sectionUChars=(UChar *)utm_allocN(extData->fromUTableUChars, 1+count);
751 sectionValues=(uint32_t *)utm_allocN(extData->fromUTableValues, 1+count);
798 defaultValue=getFromUBytesValue(extData, table, m);
806 sectionValues[j]=(uint32_t)utm_countItems(extData->fromUTableValues);
809 if(!generateFromUTable(extData, table, subStart, subLimit, unitIndex+1, defaultValue)) {
823 addFromUTrieEntry(CnvExtData *extData, UChar32 c, uint32_t value) {
836 if(i1>=extData->stage1Top) {
837 extData->stage1Top=i1+1;
842 if(extData->stage1[i1]==0) {
844 newBlock=extData->stage2Top;
846 while(min<newBlock && extData->stage2[newBlock-1]==0) {
850 extData->stage1[i1]=(uint16_t)newBlock;
851 extData->stage2Top=newBlock+MBCS_STAGE_2_BLOCK_SIZE;
852 if(extData->stage2Top>LENGTHOF(extData->stage2)) {
858 i2=extData->stage1[i1]+nextOffset;
861 if(extData->stage2[i2]==0) {
863 newBlock=extData->stage3Top;
865 while(min<newBlock && extData->stage3[newBlock-1]==0) {
871 extData->stage2[i2]=(uint16_t)(newBlock>>UCNV_EXT_STAGE_2_LEFT_SHIFT);
873 extData->stage3Top=newBlock+MBCS_STAGE_3_BLOCK_SIZE;
874 if(extData->stage3Top>LENGTHOF(extData->stage3)) {
880 i3=((int32_t)extData->stage2[i2]<<UCNV_EXT_STAGE_2_LEFT_SHIFT)+nextOffset;
882 * assume extData->stage3[i3]==0 because we get
888 extData->stage3[i3]=1;
901 min<i3 && extData->stage3[min]==1;
906 if(extData->stage3Sub1Block!=0) {
908 extData->stage2[i2]=extData->stage3Sub1Block;
909 extData->stage3Top-=MBCS_STAGE_3_BLOCK_SIZE;
910 uprv_memset(extData->stage3+extData->stage3Top, 0, MBCS_STAGE_3_BLOCK_SIZE*2);
913 extData->stage3Sub1Block=extData->stage2[i2];
918 if((i3b=extData->stage3bTop++)>=LENGTHOF(extData->stage3b)) {
924 extData->stage3[i3]=(uint16_t)i3b;
925 extData->stage3b[i3b]=value;
930 generateFromUTrie(CnvExtData *extData, UCMTable *table, int32_t mapLength) {
986 value=getFromUBytesValue(extData, table, m);
991 addFromUTrieEntry(extData, c, value);
994 addFromUTrieEntry(extData, c, (uint32_t)utm_countItems(extData->fromUTableValues));
997 if(!generateFromUTable(extData, table, subStart, subLimit, 2, value)) {
1011 makeFromUTable(CnvExtData *extData, UCMTable *table) {
1017 extData->fromUTableUChars=utm_open("cnv extension fromUTableUChars", 0x10000, UCNV_EXT_FROM_U_DATA_MASK+1, 2);
1018 extData
1019 extData->fromUBytes=utm_open("cnv extension fromUBytes", 0x10000, UCNV_EXT_FROM_U_DATA_MASK+1, 1);
1022 extData->stage2Top=MBCS_STAGE_2_FIRST_ASSIGNED;
1023 extData->stage3Top=MBCS_STAGE_3_FIRST_ASSIGNED;
1030 extData->stage3b[1]=UCNV_EXT_FROM_U_SUBCHAR1;
1031 extData->stage3bTop=2;
1034 utm_alloc(extData->fromUTableUChars);
1035 utm_alloc(extData->fromUTableValues);
1037 if(!generateFromUTrie(extData, table, fromUCount)) {
1045 stage1=extData->stage1;
1046 stage1Top=extData->stage1Top;
1058 CnvExtData *extData;
1067 extData=(CnvExtData *)cnvData;
1077 makeToUTable(extData, table) &&
1078 makeFromUTable(extData, table);