< 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 >