< prev index next >

src/hotspot/share/jvmci/jvmciEnv.hpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 100,113 **** // Compilation result values const char* _failure_reason; bool _retryable; ! // Cache JVMTI state ! bool _jvmti_can_hotswap_or_post_breakpoint; ! bool _jvmti_can_access_local_variables; ! bool _jvmti_can_post_on_exceptions; // Implementation methods for loading and constant pool access. static Klass* get_klass_by_name_impl(Klass* accessing_klass, const constantPoolHandle& cpool, Symbol* klass_name, --- 100,116 ---- // Compilation result values const char* _failure_reason; bool _retryable; ! // Cache JVMTI state. Defined as bytes so that reading them from Java ! // via Unsafe is well defined (the C++ type for bool is implementation ! // defined and may not be the same as a Java boolean). ! jbyte _jvmti_can_hotswap_or_post_breakpoint; ! jbyte _jvmti_can_access_local_variables; ! jbyte _jvmti_can_post_on_exceptions; ! jbyte _jvmti_can_pop_frame; // Implementation methods for loading and constant pool access. static Klass* get_klass_by_name_impl(Klass* accessing_klass, const constantPoolHandle& cpool, Symbol* klass_name,
*** 142,151 **** --- 145,160 ---- JVMCIEnv* env, char** failure_detail); public: CompileTask* task() { return _task; } + bool jvmti_state_changed() const; + bool jvmti_can_hotswap_or_post_breakpoint() const { return _jvmti_can_hotswap_or_post_breakpoint != 0; } + bool jvmti_can_access_local_variables() const { return _jvmti_can_access_local_variables != 0; } + bool jvmti_can_post_on_exceptions() const { return _jvmti_can_post_on_exceptions != 0; } + bool jvmti_can_pop_frame() const { return _jvmti_can_pop_frame != 0; } + const char* failure_reason() { return _failure_reason; } bool retryable() { return _retryable; } void set_failure(const char* reason, bool retryable) { _failure_reason = reason;
< prev index next >