mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 830783 - Part c: Various rooting in RegExp.cpp; r=terrence
This commit is contained in:
parent
bbef5222c4
commit
7f2b3065c4
@ -30,7 +30,7 @@ class RegExpMatchBuilder
|
||||
}
|
||||
|
||||
public:
|
||||
RegExpMatchBuilder(JSContext *cx, JSObject *array) : cx(cx), array(cx, array) {}
|
||||
RegExpMatchBuilder(JSContext *cx, HandleObject array) : cx(cx), array(cx, array) {}
|
||||
|
||||
bool append(uint32_t index, HandleValue v) {
|
||||
JS_ASSERT(!array->getOps()->getElement);
|
||||
@ -43,7 +43,7 @@ class RegExpMatchBuilder
|
||||
return setProperty(cx->names().index, value);
|
||||
}
|
||||
|
||||
bool setInput(JSString *str) {
|
||||
bool setInput(HandleString str) {
|
||||
JS_ASSERT(str);
|
||||
RootedValue value(cx, StringValue(str));
|
||||
return setProperty(cx->names().input, value);
|
||||
@ -84,7 +84,7 @@ js::CreateRegExpMatchResult(JSContext *cx, HandleString input_, StableCharPtr ch
|
||||
for (size_t i = 0; i < numPairs; ++i) {
|
||||
const MatchPair &pair = matches[i];
|
||||
|
||||
JSString *captured;
|
||||
RootedString captured(cx);
|
||||
if (pair.isUndefined()) {
|
||||
JS_ASSERT(i != 0); /* Since we had a match, first pair must be present. */
|
||||
if (!builder.append(i, undefinedValue))
|
||||
@ -114,9 +114,9 @@ js::CreateRegExpMatchResult(JSContext *cx, HandleString string, MatchPairs &matc
|
||||
return CreateRegExpMatchResult(cx, input, input->chars(), input->length(), matches, rval);
|
||||
}
|
||||
|
||||
RegExpRunStatus
|
||||
static RegExpRunStatus
|
||||
ExecuteRegExpImpl(JSContext *cx, RegExpStatics *res, RegExpShared &re,
|
||||
JSLinearString *input, StableCharPtr chars, size_t length,
|
||||
Handle<JSLinearString*> input, StableCharPtr chars, size_t length,
|
||||
size_t *lastIndex, MatchConduit &matches)
|
||||
{
|
||||
RegExpRunStatus status;
|
||||
@ -174,7 +174,7 @@ js::ExecuteRegExpLegacy(JSContext *cx, RegExpStatics *res, RegExpObject &reobj,
|
||||
|
||||
/* Note: returns the original if no escaping need be performed. */
|
||||
static JSAtom *
|
||||
EscapeNakedForwardSlashes(JSContext *cx, JSAtom *unescaped)
|
||||
EscapeNakedForwardSlashes(JSContext *cx, HandleAtom unescaped)
|
||||
{
|
||||
size_t oldLen = unescaped->length();
|
||||
const jschar *oldChars = unescaped->chars();
|
||||
@ -228,7 +228,7 @@ CompileRegExpObject(JSContext *cx, RegExpObjectBuilder &builder, CallArgs args)
|
||||
return true;
|
||||
}
|
||||
|
||||
Value sourceValue = args[0];
|
||||
RootedValue sourceValue(cx, args[0]);
|
||||
|
||||
/*
|
||||
* If we get passed in an object whose internal [[Class]] property is
|
||||
@ -293,7 +293,7 @@ CompileRegExpObject(JSContext *cx, RegExpObjectBuilder &builder, CallArgs args)
|
||||
|
||||
RegExpFlag flags = RegExpFlag(0);
|
||||
if (args.hasDefined(1)) {
|
||||
JSString *flagStr = ToString<CanGC>(cx, args[1]);
|
||||
RootedString flagStr(cx, ToString<CanGC>(cx, args[1]));
|
||||
if (!flagStr)
|
||||
return false;
|
||||
args[1].setString(flagStr);
|
||||
@ -367,7 +367,7 @@ regexp_toString_impl(JSContext *cx, CallArgs args)
|
||||
{
|
||||
JS_ASSERT(IsRegExp(args.thisv()));
|
||||
|
||||
JSString *str = args.thisv().toObject().asRegExp().toString(cx);
|
||||
UnrootedString str = args.thisv().toObject().asRegExp().toString(cx);
|
||||
if (!str)
|
||||
return false;
|
||||
|
||||
@ -619,7 +619,7 @@ ExecuteRegExp(JSContext *cx, CallArgs args, MatchConduit &matches)
|
||||
RootedObject regexp(cx, &args.thisv().toObject());
|
||||
|
||||
/* Step 2. */
|
||||
RootedString string(cx, ToString<CanGC>(cx, (args.length() > 0) ? args[0] : UndefinedValue()));
|
||||
RootedString string(cx, ToString<CanGC>(cx, args.get(0)));
|
||||
if (!string)
|
||||
return RegExpRunStatus_Error;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user