linkedin / Hakawai

A powerful, extensible UITextView.
Apache License 2.0
782 stars 115 forks source link

Fixed possible range mutation of the same attribute #239

Open arielpollack opened 2 years ago

arielpollack commented 2 years ago

UITextView can split an NSAttributedString and set new font attribute if some substring has a different language which needs another font (for example when the mention include both English and Korean, the Korean substring will have another font attribute then the default one set to that UITextView). After the "split", each substring still had the same pointer to the same HKWMentionsAttribute, which repeatedly changed its range to the latest, and then made the buffer include the same HKWMentionsAttribute pointer multiple times and prevented access to all mention attributes.

Here I just created a new attribute and set the range to it, so at least we can iterate all ranges and decide if we want to merge or not, depending on the use case.