Index: runtime/vm/regexp_assembler_ir.h |
diff --git a/runtime/vm/regexp_assembler_ir.h b/runtime/vm/regexp_assembler_ir.h |
index 8dbb4abe99251661fa058fe818ad2fd3be49ffc9..9945cedb205557f168240ccea735a60418e1a360 100644 |
--- a/runtime/vm/regexp_assembler_ir.h |
+++ b/runtime/vm/regexp_assembler_ir.h |
@@ -32,6 +32,7 @@ class IRRegExpMacroAssembler : public RegExpMacroAssembler { |
intptr_t capture_count, |
const ParsedFunction* parsed_function, |
const ZoneGrowableArray<const ICData*>& ic_data_array, |
+ intptr_t osr_id, |
Zone* zone); |
virtual ~IRRegExpMacroAssembler(); |
@@ -284,8 +285,8 @@ class IRRegExpMacroAssembler : public RegExpMacroAssembler { |
// Load a number of characters starting from index in the pattern string. |
Value* LoadCodeUnitsAt(LocalVariable* index, intptr_t character_count); |
- // Check whether preemption has been requested. |
- void CheckPreemption(); |
+ // Check whether preemption has been requested. Also serves as an OSR entry. |
+ void CheckPreemption(bool is_backtrack); |
// Byte size of chars in the string to match (decided by the Mode argument) |
inline intptr_t char_size() { return static_cast<int>(mode_); } |
@@ -343,7 +344,7 @@ class IRRegExpMacroAssembler : public RegExpMacroAssembler { |
// A utility class tracking ids of various objects such as blocks, temps, etc. |
class IdAllocator : public ValueObject { |
public: |
- IdAllocator() : next_id(0) {} |
+ explicit IdAllocator(intptr_t first_id = 0) : next_id(first_id) {} |
intptr_t Count() const { return next_id; } |
intptr_t Alloc(intptr_t count = 1) { |