Home | History | Annotate | Download | only in common

Lines Matching refs:pv

45     UPropsVectors *pv;
58 pv=(UPropsVectors *)uprv_malloc(sizeof(UPropsVectors));
60 if(pv==NULL || v==NULL) {
61 uprv_free(pv);
66 uprv_memset(pv, 0, sizeof(UPropsVectors));
67 pv->v=v;
68 pv->columns=columns;
69 pv->maxRows=UPVEC_INITIAL_ROWS;
70 pv->rows=2+(UPVEC_MAX_CP-UPVEC_FIRST_SPECIAL_CP);
73 row=pv->v;
74 uprv_memset(row, 0, pv->rows*columns*4);
83 return pv;
87 upvec_close(UPropsVectors *pv) {
88 if(pv!=NULL) {
89 uprv_free(pv->v);
90 uprv_free(pv);
95 _findRow(UPropsVectors *pv, UChar32 rangeStart) {
99 columns=pv->columns;
100 limit=pv->rows;
101 prevRow=pv->prevRow;
104 row=pv->v+prevRow*columns;
111 pv->prevRow=prevRow+1;
115 pv->prevRow=prevRow+2;
124 pv->prevRow=prevRow;
127 } else if(rangeStart<(UChar32)pv->v[1]) {
129 pv->prevRow=0;
130 return pv->v;
137 row=pv->v+i*columns;
141 pv->prevRow=i;
149 pv->prevRow=start;
150 return pv->v+start*columns;
154 upvec_setValue(UPropsVectors *pv,
168 if( pv==NULL ||
170 column<0 || column>=(pv->columns-2)
175 if(pv->isCompacted) {
182 columns=pv->columns;
189 firstRow=_findRow(pv, start);
190 lastRow=_findRow(pv, end);
204 rows=pv->rows;
205 if((rows+splitFirstRow+splitLastRow)>pv->maxRows) {
209 if(pv->maxRows<UPVEC_MEDIUM_ROWS) {
211 } else if(pv->maxRows<UPVEC_MAX_ROWS) {
223 uprv_memcpy(newVectors, pv->v, (size_t)rows*columns*4);
224 firstRow=newVectors+(firstRow-pv->v);
225 lastRow=newVectors+(lastRow-pv->v);
226 uprv_free(pv->v);
227 pv->v=newVectors;
228 pv->maxRows=newMaxRows;
232 count = (int32_t)((pv->v+rows*columns)-(lastRow+columns));
239 pv->rows=rows+splitFirstRow+splitLastRow;
264 pv->prevRow=(int32_t)((lastRow-(pv->v))/columns);
280 upvec_getValue(const UPropsVectors *pv, UChar32 c, int32_t column) {
284 if(pv->isCompacted || c<0 || c>UPVEC_MAX_CP || column<0 || column>=(pv->columns-2)) {
287 ncpv=(UPropsVectors *)pv;
293 upvec_getRow(const UPropsVectors *pv, int32_t rowIndex,
298 if(pv->isCompacted || rowIndex<0 || rowIndex>=pv->rows) {
302 columns=pv->columns;
303 row=pv->v+rowIndex*columns;
316 const UPropsVectors *pv=(const UPropsVectors *)context;
319 count=columns=pv->columns; /* includes start/limit columns */
336 upvec_compact(UPropsVectors *pv, UPVecCompactHandler *handler, void *context, UErrorCode *pErrorCode) {
349 if(pv->isCompacted) {
354 pv->isCompacted=TRUE;
356 rows=pv->rows;
357 columns=pv->columns;
362 uprv_sortArray(pv->v, rows, columns*4,
363 upvec_compareRows, pv, FALSE, pErrorCode);
373 row=pv->v;
410 row=pv->v;
418 if(count<0 || 0!=uprv_memcmp(row+2, pv->v+count, valueColumns*4)) {
420 uprv_memmove(pv->v+count, row+2, (size_t)valueColumns*4);
424 handler(context, start, limit-1, count, pv->v+count, valueColumns, pErrorCode);
434 pv->rows=count/valueColumns+1;
438 upvec_getArray(const UPropsVectors *pv, int32_t *pRows, int32_t *pColumns) {
439 if(!pv->isCompacted) {
443 *pRows=pv->rows;
446 *pColumns=pv->columns-2;
448 return pv->v;
452 upvec_cloneArray(const UPropsVectors *pv,
460 if(!pv->isCompacted) {
464 byteLength=pv->rows*(pv->columns-2)*4;
470 uprv_memcpy(clonedArray, pv->v, byteLength);
472 *pRows=pv->rows;
475 *pColumns=pv->columns-2;
481 upvec_compactToUTrie2WithRowIndexes(UPropsVectors *pv, UErrorCode *pErrorCode) {
483 upvec_compact(pv, upvec_compactToUTrie2Handler, &toUTrie2, pErrorCode);