| Index: runtime/vm/isolate.h
|
| diff --git a/runtime/vm/isolate.h b/runtime/vm/isolate.h
|
| index ac192ff14b79941aeef30dad1876ad816978b465..5f721a3cf5de9fc0655976ed3c53d083facda334 100644
|
| --- a/runtime/vm/isolate.h
|
| +++ b/runtime/vm/isolate.h
|
| @@ -624,16 +624,29 @@ class Isolate : public BaseIsolate {
|
| all_classes_finalized_ = value;
|
| }
|
|
|
| - void IncrCHAInvalidationGen() { cha_invalidation_gen_++; }
|
| - void ResetCHAInvalidationGen() { cha_invalidation_gen_ = 0; }
|
| + static const uint32_t kInvalidGen = 0;
|
| +
|
| + void IncrCHAInvalidationGen() {
|
| + cha_invalidation_gen_++;
|
| + if (cha_invalidation_gen_ == kInvalidGen) cha_invalidation_gen_++;
|
| + }
|
| + void ResetCHAInvalidationGen() { cha_invalidation_gen_ = kInvalidGen; }
|
| uint32_t cha_invalidation_gen() const { return cha_invalidation_gen_; }
|
|
|
| - void IncrFieldInvalidationGen() { field_invalidation_gen_++; }
|
| - void ResetFieldInvalidationGen() { field_invalidation_gen_ = 0; }
|
| +
|
| + void IncrFieldInvalidationGen() {
|
| + field_invalidation_gen_++;
|
| + if (field_invalidation_gen_ == kInvalidGen) field_invalidation_gen_++;
|
| + }
|
| +
|
| + void ResetFieldInvalidationGen() { field_invalidation_gen_ = kInvalidGen; }
|
| uint32_t field_invalidation_gen() const { return field_invalidation_gen_; }
|
|
|
| - void IncrPrefixInvalidationGen() { prefix_invalidation_gen_++; }
|
| - void ResetPrefixInvalidationGen() { prefix_invalidation_gen_ = 0; }
|
| + void IncrPrefixInvalidationGen() {
|
| + prefix_invalidation_gen_++;
|
| + if (prefix_invalidation_gen_ == kInvalidGen) prefix_invalidation_gen_++;
|
| + }
|
| + void ResetPrefixInvalidationGen() { prefix_invalidation_gen_ = kInvalidGen; }
|
| uint32_t prefix_invalidation_gen() const { return prefix_invalidation_gen_; }
|
|
|
| RawObject* InvokePendingServiceExtensionCalls();
|
|
|