diff options
Diffstat (limited to 'libass/ass_utils.c')
-rw-r--r-- | libass/ass_utils.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libass/ass_utils.c b/libass/ass_utils.c index fef8030..ce57bb3 100644 --- a/libass/ass_utils.c +++ b/libass/ass_utils.c @@ -437,11 +437,12 @@ static uint32_t ass_read_utf16be(uint8_t **src, size_t bytes) goto too_short; uint32_t cp2 = ((*src)[0] << 8) | (*src)[1]; - *src += 2; if (cp2 < 0xDC00 || cp2 > 0xDFFF) return 0xFFFD; + *src += 2; + cp = 0x10000 + ((cp - 0xD800) << 10) + (cp2 - 0xDC00); } |