diff options
Diffstat (limited to 'runtime/runtime_callbacks.cc')
-rw-r--r-- | runtime/runtime_callbacks.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/runtime/runtime_callbacks.cc b/runtime/runtime_callbacks.cc index f164f7c8ec..339fe822fd 100644 --- a/runtime/runtime_callbacks.cc +++ b/runtime/runtime_callbacks.cc @@ -43,6 +43,17 @@ void RuntimeCallbacks::RemoveMethodInspectionCallback(MethodInspectionCallback* Remove(cb, &method_inspection_callbacks_); } +bool RuntimeCallbacks::IsMethodSafeToJit(ArtMethod* m) { + for (MethodInspectionCallback* cb : method_inspection_callbacks_) { + if (!cb->IsMethodSafeToJit(m)) { + DCHECK(cb->IsMethodBeingInspected(m)) + << "Contract requires that !IsMethodSafeToJit(m) -> IsMethodBeingInspected(m)"; + return false; + } + } + return true; +} + bool RuntimeCallbacks::IsMethodBeingInspected(ArtMethod* m) { for (MethodInspectionCallback* cb : method_inspection_callbacks_) { if (cb->IsMethodBeingInspected(m)) { |