On Fri, 2 Jun 2023 20:57:06 GMT, Phil Race <p...@openjdk.org> wrote:

>> you are right, it cannot be explained by a null text.
>> 
>> so if i understand you correctly, the question is about validity of 
>> `insertionIndex += 1` on lines 463 and 469.
>> 
>> 463: should it be set to text.length() instead?
>> 
>> 469: since text==null, could `insertionIndex = charIndex + 1` be correct?  
>> 
>> And also, is it possible at all that text == null within PrismTextLayout?
>
> No, because that's after the call to  BreakIterator.following(int)
> It is mainly about the assignment on line 456 
>> insertionIndex = charIndex;
> 
> since that is what gets passed to BreakIterator.following(int)
> 
> and charIndex was calculated by
> charIndex = run.getStart() + run.getOffsetAtX(x, trailing);
> so it goes back to that calculation.
> Perhaps a simple validation that charIndex is not out of bounds is all that 
> is needed.

Added check to make sure that insertion index passed to 
BreakIterator.following(int) is not out of bound.
Added this check after line 456 `insertionIndex = charIndex;`, otherwise 
insertionIndex remains as -1 and  `Hitinfo::getInsertionIndex` will calculate 
wrong insertionIndex.
Please check the change.

-------------

PR Review Comment: https://git.openjdk.org/jfx/pull/1091#discussion_r1217947206

Reply via email to