Bug 637859. Anchor a string for a bit. r=cdleary, a=bsmedberg

This commit is contained in:
Jeff Walden 2011-03-03 09:37:18 -08:00
Родитель d545ce29a8
Коммит fbf3446fa4
1 изменённых файлов: 6 добавлений и 4 удалений

Просмотреть файл

@ -640,6 +640,7 @@ EscapeNakedForwardSlashes(JSContext *cx, JSString *unescaped)
const jschar *oldChars = unescaped->getChars(cx);
if (!oldChars)
return NULL;
JS::Anchor<JSString *> anchor(unescaped);
js::Vector<jschar, 128> newChars(cx);
for (const jschar *it = oldChars; it < oldChars + oldLen; ++it) {
@ -647,13 +648,14 @@ EscapeNakedForwardSlashes(JSContext *cx, JSString *unescaped)
if (!newChars.length()) {
if (!newChars.reserve(oldLen + 1))
return NULL;
newChars.append(oldChars, size_t(it - oldChars));
JS_ALWAYS_TRUE(newChars.append(oldChars, size_t(it - oldChars)));
}
newChars.append('\\');
if (!newChars.append('\\'))
return NULL;
}
if (newChars.length())
newChars.append(*it);
if (!newChars.empty() && !newChars.append(*it))
return NULL;
}
if (newChars.length()) {