mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1027528 part 2 - Make AtomizeString, StringBuffer::finishAtom handle Latin1 strings. r=luke
This commit is contained in:
parent
f892333a69
commit
16c5b87a65
@ -430,11 +430,14 @@ js::AtomizeString(ExclusiveContext *cx, JSString *str,
|
||||
return &atom;
|
||||
}
|
||||
|
||||
const jschar *chars = str->getChars(cx);
|
||||
if (!chars)
|
||||
JSLinearString *linear = str->ensureLinear(cx);
|
||||
if (!linear)
|
||||
return nullptr;
|
||||
|
||||
return AtomizeAndCopyChars(cx, chars, str->length(), ib);
|
||||
JS::AutoCheckCannotGC nogc;
|
||||
return linear->hasLatin1Chars()
|
||||
? AtomizeAndCopyChars(cx, linear->latin1Chars(nogc), linear->length(), ib)
|
||||
: AtomizeAndCopyChars(cx, linear->twoByteChars(nogc), linear->length(), ib);
|
||||
}
|
||||
|
||||
JSAtom *
|
||||
|
@ -118,6 +118,12 @@ StringBuffer::finishAtom()
|
||||
if (len == 0)
|
||||
return cx->names().empty;
|
||||
|
||||
if (isLatin1()) {
|
||||
JSAtom *atom = AtomizeChars(cx, latin1Chars().begin(), len);
|
||||
latin1Chars().clear();
|
||||
return atom;
|
||||
}
|
||||
|
||||
JSAtom *atom = AtomizeChars(cx, twoByteChars().begin(), len);
|
||||
twoByteChars().clear();
|
||||
return atom;
|
||||
|
Loading…
Reference in New Issue
Block a user