jruby/joni — pull request #10 by anba (2013-11-25 14:36:01+00:00)
Title: Update array index after processing the complete character

Case folding a multi-byte string currently leads to an infinite loop (either directly in Analyser#updateStringNodeCaseFoldMultiByte or at a later stage somewhere else) if there is a byte mismatch after the first byte of a character. The fix is relatively straight forward, the `sp` index variable needs to updated after processing the complete character instead of updating it for each byte of the character.
I've added multiple case folding tests to TestU.java, but only the line mentioning `Analyser#THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION` is related to this bug fix. I'm not sure if you also want to merge the other tests.

The bug is also reproducible in JRuby, the following expression leads to the aforementioned infinite loop:
```
Regexp.new("\0A\0A\0A\0A".force_encoding("utf-16be"), Regexp::FIXEDENCODING | Regexp::IGNORECASE)
```