Lines Matching refs:runs

68      * The implementation of the access to same-level-runs and of the reordering
74 * same-level-runs is created. Reordering then is done on this vector.
79 * This is inefficient if there are many very short runs. If the average run
163 lineBidi.runs = new BidiRun[0];
308 /* this is done based on runs rather than on levels since levels have
315 iRun = bidiBase.runs[0];
318 iRun = bidiBase.runs[i];
335 bidiBase.runs = bidiBase.simpleRuns;
339 bidiBase.runs[0] = new BidiRun(0, bidiBase.length, level);
342 /* reorder the runs array (L2) ---------------------------------------------- */
345 * Reorder the same-level runs in the runs array.
353 * each sequence of same-level runs consists of only one run each, we
359 * in the last reordering the sequence of the runs at this level or higher
360 * will be all runs, and we don't need the elaborate loop to search for them.
372 * this run and can --runCount. If it is later part of the all-runs
382 BidiRun[] runs;
394 runs = bidiBase.runs;
406 /* loop for all sequences of runs */
408 /* look for a sequence of runs that are all at >=maxLevel */
410 while (firstRun < runCount && levels[runs[firstRun].start] < maxLevel) {
414 break; /* no more such runs */
419 levels[runs[limitRun].start]>=maxLevel; ) {}
421 /* Swap the entire sequence of runs from firstRun to limitRun-1. */
424 tempRun = runs[firstRun];
425 runs[firstRun] = runs[endRun];
426 runs[endRun] = tempRun;
432 break; /* no more such runs */
448 /* Swap the entire sequence of all runs. (endRun==runCount) */
450 tempRun = runs[firstRun];
451 runs[firstRun] = runs[runCount];
452 runs[runCount] = tempRun;
459 /* compute the runs array --------------------------------------------------- */
462 BidiRun[] runs = bidiBase.runs;
466 length = runs[i].limit - visualStart;
467 logicalStart = runs[i].start;
478 * Compute the runs array from the levels array.
480 * and the runs are reordered.
481 * Odd-level runs have visualStart on their visual right edge and
490 * This method returns immediately if the runs are already set. This
518 /* count the runs, there is at least one non-WS run, and limit>0 */
536 /* allocate and set the runs */
537 BidiRun[] runs;
549 runs = bidiBase.runsMemory;
551 /* set the runs */
576 runs[runIndex] = new BidiRun(start, i - start, level);
582 runs[runIndex] = new BidiRun(limit, length - limit, bidiBase.paraLevel);
591 bidiBase.runs = runs;
600 runs[i].level = levels[runs[i].start];
601 limit = (runs[i].limit += limit);
610 runs[trailingRun].level = bidiBase.paraLevel;
622 bidiBase.runs[runIndex].insertRemove |= point.flag;
634 bidiBase.runs[runIndex].insertRemove--;
712 break; /* no more such runs */
747 /* fill a visual-to-logical index map using the runs[] */
748 BidiRun[] runs = bidiBase.runs;
757 logicalStart = runs[j].start;
758 visualLimit = runs[j].limit;
759 if (runs[j].isEvenRun()) {
775 runs = bidiBase.runs;
778 insertRemove = runs[i].insertRemove;
789 insertRemove = runs[i].insertRemove;
794 visualStart = i > 0 ? runs[i-1].limit : 0;
795 for (j = runs[i].limit - 1; j >= visualStart && markFound > 0; j--) {
809 runs = bidiBase.runs;
814 length = runs[i].limit - visualStart;
815 insertRemove = runs[i].insertRemove;
823 visualLimit = runs[i].limit;
829 logicalStart = runs[i].start;
830 evenRun = runs[i].isEvenRun();