Lines Matching full:start
83 // Requires start<limit,
84 // and all strings of the [start..limit[ elements must be sorted and
87 StringTrieBuilder::writeNode(int32_t start, int32_t limit, int32_t unitIndex) { in writeNode() argument
91 if(unitIndex==getElementStringLength(start)) { in writeNode()
93 value=getElementValue(start++); in writeNode()
94 if(start==limit) { in writeNode()
99 // Now all [start..limit[ strings are longer than unitIndex. in writeNode()
100 int32_t minUnit=getElementUnit(start, unitIndex); in writeNode()
104 int32_t lastUnitIndex=getLimitOfLinearMatch(start, limit-1, unitIndex); in writeNode()
105 writeNode(start, limit, lastUnitIndex); in writeNode()
112 writeElementUnits(start, lastUnitIndex, maxLinearMatchLength); in writeNode()
115 writeElementUnits(start, unitIndex, length); in writeNode()
119 int32_t length=countElementUnits(start, limit, unitIndex); in writeNode()
121 writeBranchSubNode(start, limit, unitIndex, length); in writeNode()
132 // start<limit && all strings longer than unitIndex &&
135 StringTrieBuilder::writeBranchSubNode(int32_t start, int32_t limit, int32_t unitIndex, int32_t leng… in writeBranchSubNode() argument
142 int32_t i=skipElementsBySomeUnits(start, unitIndex, length/2); in writeBranchSubNode()
145 lessThan[ltLength]=writeBranchSubNode(start, i, unitIndex, length/2); in writeBranchSubNode()
148 start=i; in writeBranchSubNode()
151 // For each unit, find its elements array start and whether it has a final value. in writeBranchSubNode()
156 int32_t i=starts[unitNumber]=start; in writeBranchSubNode()
159 isFinal[unitNumber]= start==i-1 && unitIndex+1==getElementStringLength(start); in writeBranchSubNode()
160 start=i; in writeBranchSubNode()
162 // unitNumber==length-1, and the maxUnit elements range is [start..limit[ in writeBranchSubNode()
163 starts[unitNumber]=start; in writeBranchSubNode()
179 writeNode(start, limit, unitIndex+1); in writeBranchSubNode()
180 int32_t offset=write(getElementUnit(start, unitIndex)); in writeBranchSubNode()
183 start=starts[unitNumber]; in writeBranchSubNode()
187 value=getElementValue(start); in writeBranchSubNode()
189 // Write the delta to the start position of the sub-node. in writeBranchSubNode()
193 offset=write(getElementUnit(start, unitIndex)); in writeBranchSubNode()
204 // Requires start<limit,
205 // and all strings of the [start..limit[ elements must be sorted and
208 StringTrieBuilder::makeNode(int32_t start, int32_t limit, int32_t unitIndex, UErrorCode &errorCode)… in makeNode() argument
214 if(unitIndex==getElementStringLength(start)) { in makeNode()
216 value=getElementValue(start++); in makeNode()
217 if(start==limit) { in makeNode()
223 // Now all [start..limit[ strings are longer than unitIndex. in makeNode()
224 int32_t minUnit=getElementUnit(start, unitIndex); in makeNode()
228 int32_t lastUnitIndex=getLimitOfLinearMatch(start, limit-1, unitIndex); in makeNode()
229 Node *nextNode=makeNode(start, limit, lastUnitIndex, errorCode); in makeNode()
236 node=createLinearMatchNode(start, lastUnitIndex, maxLinearMatchLength, nextNode); in makeNode()
239 node=createLinearMatchNode(start, unitIndex, length, nextNode); in makeNode()
242 int32_t length=countElementUnits(start, limit, unitIndex); in makeNode()
244 Node *subNode=makeBranchSubNode(start, limit, unitIndex, length, errorCode); in makeNode()
257 // start<limit && all strings longer than unitIndex &&
260 StringTrieBuilder::makeBranchSubNode(int32_t start, int32_t limit, int32_t unitIndex, in makeBranchSubNode() argument
271 int32_t i=skipElementsBySomeUnits(start, unitIndex, length/2); in makeBranchSubNode()
274 lessThan[ltLength]=makeBranchSubNode(start, i, unitIndex, length/2, errorCode); in makeBranchSubNode()
277 start=i; in makeBranchSubNode()
288 // For each unit, find its elements array start and whether it has a final value. in makeBranchSubNode()
291 int32_t i=start; in makeBranchSubNode()
294 if(start==i-1 && unitIndex+1==getElementStringLength(start)) { in makeBranchSubNode()
295 listNode->add(unit, getElementValue(start)); in makeBranchSubNode()
297 listNode->add(unit, makeNode(start, i, unitIndex+1, errorCode)); in makeBranchSubNode()
299 start=i; in makeBranchSubNode()
301 // unitNumber==length-1, and the maxUnit elements range is [start..limit[ in makeBranchSubNode()
302 UChar unit=getElementUnit(start, unitIndex); in makeBranchSubNode()
303 if(start==limit-1 && unitIndex+1==getElementStringLength(start)) { in makeBranchSubNode()
304 listNode->add(unit, getElementValue(start)); in makeBranchSubNode()
306 listNode->add(unit, makeNode(start, limit, unitIndex+1, errorCode)); in makeBranchSubNode()
543 // Write the delta to the start position of the sub-node. in write()