зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1081175 - Replace vector instead of appending to it in ChoiceNode::FilterASCII to fix a bad performance issue. r=bhackett
This commit is contained in:
Родитель
487b07800b
Коммит
bd95f4b618
|
@ -1001,7 +1001,7 @@ ChoiceNode::FilterASCII(int depth, bool ignore_case)
|
|||
}
|
||||
}
|
||||
|
||||
alternatives_.appendAll(new_alternatives);
|
||||
alternatives_ = Move(new_alternatives);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
var input = "webkit-search-cancel-button-aaaaaaa-bbbbb-ccccccc-dddddddd,"
|
||||
var bad_regex = '([a-u-]|\\u0080|\\u0100)*[d]';
|
||||
|
||||
function forceUnicode(s) {
|
||||
return ('\uffff' + s).replace(/^\uffff/, '');
|
||||
}
|
||||
function testRegex(input) {
|
||||
for (var i = 0; i < input.length; i++) {
|
||||
var sub = input.substring(0, i + 1);
|
||||
var res = sub.match(bad_regex);
|
||||
if (i >= 50) {
|
||||
assertEq(res.length, 2);
|
||||
assertEq(res[1], sub.substr(-2, 1));
|
||||
} else {
|
||||
assertEq(res, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
testRegex(input);
|
||||
testRegex(forceUnicode(input));
|
Загрузка…
Ссылка в новой задаче