# HG changeset patch # User herrick # Date 1539037385 14400 # Node ID cf8d1b2388b896559086e97f95ec582af5086fdf # Parent 20568f1e1aa7da82aed86247fb2cb077cee39376# Parent 2a85adf3c330e950db0d660c69be77658c1bdfb8 Merge diff -r 20568f1e1aa7 -r cf8d1b2388b8 make/Images.gmk --- a/make/Images.gmk Mon Oct 08 18:17:37 2018 -0400 +++ b/make/Images.gmk Mon Oct 08 18:23:05 2018 -0400 @@ -90,24 +90,32 @@ $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \ $(call DependOnVariable, JDK_MODULES_LIST) $(BASE_RELEASE_FILE) - $(ECHO) Creating jdk image + $(call LogWarn, Creating jdk image) $(RM) -r $(JDK_IMAGE_DIR) $(call ExecuteWithLog, $(SUPPORT_OUTPUTDIR)/images/jdk, \ $(JLINK_TOOL) --add-modules $(JDK_MODULES_LIST) \ $(JLINK_JDK_EXTRA_OPTS) \ --output $(JDK_IMAGE_DIR) \ ) + ifeq ($(BUILD_CDS_ARCHIVE), true) + $(call LogWarn, Creating CDS archive for jdk image) + $(JDK_IMAGE_DIR)/bin/java -Xshare:dump -Xmx128M -Xms128M $(LOG_INFO) + endif $(TOUCH) $@ $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \ $(call DependOnVariable, JRE_MODULES_LIST) $(BASE_RELEASE_FILE) - $(ECHO) Creating legacy jre image + $(call LogWarn, Creating legacy jre image) $(RM) -r $(JRE_IMAGE_DIR) $(call ExecuteWithLog, $(SUPPORT_OUTPUTDIR)/images/jre, \ $(JLINK_TOOL) --add-modules $(JRE_MODULES_LIST) \ $(JLINK_JRE_EXTRA_OPTS) \ --output $(JRE_IMAGE_DIR) \ ) + ifeq ($(BUILD_CDS_ARCHIVE), true) + $(call LogWarn, Creating CDS archive for jre image) + $(JRE_IMAGE_DIR)/bin/java -Xshare:dump -Xmx128M -Xms128M $(LOG_INFO) + endif $(TOUCH) $@ TOOL_JRE_TARGETS := $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) diff -r 20568f1e1aa7 -r cf8d1b2388b8 make/autoconf/configure.ac --- a/make/autoconf/configure.ac Mon Oct 08 18:17:37 2018 -0400 +++ b/make/autoconf/configure.ac Mon Oct 08 18:23:05 2018 -0400 @@ -233,6 +233,7 @@ JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST JDKOPT_EXCLUDE_TRANSLATIONS JDKOPT_ENABLE_DISABLE_MANPAGES +JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE ############################################################################### # diff -r 20568f1e1aa7 -r cf8d1b2388b8 make/autoconf/hotspot.m4 --- a/make/autoconf/hotspot.m4 Mon Oct 08 18:17:37 2018 -0400 +++ b/make/autoconf/hotspot.m4 Mon Oct 08 18:23:05 2018 -0400 @@ -252,14 +252,6 @@ AC_MSG_ERROR([Invalid value for --enable-cds: $enable_cds]) fi - # Disable CDS on AIX. - if test "x$OPENJDK_TARGET_OS" = "xaix"; then - ENABLE_CDS="false" - if test "x$enable_cds" = "xyes"; then - AC_MSG_ERROR([CDS is currently not supported on AIX. Remove --enable-cds.]) - fi - fi - AC_SUBST(ENABLE_CDS) ]) @@ -489,6 +481,34 @@ # All variants but minimal (and custom) get these features NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES cmsgc g1gc parallelgc serialgc epsilongc jni-check jvmti management nmt services vm-structs" + # Disable CDS on AIX. + if test "x$OPENJDK_TARGET_OS" = "xaix"; then + ENABLE_CDS="false" + if test "x$enable_cds" = "xyes"; then + AC_MSG_ERROR([CDS is currently not supported on AIX. Remove --enable-cds.]) + fi + fi + + # Disable CDS if user requested it with --with-jvm-features=-cds. + DISABLE_CDS=`$ECHO $DISABLED_JVM_FEATURES | $GREP cds` + if test "x$DISABLE_CDS" = "xcds"; then + ENABLE_CDS="false" + if test "x$enable_cds" = "xyes"; then + AC_MSG_ERROR([CDS was disabled by --with-jvm-features=-cds. Remove --enable-cds.]) + fi + fi + + # Disable CDS for zero, minimal, core.. + if HOTSPOT_CHECK_JVM_VARIANT(zero) || HOTSPOT_CHECK_JVM_VARIANT(minimal) || HOTSPOT_CHECK_JVM_VARIANT(core); then + # ..except when the user explicitely requested it with --enable-jvm-features + if ! HOTSPOT_CHECK_JVM_FEATURE(cds); then + ENABLE_CDS="false" + if test "x$enable_cds" = "xyes"; then + AC_MSG_ERROR([CDS not implemented for variants zero, minimal, core. Remove --enable-cds.]) + fi + fi + fi + AC_MSG_CHECKING([if cds should be enabled]) if test "x$ENABLE_CDS" = "xtrue"; then if test "x$enable_cds" = "xyes"; then diff -r 20568f1e1aa7 -r cf8d1b2388b8 make/autoconf/jdk-options.m4 --- a/make/autoconf/jdk-options.m4 Mon Oct 08 18:17:37 2018 -0400 +++ b/make/autoconf/jdk-options.m4 Mon Oct 08 18:23:05 2018 -0400 @@ -527,7 +527,7 @@ # Check if it's likely that it's possible to generate the classlist. Depending # on exact jvm configuration it could be possible anyway. - if test "x$ENABLE_CDS" = "xtrue" && (HOTSPOT_CHECK_JVM_VARIANT(server) || HOTSPOT_CHECK_JVM_VARIANT(client)); then + if test "x$ENABLE_CDS" = "xtrue" && (HOTSPOT_CHECK_JVM_VARIANT(server) || HOTSPOT_CHECK_JVM_VARIANT(client) || HOTSPOT_CHECK_JVM_FEATURE(cds)); then ENABLE_GENERATE_CLASSLIST_POSSIBLE="true" else ENABLE_GENERATE_CLASSLIST_POSSIBLE="false" @@ -605,3 +605,37 @@ AC_SUBST(BUILD_MANPAGES) ]) + +################################################################################ +# +# Disable the default CDS archive generation +# cross compilation - disabled +# +AC_DEFUN([JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE], +[ + AC_ARG_ENABLE([cds-archive], [AS_HELP_STRING([--disable-cds-archive], + [Set to disable generation of a default CDS archive in the product image @<:@enabled@:>@])]) + + AC_MSG_CHECKING([if a default CDS archive should be generated]) + if test "x$ENABLE_CDS" = "xfalse"; then + AC_MSG_RESULT([no, because CDS is disabled]) + BUILD_CDS_ARCHIVE="false" + elif test "x$COMPILE_TYPE" = "xcross"; then + AC_MSG_RESULT([no, not possible with cross compilation]) + BUILD_CDS_ARCHIVE="false" + elif test "x$enable_cds_archive" = "xyes"; then + AC_MSG_RESULT([yes, forced]) + BUILD_CDS_ARCHIVE="true" + elif test "x$enable_cds_archive" = "x"; then + AC_MSG_RESULT([yes]) + BUILD_CDS_ARCHIVE="true" + elif test "x$enable_cds_archive" = "xno"; then + AC_MSG_RESULT([no, forced]) + BUILD_CDS_ARCHIVE="false" + else + AC_MSG_RESULT([no]) + AC_MSG_ERROR([--enable-cds_archive can only be yes/no or empty]) + fi + + AC_SUBST(BUILD_CDS_ARCHIVE) +]) diff -r 20568f1e1aa7 -r cf8d1b2388b8 make/autoconf/spec.gmk.in --- a/make/autoconf/spec.gmk.in Mon Oct 08 18:17:37 2018 -0400 +++ b/make/autoconf/spec.gmk.in Mon Oct 08 18:23:05 2018 -0400 @@ -309,6 +309,8 @@ BUILD_MANPAGES := @BUILD_MANPAGES@ +BUILD_CDS_ARCHIVE := @BUILD_CDS_ARCHIVE@ + # The boot jdk to use. This is overridden in bootcycle-spec.gmk. Make sure to keep # it in sync. BOOT_JDK:=@BOOT_JDK@ diff -r 20568f1e1aa7 -r cf8d1b2388b8 make/scripts/compare.sh --- a/make/scripts/compare.sh Mon Oct 08 18:17:37 2018 -0400 +++ b/make/scripts/compare.sh Mon Oct 08 18:23:05 2018 -0400 @@ -385,6 +385,7 @@ ! -name "JavaUpdater" ! -name "JavaWSApplicationStub" \ ! -name "jspawnhelper" ! -name "JavawsLauncher" ! -name "*.a" \ ! -name "finish_installation" ! -name "Sparkle" ! -name "*.tar.gz" \ + ! -name "classes.jsa" \ | $GREP -v "./bin/" | $SORT | $FILTER) echo Other files with binary differences... diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp --- a/src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/cpu/x86/c1_LIRGenerator_x86.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -688,7 +688,7 @@ } LIR_Opr result = new_register(T_INT); __ cmove(lir_cond_equal, LIR_OprFact::intConst(1), LIR_OprFact::intConst(0), - result, type); + result, T_INT); return result; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/aot/aotCodeHeap.cpp --- a/src/hotspot/share/aot/aotCodeHeap.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/aot/aotCodeHeap.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -436,14 +436,19 @@ SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_new_instance", address, JVMCIRuntime::new_instance); SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_new_array", address, JVMCIRuntime::new_array); SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_new_multi_array", address, JVMCIRuntime::new_multi_array); + SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_dynamic_new_instance", address, JVMCIRuntime::dynamic_new_instance); SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_dynamic_new_array", address, JVMCIRuntime::dynamic_new_array); + SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_new_instance_or_null", address, JVMCIRuntime::new_instance_or_null); + SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_new_array_or_null", address, JVMCIRuntime::new_array_or_null); + SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_new_multi_array_or_null", address, JVMCIRuntime::new_multi_array_or_null); + SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_dynamic_new_instance_or_null", address, JVMCIRuntime::dynamic_new_instance_or_null); + SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_dynamic_new_array_or_null", address, JVMCIRuntime::dynamic_new_array_or_null); SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_validate_object", address, JVMCIRuntime::validate_object); #if INCLUDE_G1GC SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_write_barrier_pre", address, JVMCIRuntime::write_barrier_pre); SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_write_barrier_post", address, JVMCIRuntime::write_barrier_post); #endif SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_identity_hash_code", address, JVMCIRuntime::identity_hash_code); - SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_dynamic_new_instance", address, JVMCIRuntime::dynamic_new_instance); SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_thread_is_interrupted", address, JVMCIRuntime::thread_is_interrupted); SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_exception_handler_for_pc", address, JVMCIRuntime::exception_handler_for_pc); SET_AOT_GLOBAL_SYMBOL_VALUE("_aot_jvmci_runtime_test_deoptimize_call_int", address, JVMCIRuntime::test_deoptimize_call_int); @@ -735,6 +740,14 @@ NOT_PRODUCT( klasses_seen++; ) + // AOT does not support custom class loaders. + ClassLoaderData* cld = ik->class_loader_data(); + if (!cld->is_builtin_class_loader_data()) { + log_trace(aot, class, load)("skip class %s for custom classloader %s (%p) tid=" INTPTR_FORMAT, + ik->internal_name(), cld->loader_name(), cld, p2i(thread)); + return false; + } + AOTKlassData* klass_data = find_klass(ik); if (klass_data == NULL) { return false; @@ -759,9 +772,10 @@ assert(klass_data->_class_id < _class_count, "invalid class id"); AOTClass* aot_class = &_classes[klass_data->_class_id]; - if (aot_class->_classloader != NULL && aot_class->_classloader != ik->class_loader_data()) { - log_trace(aot, class, load)("class %s in %s already loaded for classloader %p vs %p tid=" INTPTR_FORMAT, - ik->internal_name(), _lib->name(), aot_class->_classloader, ik->class_loader_data(), p2i(thread)); + ClassLoaderData* aot_cld = aot_class->_classloader; + if (aot_cld != NULL && aot_cld != cld) { + log_trace(aot, class, load)("class %s in %s already loaded for classloader %s (%p) vs %s (%p) tid=" INTPTR_FORMAT, + ik->internal_name(), _lib->name(), aot_cld->loader_name(), aot_cld, cld->loader_name(), cld, p2i(thread)); NOT_PRODUCT( aot_klasses_cl_miss++; ) return false; } @@ -774,9 +788,9 @@ NOT_PRODUCT( aot_klasses_found++; ) - log_trace(aot, class, load)("found %s in %s for classloader %p tid=" INTPTR_FORMAT, ik->internal_name(), _lib->name(), ik->class_loader_data(), p2i(thread)); + log_trace(aot, class, load)("found %s in %s for classloader %s (%p) tid=" INTPTR_FORMAT, ik->internal_name(), _lib->name(), cld->loader_name(), cld, p2i(thread)); - aot_class->_classloader = ik->class_loader_data(); + aot_class->_classloader = cld; // Set klass's Resolve (second) got cell. _klasses_got[klass_data->_got_index] = ik; if (ik->is_initialized()) { diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/gc/shared/genCollectedHeap.cpp --- a/src/hotspot/share/gc/shared/genCollectedHeap.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/gc/shared/genCollectedHeap.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -649,9 +649,6 @@ // a whole heap collection. complete = complete || collected_old; - print_heap_change(young_prev_used, old_prev_used); - MetaspaceUtils::print_metaspace_change(metadata_prev_used); - // Adjust generation sizes. if (collected_old) { _old_gen->compute_new_size(); @@ -667,6 +664,9 @@ update_full_collections_completed(); } + print_heap_change(young_prev_used, old_prev_used); + MetaspaceUtils::print_metaspace_change(metadata_prev_used); + // Track memory usage and detect low memory after GC finishes MemoryService::track_memory_usage(); diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/gc/shared/memAllocator.cpp --- a/src/hotspot/share/gc/shared/memAllocator.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/gc/shared/memAllocator.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -120,27 +120,22 @@ return false; } - if (!_overhead_limit_exceeded) { + const char* message = _overhead_limit_exceeded ? "GC overhead limit exceeded" : "Java heap space"; + if (!THREAD->in_retryable_allocation()) { // -XX:+HeapDumpOnOutOfMemoryError and -XX:OnOutOfMemoryError support - report_java_out_of_memory("Java heap space"); + report_java_out_of_memory(message); if (JvmtiExport::should_post_resource_exhausted()) { JvmtiExport::post_resource_exhausted( JVMTI_RESOURCE_EXHAUSTED_OOM_ERROR | JVMTI_RESOURCE_EXHAUSTED_JAVA_HEAP, - "Java heap space"); + message); } - THROW_OOP_(Universe::out_of_memory_error_java_heap(), true); + oop exception = _overhead_limit_exceeded ? + Universe::out_of_memory_error_gc_overhead_limit() : + Universe::out_of_memory_error_java_heap(); + THROW_OOP_(exception, true); } else { - // -XX:+HeapDumpOnOutOfMemoryError and -XX:OnOutOfMemoryError support - report_java_out_of_memory("GC overhead limit exceeded"); - - if (JvmtiExport::should_post_resource_exhausted()) { - JvmtiExport::post_resource_exhausted( - JVMTI_RESOURCE_EXHAUSTED_OOM_ERROR | JVMTI_RESOURCE_EXHAUSTED_JAVA_HEAP, - "GC overhead limit exceeded"); - } - - THROW_OOP_(Universe::out_of_memory_error_gc_overhead_limit(), true); + THROW_OOP_(Universe::out_of_memory_error_retry(), true); } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/gc/shared/oopStorage.cpp --- a/src/hotspot/share/gc/shared/oopStorage.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/gc/shared/oopStorage.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -727,7 +727,7 @@ _allocation_mutex(allocation_mutex), _active_mutex(active_mutex), _allocation_count(0), - _concurrent_iteration_active(false) + _concurrent_iteration_count(0) { _active_array->increment_refcount(); assert(_active_mutex->rank() < _allocation_mutex->rank(), @@ -769,7 +769,7 @@ // blocks available for deletion. while (reduce_deferred_updates()) {} // Don't interfere with a concurrent iteration. - if (_concurrent_iteration_active) return; + if (_concurrent_iteration_count > 0) return; // Delete empty (and otherwise deletable) blocks from end of _allocation_list. for (Block* block = _allocation_list.tail(); (block != NULL) && block->is_deletable(); @@ -804,7 +804,7 @@ { MutexLockerEx aml(_active_mutex, Mutex::_no_safepoint_check_flag); // Don't interfere with a concurrent iteration. - if (_concurrent_iteration_active) return; + if (_concurrent_iteration_count > 0) return; _active_array->remove(block); } // Remove block from _allocation_list and delete it. @@ -875,7 +875,7 @@ _concurrent(concurrent) { assert(estimated_thread_count > 0, "estimated thread count must be positive"); - update_iteration_state(true); + update_concurrent_iteration_count(1); // Get the block count *after* iteration state updated, so concurrent // empty block deletion is suppressed and can't reduce the count. But // ensure the count we use was written after the block with that count @@ -885,14 +885,14 @@ OopStorage::BasicParState::~BasicParState() { _storage->relinquish_block_array(_active_array); - update_iteration_state(false); + update_concurrent_iteration_count(-1); } -void OopStorage::BasicParState::update_iteration_state(bool value) { +void OopStorage::BasicParState::update_concurrent_iteration_count(int value) { if (_concurrent) { MutexLockerEx ml(_storage->_active_mutex, Mutex::_no_safepoint_check_flag); - assert(_storage->_concurrent_iteration_active != value, "precondition"); - _storage->_concurrent_iteration_active = value; + _storage->_concurrent_iteration_count += value; + assert(_storage->_concurrent_iteration_count >= 0, "invariant"); } } @@ -954,7 +954,7 @@ st->print("%s: " SIZE_FORMAT " entries in " SIZE_FORMAT " blocks (%.F%%), " SIZE_FORMAT " bytes", name(), allocations, blocks, alloc_percentage, total_memory_usage()); - if (_concurrent_iteration_active) { + if (_concurrent_iteration_count > 0) { st->print(", concurrent iteration active"); } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/gc/shared/oopStorage.hpp --- a/src/hotspot/share/gc/shared/oopStorage.hpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/gc/shared/oopStorage.hpp Mon Oct 08 18:23:05 2018 -0400 @@ -220,7 +220,7 @@ mutable SingleWriterSynchronizer _protect_active; // mutable because this gets set even for const iteration. - mutable bool _concurrent_iteration_active; + mutable int _concurrent_iteration_count; Block* find_block_or_null(const oop* ptr) const; void delete_empty_block(const Block& block); diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/gc/shared/oopStorageParState.hpp --- a/src/hotspot/share/gc/shared/oopStorageParState.hpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/gc/shared/oopStorageParState.hpp Mon Oct 08 18:23:05 2018 -0400 @@ -31,22 +31,16 @@ ////////////////////////////////////////////////////////////////////////////// // Support for parallel and optionally concurrent state iteration. // -// Parallel iteration is for the exclusive use of the GC. Other iteration -// clients must use serial iteration. -// // Concurrent Iteration // // Iteration involves the _active_array (an ActiveArray), which contains all // of the blocks owned by a storage object. // -// At most one concurrent ParState can exist at a time for a given storage -// object. -// -// A concurrent ParState sets the associated storage's -// _concurrent_iteration_active flag true when the state is constructed, and -// sets it false when the state is destroyed. These assignments are made with +// A concurrent ParState increments the associated storage's +// _concurrent_iteration_count when the state is constructed, and +// decrements it when the state is destroyed. These assignments are made with // _active_mutex locked. Meanwhile, empty block deletion is not done while -// _concurrent_iteration_active is true. The flag check and the dependent +// _concurrent_iteration_count is non-zero. The counter check and the dependent // removal of a block from the _active_array is performed with _active_mutex // locked. This prevents concurrent iteration and empty block deletion from // interfering with with each other. @@ -83,8 +77,8 @@ // scheduling both operations to run at the same time. // // ParState -// concurrent must be true if iteration is concurrent with the -// mutator, false if iteration is at a safepoint. +// concurrent must be true if iteration may be concurrent with the +// mutators. // // is_const must be true if the iteration is over a constant storage // object, false if the iteration may modify the storage object. @@ -92,8 +86,7 @@ // ParState([const] OopStorage* storage) // Construct an object for managing an iteration over storage. For a // concurrent ParState, empty block deletion for the associated storage -// is inhibited for the life of the ParState. There can be no more -// than one live concurrent ParState at a time for a given storage object. +// is inhibited for the life of the ParState. // // template void iterate(F f) // Repeatedly claims a block from the associated storage that has @@ -152,7 +145,7 @@ struct IterationData; - void update_iteration_state(bool value); + void update_concurrent_iteration_count(int value); bool claim_next_segment(IterationData* data); bool finish_iteration(const IterationData* data) const; diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp --- a/src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -1427,6 +1427,10 @@ return c; } +bool ZBarrierSetC2::array_copy_requires_gc_barriers(bool tightly_coupled_alloc, BasicType type, bool is_clone, ArrayCopyPhase phase) const { + return type == T_OBJECT || type == T_ARRAY; +} + // == Verification == #ifdef ASSERT diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp --- a/src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp Mon Oct 08 18:23:05 2018 -0400 @@ -194,7 +194,7 @@ virtual void enqueue_useful_gc_barrier(Unique_Node_List &worklist, Node* node) const; virtual void register_potential_barrier_node(Node* node) const; virtual void unregister_potential_barrier_node(Node* node) const; - virtual bool array_copy_requires_gc_barriers(bool tightly_coupled_alloc, BasicType type, bool is_clone, ArrayCopyPhase phase) const { return true; } + virtual bool array_copy_requires_gc_barriers(bool tightly_coupled_alloc, BasicType type, bool is_clone, ArrayCopyPhase phase) const; virtual Node* step_over_gc_barrier(Node* c) const; // If the BarrierSetC2 state has kept macro nodes in its compilation unit state to be // expanded later, then now is the time to do so. diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/jvmci/jvmciRuntime.cpp --- a/src/hotspot/share/jvmci/jvmciRuntime.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/jvmci/jvmciRuntime.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -109,22 +109,72 @@ } } -JRT_BLOCK_ENTRY(void, JVMCIRuntime::new_instance(JavaThread* thread, Klass* klass)) +// Manages a scope for a JVMCI runtime call that attempts a heap allocation. +// If there is a pending exception upon closing the scope and the runtime +// call is of the variety where allocation failure returns NULL without an +// exception, the following action is taken: +// 1. The pending exception is cleared +// 2. NULL is written to JavaThread::_vm_result +// 3. Checks that an OutOfMemoryError is Universe::out_of_memory_error_retry(). +class RetryableAllocationMark: public StackObj { + private: + JavaThread* _thread; + public: + RetryableAllocationMark(JavaThread* thread, bool activate) { + if (activate) { + assert(!thread->in_retryable_allocation(), "retryable allocation scope is non-reentrant"); + _thread = thread; + _thread->set_in_retryable_allocation(true); + } else { + _thread = NULL; + } + } + ~RetryableAllocationMark() { + if (_thread != NULL) { + _thread->set_in_retryable_allocation(false); + JavaThread* THREAD = _thread; + if (HAS_PENDING_EXCEPTION) { + oop ex = PENDING_EXCEPTION; + CLEAR_PENDING_EXCEPTION; + oop retry_oome = Universe::out_of_memory_error_retry(); + if (ex->is_a(retry_oome->klass()) && retry_oome != ex) { + ResourceMark rm; + fatal("Unexpected exception in scope of retryable allocation: " INTPTR_FORMAT " of type %s", p2i(ex), ex->klass()->external_name()); + } + _thread->set_vm_result(NULL); + } + } + } +}; + +JRT_BLOCK_ENTRY(void, JVMCIRuntime::new_instance_common(JavaThread* thread, Klass* klass, bool null_on_fail)) JRT_BLOCK; assert(klass->is_klass(), "not a class"); Handle holder(THREAD, klass->klass_holder()); // keep the klass alive InstanceKlass* ik = InstanceKlass::cast(klass); - ik->check_valid_for_instantiation(true, CHECK); - // make sure klass is initialized - ik->initialize(CHECK); - // allocate instance and return via TLS - oop obj = ik->allocate_instance(CHECK); - thread->set_vm_result(obj); + { + RetryableAllocationMark ram(thread, null_on_fail); + ik->check_valid_for_instantiation(true, CHECK); + oop obj; + if (null_on_fail) { + if (!ik->is_initialized()) { + // Cannot re-execute class initialization without side effects + // so return without attempting the initialization + return; + } + } else { + // make sure klass is initialized + ik->initialize(CHECK); + } + // allocate instance and return via TLS + obj = ik->allocate_instance(CHECK); + thread->set_vm_result(obj); + } JRT_BLOCK_END; SharedRuntime::on_slowpath_allocation_exit(thread); JRT_END -JRT_BLOCK_ENTRY(void, JVMCIRuntime::new_array(JavaThread* thread, Klass* array_klass, jint length)) +JRT_BLOCK_ENTRY(void, JVMCIRuntime::new_array_common(JavaThread* thread, Klass* array_klass, jint length, bool null_on_fail)) JRT_BLOCK; // Note: no handle for klass needed since they are not used // anymore after new_objArray() and no GC can happen before. @@ -133,10 +183,12 @@ oop obj; if (array_klass->is_typeArray_klass()) { BasicType elt_type = TypeArrayKlass::cast(array_klass)->element_type(); + RetryableAllocationMark ram(thread, null_on_fail); obj = oopFactory::new_typeArray(elt_type, length, CHECK); } else { Handle holder(THREAD, array_klass->klass_holder()); // keep the klass alive Klass* elem_klass = ObjArrayKlass::cast(array_klass)->element_klass(); + RetryableAllocationMark ram(thread, null_on_fail); obj = oopFactory::new_objArray(elem_klass, length, CHECK); } thread->set_vm_result(obj); @@ -146,8 +198,12 @@ static int deopts = 0; // Alternate between deoptimizing and raising an error (which will also cause a deopt) if (deopts++ % 2 == 0) { - ResourceMark rm(THREAD); - THROW(vmSymbols::java_lang_OutOfMemoryError()); + if (null_on_fail) { + return; + } else { + ResourceMark rm(THREAD); + THROW(vmSymbols::java_lang_OutOfMemoryError()); + } } else { deopt_caller(); } @@ -156,32 +212,43 @@ SharedRuntime::on_slowpath_allocation_exit(thread); JRT_END -JRT_ENTRY(void, JVMCIRuntime::new_multi_array(JavaThread* thread, Klass* klass, int rank, jint* dims)) +JRT_ENTRY(void, JVMCIRuntime::new_multi_array_common(JavaThread* thread, Klass* klass, int rank, jint* dims, bool null_on_fail)) assert(klass->is_klass(), "not a class"); assert(rank >= 1, "rank must be nonzero"); Handle holder(THREAD, klass->klass_holder()); // keep the klass alive + RetryableAllocationMark ram(thread, null_on_fail); oop obj = ArrayKlass::cast(klass)->multi_allocate(rank, dims, CHECK); thread->set_vm_result(obj); JRT_END -JRT_ENTRY(void, JVMCIRuntime::dynamic_new_array(JavaThread* thread, oopDesc* element_mirror, jint length)) +JRT_ENTRY(void, JVMCIRuntime::dynamic_new_array_common(JavaThread* thread, oopDesc* element_mirror, jint length, bool null_on_fail)) + RetryableAllocationMark ram(thread, null_on_fail); oop obj = Reflection::reflect_new_array(element_mirror, length, CHECK); thread->set_vm_result(obj); JRT_END -JRT_ENTRY(void, JVMCIRuntime::dynamic_new_instance(JavaThread* thread, oopDesc* type_mirror)) +JRT_ENTRY(void, JVMCIRuntime::dynamic_new_instance_common(JavaThread* thread, oopDesc* type_mirror, bool null_on_fail)) InstanceKlass* klass = InstanceKlass::cast(java_lang_Class::as_Klass(type_mirror)); if (klass == NULL) { ResourceMark rm(THREAD); THROW(vmSymbols::java_lang_InstantiationException()); } + RetryableAllocationMark ram(thread, null_on_fail); // Create new instance (the receiver) klass->check_valid_for_instantiation(false, CHECK); - // Make sure klass gets initialized - klass->initialize(CHECK); + if (null_on_fail) { + if (!klass->is_initialized()) { + // Cannot re-execute class initialization without side effects + // so return without attempting the initialization + return; + } + } else { + // Make sure klass gets initialized + klass->initialize(CHECK); + } oop obj = klass->allocate_instance(CHECK); thread->set_vm_result(obj); diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/jvmci/jvmciRuntime.hpp --- a/src/hotspot/share/jvmci/jvmciRuntime.hpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/jvmci/jvmciRuntime.hpp Mon Oct 08 18:23:05 2018 -0400 @@ -121,13 +121,35 @@ static BasicType kindToBasicType(Handle kind, TRAPS); - // The following routines are all called from compiled JVMCI code + static void new_instance_common(JavaThread* thread, Klass* klass, bool null_on_fail); + static void new_array_common(JavaThread* thread, Klass* klass, jint length, bool null_on_fail); + static void new_multi_array_common(JavaThread* thread, Klass* klass, int rank, jint* dims, bool null_on_fail); + static void dynamic_new_array_common(JavaThread* thread, oopDesc* element_mirror, jint length, bool null_on_fail); + static void dynamic_new_instance_common(JavaThread* thread, oopDesc* type_mirror, bool null_on_fail); + + // The following routines are called from compiled JVMCI code - static void new_instance(JavaThread* thread, Klass* klass); - static void new_array(JavaThread* thread, Klass* klass, jint length); - static void new_multi_array(JavaThread* thread, Klass* klass, int rank, jint* dims); - static void dynamic_new_array(JavaThread* thread, oopDesc* element_mirror, jint length); - static void dynamic_new_instance(JavaThread* thread, oopDesc* type_mirror); + // When allocation fails, these stubs: + // 1. Exercise -XX:+HeapDumpOnOutOfMemoryError and -XX:OnOutOfMemoryError handling and also + // post a JVMTI_EVENT_RESOURCE_EXHAUSTED event if the failure is an OutOfMemroyError + // 2. Return NULL with a pending exception. + // Compiled code must ensure these stubs are not called twice for the same allocation + // site due to the non-repeatable side effects in the case of OOME. + static void new_instance(JavaThread* thread, Klass* klass) { new_instance_common(thread, klass, false); } + static void new_array(JavaThread* thread, Klass* klass, jint length) { new_array_common(thread, klass, length, false); } + static void new_multi_array(JavaThread* thread, Klass* klass, int rank, jint* dims) { new_multi_array_common(thread, klass, rank, dims, false); } + static void dynamic_new_array(JavaThread* thread, oopDesc* element_mirror, jint length) { dynamic_new_array_common(thread, element_mirror, length, false); } + static void dynamic_new_instance(JavaThread* thread, oopDesc* type_mirror) { dynamic_new_instance_common(thread, type_mirror, false); } + + // When allocation fails, these stubs return NULL and have no pending exception. Compiled code + // can use these stubs if a failed allocation will be retried (e.g., by deoptimizing and + // re-executing in the interpreter). + static void new_instance_or_null(JavaThread* thread, Klass* klass) { new_instance_common(thread, klass, true); } + static void new_array_or_null(JavaThread* thread, Klass* klass, jint length) { new_array_common(thread, klass, length, true); } + static void new_multi_array_or_null(JavaThread* thread, Klass* klass, int rank, jint* dims) { new_multi_array_common(thread, klass, rank, dims, true); } + static void dynamic_new_array_or_null(JavaThread* thread, oopDesc* element_mirror, jint length) { dynamic_new_array_common(thread, element_mirror, length, true); } + static void dynamic_new_instance_or_null(JavaThread* thread, oopDesc* type_mirror) { dynamic_new_instance_common(thread, type_mirror, true); } + static jboolean thread_is_interrupted(JavaThread* thread, oopDesc* obj, jboolean clear_interrupted); static void vm_message(jboolean vmError, jlong format, jlong v1, jlong v2, jlong v3); static jint identity_hash_code(JavaThread* thread, oopDesc* obj); diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/jvmci/vmStructs_jvmci.cpp --- a/src/hotspot/share/jvmci/vmStructs_jvmci.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/jvmci/vmStructs_jvmci.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -622,6 +622,12 @@ declare_function(JVMCIRuntime::dynamic_new_array) \ declare_function(JVMCIRuntime::dynamic_new_instance) \ \ + declare_function(JVMCIRuntime::new_instance_or_null) \ + declare_function(JVMCIRuntime::new_array_or_null) \ + declare_function(JVMCIRuntime::new_multi_array_or_null) \ + declare_function(JVMCIRuntime::dynamic_new_array_or_null) \ + declare_function(JVMCIRuntime::dynamic_new_instance_or_null) \ + \ declare_function(JVMCIRuntime::thread_is_interrupted) \ declare_function(JVMCIRuntime::vm_message) \ declare_function(JVMCIRuntime::identity_hash_code) \ diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/memory/universe.cpp --- a/src/hotspot/share/memory/universe.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/memory/universe.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -113,6 +113,7 @@ oop Universe::_out_of_memory_error_array_size = NULL; oop Universe::_out_of_memory_error_gc_overhead_limit = NULL; oop Universe::_out_of_memory_error_realloc_objects = NULL; +oop Universe::_out_of_memory_error_retry = NULL; oop Universe::_delayed_stack_overflow_error_message = NULL; objArrayOop Universe::_preallocated_out_of_memory_error_array = NULL; volatile jint Universe::_preallocated_out_of_memory_error_avail_count = 0; @@ -195,6 +196,7 @@ f->do_oop((oop*)&_out_of_memory_error_array_size); f->do_oop((oop*)&_out_of_memory_error_gc_overhead_limit); f->do_oop((oop*)&_out_of_memory_error_realloc_objects); + f->do_oop((oop*)&_out_of_memory_error_retry); f->do_oop((oop*)&_delayed_stack_overflow_error_message); f->do_oop((oop*)&_preallocated_out_of_memory_error_array); f->do_oop((oop*)&_null_ptr_exception_instance); @@ -565,7 +567,8 @@ (!oopDesc::equals(throwable(), Universe::_out_of_memory_error_class_metaspace)) && (!oopDesc::equals(throwable(), Universe::_out_of_memory_error_array_size)) && (!oopDesc::equals(throwable(), Universe::_out_of_memory_error_gc_overhead_limit)) && - (!oopDesc::equals(throwable(), Universe::_out_of_memory_error_realloc_objects))); + (!oopDesc::equals(throwable(), Universe::_out_of_memory_error_realloc_objects)) && + (!oopDesc::equals(throwable(), Universe::_out_of_memory_error_retry))); } @@ -974,6 +977,7 @@ Universe::_out_of_memory_error_gc_overhead_limit = ik->allocate_instance(CHECK_false); Universe::_out_of_memory_error_realloc_objects = ik->allocate_instance(CHECK_false); + Universe::_out_of_memory_error_retry = ik->allocate_instance(CHECK_false); // Setup preallocated cause message for delayed StackOverflowError if (StackReservedPages > 0) { @@ -1019,6 +1023,9 @@ msg = java_lang_String::create_from_str("Java heap space: failed reallocation of scalar replaced objects", CHECK_false); java_lang_Throwable::set_message(Universe::_out_of_memory_error_realloc_objects, msg()); + msg = java_lang_String::create_from_str("Java heap space: failed retryable allocation", CHECK_false); + java_lang_Throwable::set_message(Universe::_out_of_memory_error_retry, msg()); + msg = java_lang_String::create_from_str("/ by zero", CHECK_false); java_lang_Throwable::set_message(Universe::_arithmetic_exception_instance, msg()); diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/memory/universe.hpp --- a/src/hotspot/share/memory/universe.hpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/memory/universe.hpp Mon Oct 08 18:23:05 2018 -0400 @@ -148,6 +148,7 @@ static oop _out_of_memory_error_array_size; static oop _out_of_memory_error_gc_overhead_limit; static oop _out_of_memory_error_realloc_objects; + static oop _out_of_memory_error_retry; // preallocated cause message for delayed StackOverflowError static oop _delayed_stack_overflow_error_message; @@ -363,6 +364,8 @@ static oop out_of_memory_error_array_size() { return gen_out_of_memory_error(_out_of_memory_error_array_size); } static oop out_of_memory_error_gc_overhead_limit() { return gen_out_of_memory_error(_out_of_memory_error_gc_overhead_limit); } static oop out_of_memory_error_realloc_objects() { return gen_out_of_memory_error(_out_of_memory_error_realloc_objects); } + // Throw default _out_of_memory_error_retry object as it will never propagate out of the VM + static oop out_of_memory_error_retry() { return _out_of_memory_error_retry; } static oop delayed_stack_overflow_error_message() { return _delayed_stack_overflow_error_message; } // The particular choice of collected heap. diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/oops/arrayKlass.cpp --- a/src/hotspot/share/oops/arrayKlass.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/oops/arrayKlass.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -130,14 +130,7 @@ } objArrayOop ArrayKlass::allocate_arrayArray(int n, int length, TRAPS) { - if (length < 0) { - THROW_MSG_0(vmSymbols::java_lang_NegativeArraySizeException(), err_msg("%d", length)); - } - if (length > arrayOopDesc::max_array_length(T_ARRAY)) { - report_java_out_of_memory("Requested array size exceeds VM limit"); - JvmtiExport::post_array_size_exhausted(); - THROW_OOP_0(Universe::out_of_memory_error_array_size()); - } + check_array_allocation_length(length, arrayOopDesc::max_array_length(T_ARRAY), CHECK_0); int size = objArrayOopDesc::object_size(length); Klass* k = array_klass(n+dimension(), CHECK_0); ArrayKlass* ak = ArrayKlass::cast(k); diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/oops/instanceKlass.cpp --- a/src/hotspot/share/oops/instanceKlass.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/oops/instanceKlass.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -1201,14 +1201,7 @@ } objArrayOop InstanceKlass::allocate_objArray(int n, int length, TRAPS) { - if (length < 0) { - THROW_MSG_0(vmSymbols::java_lang_NegativeArraySizeException(), err_msg("%d", length)); - } - if (length > arrayOopDesc::max_array_length(T_OBJECT)) { - report_java_out_of_memory("Requested array size exceeds VM limit"); - JvmtiExport::post_array_size_exhausted(); - THROW_OOP_0(Universe::out_of_memory_error_array_size()); - } + check_array_allocation_length(length, arrayOopDesc::max_array_length(T_OBJECT), CHECK_NULL); int size = objArrayOopDesc::object_size(length); Klass* ak = array_klass(n, CHECK_NULL); objArrayOop o = (objArrayOop)Universe::heap()->array_allocate(ak, size, length, diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/oops/klass.cpp --- a/src/hotspot/share/oops/klass.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/oops/klass.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -611,6 +611,20 @@ return NULL; } +void Klass::check_array_allocation_length(int length, int max_length, TRAPS) { + if (length > max_length) { + if (!THREAD->in_retryable_allocation()) { + report_java_out_of_memory("Requested array size exceeds VM limit"); + JvmtiExport::post_array_size_exhausted(); + THROW_OOP(Universe::out_of_memory_error_array_size()); + } else { + THROW_OOP(Universe::out_of_memory_error_retry()); + } + } else if (length < 0) { + THROW_MSG(vmSymbols::java_lang_NegativeArraySizeException(), err_msg("%d", length)); + } +} + oop Klass::class_loader() const { return class_loader_data()->class_loader(); } // In product mode, this function doesn't have virtual function calls so diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/oops/klass.hpp --- a/src/hotspot/share/oops/klass.hpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/oops/klass.hpp Mon Oct 08 18:23:05 2018 -0400 @@ -514,6 +514,9 @@ virtual Klass* array_klass_impl(bool or_null, int rank, TRAPS); virtual Klass* array_klass_impl(bool or_null, TRAPS); + // Error handling when length > max_length or length < 0 + static void check_array_allocation_length(int length, int max_length, TRAPS); + void set_vtable_length(int len) { _vtable_len= len; } vtableEntry* start_of_vtable() const; diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/oops/objArrayKlass.cpp --- a/src/hotspot/share/oops/objArrayKlass.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/oops/objArrayKlass.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -170,19 +170,10 @@ } objArrayOop ObjArrayKlass::allocate(int length, TRAPS) { - if (length >= 0) { - if (length <= arrayOopDesc::max_array_length(T_OBJECT)) { - int size = objArrayOopDesc::object_size(length); - return (objArrayOop)Universe::heap()->array_allocate(this, size, length, - /* do_zero */ true, THREAD); - } else { - report_java_out_of_memory("Requested array size exceeds VM limit"); - JvmtiExport::post_array_size_exhausted(); - THROW_OOP_0(Universe::out_of_memory_error_array_size()); - } - } else { - THROW_MSG_0(vmSymbols::java_lang_NegativeArraySizeException(), err_msg("%d", length)); - } + check_array_allocation_length(length, arrayOopDesc::max_array_length(T_OBJECT), CHECK_0); + int size = objArrayOopDesc::object_size(length); + return (objArrayOop)Universe::heap()->array_allocate(this, size, length, + /* do_zero */ true, THREAD); } static int multi_alloc_counter = 0; diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/oops/typeArrayKlass.cpp --- a/src/hotspot/share/oops/typeArrayKlass.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/oops/typeArrayKlass.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -99,19 +99,10 @@ typeArrayOop TypeArrayKlass::allocate_common(int length, bool do_zero, TRAPS) { assert(log2_element_size() >= 0, "bad scale"); - if (length >= 0) { - if (length <= max_length()) { - size_t size = typeArrayOopDesc::object_size(layout_helper(), length); - return (typeArrayOop)Universe::heap()->array_allocate(this, (int)size, length, - do_zero, CHECK_NULL); - } else { - report_java_out_of_memory("Requested array size exceeds VM limit"); - JvmtiExport::post_array_size_exhausted(); - THROW_OOP_0(Universe::out_of_memory_error_array_size()); - } - } else { - THROW_MSG_0(vmSymbols::java_lang_NegativeArraySizeException(), err_msg("%d", length)); - } + check_array_allocation_length(length, max_length(), CHECK_NULL); + size_t size = typeArrayOopDesc::object_size(layout_helper(), length); + return (typeArrayOop)Universe::heap()->array_allocate(this, (int)size, length, + do_zero, CHECK_NULL); } oop TypeArrayKlass::multi_allocate(int rank, jint* last_size, TRAPS) { diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/prims/whitebox.cpp --- a/src/hotspot/share/prims/whitebox.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/prims/whitebox.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -1749,6 +1749,20 @@ return NULL; WB_END +WB_ENTRY(jobject, WB_GetDefaultArchivePath(JNIEnv* env, jobject wb)) + const char* p = Arguments::get_default_shared_archive_path(); + ThreadToNativeFromVM ttn(thread); + jstring path_string = env->NewStringUTF(p); + + CHECK_JNI_EXCEPTION_(env, NULL); + + return path_string; +WB_END + +WB_ENTRY(jboolean, WB_IsSharingEnabled(JNIEnv* env, jobject wb)) + return UseSharedSpaces; +WB_END + WB_ENTRY(jboolean, WB_IsShared(JNIEnv* env, jobject wb, jobject obj)) oop obj_oop = JNIHandles::resolve(obj); return MetaspaceShared::is_archive_object(obj_oop); @@ -2185,6 +2199,9 @@ {CC"getMethodStringOption", CC"(Ljava/lang/reflect/Executable;Ljava/lang/String;)Ljava/lang/String;", (void*)&WB_GetMethodStringOption}, + {CC"getDefaultArchivePath", CC"()Ljava/lang/String;", + (void*)&WB_GetDefaultArchivePath}, + {CC"isSharingEnabled", CC"()Z", (void*)&WB_IsSharingEnabled}, {CC"isShared", CC"(Ljava/lang/Object;)Z", (void*)&WB_IsShared }, {CC"isSharedClass", CC"(Ljava/lang/Class;)Z", (void*)&WB_IsSharedClass }, {CC"areSharedStringsIgnored", CC"()Z", (void*)&WB_AreSharedStringsIgnored }, diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/runtime/arguments.cpp --- a/src/hotspot/share/runtime/arguments.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/runtime/arguments.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -3450,21 +3450,27 @@ // Sharing support // Construct the path to the archive +char* Arguments::get_default_shared_archive_path() { + char *default_archive_path; + char jvm_path[JVM_MAXPATHLEN]; + os::jvm_path(jvm_path, sizeof(jvm_path)); + char *end = strrchr(jvm_path, *os::file_separator()); + if (end != NULL) *end = '\0'; + size_t jvm_path_len = strlen(jvm_path); + size_t file_sep_len = strlen(os::file_separator()); + const size_t len = jvm_path_len + file_sep_len + 20; + default_archive_path = NEW_C_HEAP_ARRAY(char, len, mtArguments); + if (default_archive_path != NULL) { + jio_snprintf(default_archive_path, len, "%s%sclasses.jsa", + jvm_path, os::file_separator()); + } + return default_archive_path; +} + static char* get_shared_archive_path() { char *shared_archive_path; if (SharedArchiveFile == NULL) { - char jvm_path[JVM_MAXPATHLEN]; - os::jvm_path(jvm_path, sizeof(jvm_path)); - char *end = strrchr(jvm_path, *os::file_separator()); - if (end != NULL) *end = '\0'; - size_t jvm_path_len = strlen(jvm_path); - size_t file_sep_len = strlen(os::file_separator()); - const size_t len = jvm_path_len + file_sep_len + 20; - shared_archive_path = NEW_C_HEAP_ARRAY(char, len, mtArguments); - if (shared_archive_path != NULL) { - jio_snprintf(shared_archive_path, len, "%s%sclasses.jsa", - jvm_path, os::file_separator()); - } + shared_archive_path = Arguments::get_default_shared_archive_path(); } else { shared_archive_path = os::strdup_check_oom(SharedArchiveFile, mtArguments); } diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/runtime/arguments.hpp --- a/src/hotspot/share/runtime/arguments.hpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/runtime/arguments.hpp Mon Oct 08 18:23:05 2018 -0400 @@ -633,6 +633,7 @@ static char* get_appclasspath() { return _java_class_path->value(); } static void fix_appclasspath(); + static char* get_default_shared_archive_path(); // Operation modi static Mode mode() { return _mode; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/runtime/thread.cpp --- a/src/hotspot/share/runtime/thread.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/runtime/thread.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -1547,6 +1547,7 @@ _pending_failed_speculation = 0; _pending_transfer_to_interpreter = false; _adjusting_comp_level = false; + _in_retryable_allocation = false; _jvmci._alternate_call_target = NULL; assert(_jvmci._implicit_exception_pc == NULL, "must be"); if (JVMCICounterSize > 0) { diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/hotspot/share/runtime/thread.hpp --- a/src/hotspot/share/runtime/thread.hpp Mon Oct 08 18:17:37 2018 -0400 +++ b/src/hotspot/share/runtime/thread.hpp Mon Oct 08 18:23:05 2018 -0400 @@ -281,6 +281,14 @@ void leave_signal_handler() { _num_nested_signal--; } bool is_inside_signal_handler() const { return _num_nested_signal > 0; } + // Determines if a heap allocation failure will be retried + // (e.g., by deoptimizing and re-executing in the interpreter). + // In this case, the failed allocation must raise + // Universe::out_of_memory_error_retry() and omit side effects + // such as JVMTI events and handling -XX:+HeapDumpOnOutOfMemoryError + // and -XX:OnOutOfMemoryError. + virtual bool in_retryable_allocation() const { return false; } + #ifdef ASSERT void set_suspendible_thread() { _suspendible_thread = true; @@ -1048,6 +1056,10 @@ // Guard for re-entrant call to JVMCIRuntime::adjust_comp_level bool _adjusting_comp_level; + // True if in a runtime call from compiled code that will deoptimize + // and re-execute a failed heap allocation in the interpreter. + bool _in_retryable_allocation; + // An id of a speculation that JVMCI compiled code can use to further describe and // uniquely identify the speculative optimization guarded by the uncommon trap long _pending_failed_speculation; @@ -1458,7 +1470,7 @@ #if INCLUDE_JVMCI int pending_deoptimization() const { return _pending_deoptimization; } - long pending_failed_speculation() const { return _pending_failed_speculation; } + long pending_failed_speculation() const { return _pending_failed_speculation; } bool adjusting_comp_level() const { return _adjusting_comp_level; } void set_adjusting_comp_level(bool b) { _adjusting_comp_level = b; } bool has_pending_monitorenter() const { return _pending_monitorenter; } @@ -1468,6 +1480,9 @@ void set_pending_transfer_to_interpreter(bool b) { _pending_transfer_to_interpreter = b; } void set_jvmci_alternate_call_target(address a) { assert(_jvmci._alternate_call_target == NULL, "must be"); _jvmci._alternate_call_target = a; } void set_jvmci_implicit_exception_pc(address a) { assert(_jvmci._implicit_exception_pc == NULL, "must be"); _jvmci._implicit_exception_pc = a; } + + virtual bool in_retryable_allocation() const { return _in_retryable_allocation; } + void set_in_retryable_allocation(bool b) { _in_retryable_allocation = b; } #endif // INCLUDE_JVMCI // Exception handling for compiled methods diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/java.base/share/classes/java/util/jar/JarFile.java --- a/src/java.base/share/classes/java/util/jar/JarFile.java Mon Oct 08 18:17:37 2018 -0400 +++ b/src/java.base/share/classes/java/util/jar/JarFile.java Mon Oct 08 18:23:05 2018 -0400 @@ -556,7 +556,8 @@ return JUZFA.entryNameStream(this).map(this::getBasename) .filter(Objects::nonNull) .distinct() - .map(this::getJarEntry); + .map(this::getJarEntry) + .filter(Objects::nonNull); } return stream(); } diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/java.base/share/classes/java/util/jar/Manifest.java --- a/src/java.base/share/classes/java/util/jar/Manifest.java Mon Oct 08 18:17:37 2018 -0400 +++ b/src/java.base/share/classes/java/util/jar/Manifest.java Mon Oct 08 18:23:05 2018 -0400 @@ -49,9 +49,6 @@ */ public class Manifest implements Cloneable { - private static final boolean jarInfoInExceptionText = - SecurityProperties.includedInExceptions("jar"); - // manifest main attributes private Attributes attr = new Attributes(); @@ -203,10 +200,10 @@ } static String getErrorPosition(String filename, final int lineNumber) { - if (filename == null || !jarInfoInExceptionText) { + if (filename == null || + !SecurityProperties.INCLUDE_JAR_NAME_IN_EXCEPTIONS) { return "line " + lineNumber; } - return "manifest of " + filename + ":" + lineNumber; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/java.base/share/classes/java/util/zip/ZipFile.java --- a/src/java.base/share/classes/java/util/zip/ZipFile.java Mon Oct 08 18:17:37 2018 -0400 +++ b/src/java.base/share/classes/java/util/zip/ZipFile.java Mon Oct 08 18:23:05 2018 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1995, 2018, 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 @@ -35,6 +35,7 @@ import java.lang.ref.Cleaner.Cleanable; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; +import java.nio.file.InvalidPathException; import java.nio.file.attribute.BasicFileAttributes; import java.nio.file.Files; import java.util.ArrayDeque; @@ -1218,8 +1219,13 @@ static Source get(File file, boolean toDelete) throws IOException { - Key key = new Key(file, - Files.readAttributes(file.toPath(), BasicFileAttributes.class)); + final Key key; + try { + key = new Key(file, + Files.readAttributes(file.toPath(), BasicFileAttributes.class)); + } catch (InvalidPathException ipe) { + throw new IOException(ipe); + } Source src; synchronized (files) { src = files.get(key); diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/java.base/share/classes/sun/security/util/SecurityProperties.java --- a/src/java.base/share/classes/sun/security/util/SecurityProperties.java Mon Oct 08 18:17:37 2018 -0400 +++ b/src/java.base/share/classes/sun/security/util/SecurityProperties.java Mon Oct 08 18:23:05 2018 -0400 @@ -32,6 +32,9 @@ public class SecurityProperties { + public static final boolean INCLUDE_JAR_NAME_IN_EXCEPTIONS + = includedInExceptions("jar"); + /** * Returns the value of the security property propName, which can be overridden * by a system property of the same name diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/jdk.aot/share/classes/jdk.tools.jaotc.binformat/src/jdk/tools/jaotc/binformat/BinaryContainer.java --- a/src/jdk.aot/share/classes/jdk.tools.jaotc.binformat/src/jdk/tools/jaotc/binformat/BinaryContainer.java Mon Oct 08 18:17:37 2018 -0400 +++ b/src/jdk.aot/share/classes/jdk.tools.jaotc.binformat/src/jdk/tools/jaotc/binformat/BinaryContainer.java Mon Oct 08 18:23:05 2018 -0400 @@ -240,14 +240,20 @@ {"JVMCIRuntime::log_printf", "_aot_jvmci_runtime_log_printf"}, {"JVMCIRuntime::vm_message", "_aot_jvmci_runtime_vm_message"}, {"JVMCIRuntime::new_instance", "_aot_jvmci_runtime_new_instance"}, - {"JVMCIRuntime::log_primitive", "_aot_jvmci_runtime_log_primitive"}, + {"JVMCIRuntime::new_array", "_aot_jvmci_runtime_new_array"}, {"JVMCIRuntime::new_multi_array", "_aot_jvmci_runtime_new_multi_array"}, + {"JVMCIRuntime::dynamic_new_instance", "_aot_jvmci_runtime_dynamic_new_instance"}, + {"JVMCIRuntime::dynamic_new_array", "_aot_jvmci_runtime_dynamic_new_array"}, + {"JVMCIRuntime::new_instance_or_null", "_aot_jvmci_runtime_new_instance_or_null"}, + {"JVMCIRuntime::new_array_or_null", "_aot_jvmci_runtime_new_array_or_null"}, + {"JVMCIRuntime::new_multi_array_or_null", "_aot_jvmci_runtime_new_multi_array_or_null"}, + {"JVMCIRuntime::dynamic_new_instance_or_null", "_aot_jvmci_runtime_dynamic_new_instance_or_null"}, + {"JVMCIRuntime::dynamic_new_array_or_null", "_aot_jvmci_runtime_dynamic_new_array_or_null"}, + {"JVMCIRuntime::log_primitive", "_aot_jvmci_runtime_log_primitive"}, {"JVMCIRuntime::validate_object", "_aot_jvmci_runtime_validate_object"}, - {"JVMCIRuntime::dynamic_new_array", "_aot_jvmci_runtime_dynamic_new_array"}, {"JVMCIRuntime::write_barrier_pre", "_aot_jvmci_runtime_write_barrier_pre"}, {"JVMCIRuntime::identity_hash_code", "_aot_jvmci_runtime_identity_hash_code"}, {"JVMCIRuntime::write_barrier_post", "_aot_jvmci_runtime_write_barrier_post"}, - {"JVMCIRuntime::dynamic_new_instance", "_aot_jvmci_runtime_dynamic_new_instance"}, {"JVMCIRuntime::thread_is_interrupted", "_aot_jvmci_runtime_thread_is_interrupted"}, {"JVMCIRuntime::exception_handler_for_pc", "_aot_jvmci_runtime_exception_handler_for_pc"}, {"JVMCIRuntime::test_deoptimize_call_int", "_aot_jvmci_runtime_test_deoptimize_call_int"}, @@ -256,8 +262,7 @@ {"JVMCIRuntime::throw_klass_external_name_exception", "_aot_jvmci_runtime_throw_klass_external_name_exception"}, {"JVMCIRuntime::throw_class_cast_exception", "_aot_jvmci_runtime_throw_class_cast_exception"}, - {"JVMCIRuntime::vm_error", "_aot_jvmci_runtime_vm_error"}, - {"JVMCIRuntime::new_array", "_aot_jvmci_runtime_new_array"} + {"JVMCIRuntime::vm_error", "_aot_jvmci_runtime_vm_error"} }; //@formatter:on diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java Mon Oct 08 18:17:37 2018 -0400 +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java Mon Oct 08 18:23:05 2018 -0400 @@ -1130,10 +1130,14 @@ make.at(tree.pos); return makeLit(sym.type, cv); } - // Otherwise replace the variable by its proxy. - sym = proxies.get(sym); - Assert.check(sym != null && (sym.flags_field & FINAL) != 0); - tree = make.at(tree.pos).Ident(sym); + if (lambdaTranslationMap != null && lambdaTranslationMap.get(sym) != null) { + return make.at(tree.pos).Ident(lambdaTranslationMap.get(sym)); + } else { + // Otherwise replace the variable by its proxy. + sym = proxies.get(sym); + Assert.check(sym != null && (sym.flags_field & FINAL) != 0); + tree = make.at(tree.pos).Ident(sym); + } } JCExpression base = (tree.hasTag(SELECT)) ? ((JCFieldAccess) tree).selected : null; switch (sym.kind) { diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java --- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java Mon Oct 08 18:17:37 2018 -0400 +++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/GraalHotSpotVMConfig.java Mon Oct 08 18:23:05 2018 -0400 @@ -648,11 +648,33 @@ public final long unsafeArraycopy = getFieldValue("StubRoutines::_unsafe_arraycopy", Long.class, "address"); public final long genericArraycopy = getFieldValue("StubRoutines::_generic_arraycopy", Long.class, "address"); + // Allocation stubs that throw an exception when allocation fails public final long newInstanceAddress = getAddress("JVMCIRuntime::new_instance"); public final long newArrayAddress = getAddress("JVMCIRuntime::new_array"); public final long newMultiArrayAddress = getAddress("JVMCIRuntime::new_multi_array"); - public final long dynamicNewArrayAddress = getAddress("JVMCIRuntime::dynamic_new_array"); - public final long dynamicNewInstanceAddress = getAddress("JVMCIRuntime::dynamic_new_instance"); + + // Allocation stubs that return null when allocation fails + public final long newInstanceOrNullAddress = getAddress("JVMCIRuntime::new_instance_or_null", 0L); + public final long newArrayOrNullAddress = getAddress("JVMCIRuntime::new_array_or_null", 0L); + public final long newMultiArrayOrNullAddress = getAddress("JVMCIRuntime::new_multi_array_or_null", 0L); + + public boolean areNullAllocationStubsAvailable() { + return newInstanceOrNullAddress != 0L; + } + + /** + * Checks that HotSpot implements all or none of the allocate-or-null stubs. + */ + private boolean checkNullAllocationStubs() { + if (newInstanceOrNullAddress == 0L) { + assert newArrayOrNullAddress == 0L; + assert newMultiArrayOrNullAddress == 0L; + } else { + assert newArrayOrNullAddress != 0L; + assert newMultiArrayOrNullAddress != 0L; + } + return true; + } public final long threadIsInterruptedAddress = getAddress("JVMCIRuntime::thread_is_interrupted"); public final long vmMessageAddress = getAddress("JVMCIRuntime::vm_message"); @@ -757,6 +779,7 @@ } assert codeEntryAlignment > 0 : codeEntryAlignment; + assert checkNullAllocationStubs(); return true; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotBackend.java --- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotBackend.java Mon Oct 08 18:17:37 2018 -0400 +++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotBackend.java Mon Oct 08 18:23:05 2018 -0400 @@ -279,21 +279,36 @@ public static final ForeignCallDescriptor VM_ERROR = new ForeignCallDescriptor("vm_error", void.class, Object.class, Object.class, long.class); /** - * New multi array stub call. + * New multi array stub that throws an {@link OutOfMemoryError} on allocation failure. */ public static final ForeignCallDescriptor NEW_MULTI_ARRAY = new ForeignCallDescriptor("new_multi_array", Object.class, KlassPointer.class, int.class, Word.class); /** - * New array stub. + * New multi array stub that will return null on allocation failure. + */ + public static final ForeignCallDescriptor NEW_MULTI_ARRAY_OR_NULL = new ForeignCallDescriptor("new_multi_array_or_null", Object.class, KlassPointer.class, int.class, Word.class); + + /** + * New array stub that throws an {@link OutOfMemoryError} on allocation failure. */ public static final ForeignCallDescriptor NEW_ARRAY = new ForeignCallDescriptor("new_array", Object.class, KlassPointer.class, int.class); /** - * New instance stub. + * New array stub that will return null on allocation failure. + */ + public static final ForeignCallDescriptor NEW_ARRAY_OR_NULL = new ForeignCallDescriptor("new_array_or_null", Object.class, KlassPointer.class, int.class); + + /** + * New instance stub that throws an {@link OutOfMemoryError} on allocation failure. */ public static final ForeignCallDescriptor NEW_INSTANCE = new ForeignCallDescriptor("new_instance", Object.class, KlassPointer.class); /** + * New instance stub that will return null on allocation failure. + */ + public static final ForeignCallDescriptor NEW_INSTANCE_OR_NULL = new ForeignCallDescriptor("new_instance_or_null", Object.class, KlassPointer.class); + + /** * @see ResolveConstantStubCall */ public static final ForeignCallDescriptor RESOLVE_STRING_BY_SYMBOL = new ForeignCallDescriptor("resolve_string_by_symbol", Object.class, Word.class, Word.class); diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotHostForeignCallsProvider.java --- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotHostForeignCallsProvider.java Mon Oct 08 18:17:37 2018 -0400 +++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotHostForeignCallsProvider.java Mon Oct 08 18:23:05 2018 -0400 @@ -45,8 +45,11 @@ import static org.graalvm.compiler.hotspot.HotSpotBackend.MULTIPLY_TO_LEN; import static org.graalvm.compiler.hotspot.HotSpotBackend.MUL_ADD; import static org.graalvm.compiler.hotspot.HotSpotBackend.NEW_ARRAY; +import static org.graalvm.compiler.hotspot.HotSpotBackend.NEW_ARRAY_OR_NULL; import static org.graalvm.compiler.hotspot.HotSpotBackend.NEW_INSTANCE; +import static org.graalvm.compiler.hotspot.HotSpotBackend.NEW_INSTANCE_OR_NULL; import static org.graalvm.compiler.hotspot.HotSpotBackend.NEW_MULTI_ARRAY; +import static org.graalvm.compiler.hotspot.HotSpotBackend.NEW_MULTI_ARRAY_OR_NULL; import static org.graalvm.compiler.hotspot.HotSpotBackend.RESOLVE_DYNAMIC_INVOKE; import static org.graalvm.compiler.hotspot.HotSpotBackend.RESOLVE_KLASS_BY_SYMBOL; import static org.graalvm.compiler.hotspot.HotSpotBackend.RESOLVE_METHOD_BY_SYMBOL_AND_LOAD_COUNTERS; @@ -78,8 +81,6 @@ import static org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.TLAB_TOP_LOCATION; import static org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITORENTER; import static org.graalvm.compiler.hotspot.replacements.MonitorSnippets.MONITOREXIT; -import static org.graalvm.compiler.hotspot.replacements.NewObjectSnippets.DYNAMIC_NEW_ARRAY; -import static org.graalvm.compiler.hotspot.replacements.NewObjectSnippets.DYNAMIC_NEW_INSTANCE; import static org.graalvm.compiler.hotspot.replacements.ThreadSubstitutions.THREAD_IS_INTERRUPTED; import static org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.G1WBPOSTCALL; import static org.graalvm.compiler.hotspot.replacements.WriteBarrierSnippets.G1WBPRECALL; @@ -288,6 +289,14 @@ linkForeignCall(options, providers, NEW_INSTANCE, c.newInstanceAddress, PREPEND_THREAD, SAFEPOINT, REEXECUTABLE, TLAB_TOP_LOCATION, TLAB_END_LOCATION); linkForeignCall(options, providers, NEW_ARRAY, c.newArrayAddress, PREPEND_THREAD, SAFEPOINT, REEXECUTABLE, TLAB_TOP_LOCATION, TLAB_END_LOCATION); + linkForeignCall(options, providers, NEW_MULTI_ARRAY, c.newMultiArrayAddress, PREPEND_THREAD, SAFEPOINT, REEXECUTABLE, TLAB_TOP_LOCATION, TLAB_END_LOCATION); + + if (c.areNullAllocationStubsAvailable()) { + linkForeignCall(options, providers, NEW_INSTANCE_OR_NULL, c.newInstanceOrNullAddress, PREPEND_THREAD, SAFEPOINT, REEXECUTABLE, TLAB_TOP_LOCATION, TLAB_END_LOCATION); + linkForeignCall(options, providers, NEW_ARRAY_OR_NULL, c.newArrayOrNullAddress, PREPEND_THREAD, SAFEPOINT, REEXECUTABLE, TLAB_TOP_LOCATION, TLAB_END_LOCATION); + linkForeignCall(options, providers, NEW_MULTI_ARRAY_OR_NULL, c.newMultiArrayOrNullAddress, PREPEND_THREAD, SAFEPOINT, REEXECUTABLE, TLAB_TOP_LOCATION, TLAB_END_LOCATION); + } + link(new ExceptionHandlerStub(options, providers, foreignCalls.get(EXCEPTION_HANDLER))); link(new UnwindExceptionToCallerStub(options, providers, registerStubCall(UNWIND_EXCEPTION_TO_CALLER, SAFEPOINT, REEXECUTABLE_ONLY_AFTER_EXCEPTION, any()))); link(new VerifyOopStub(options, providers, registerStubCall(VERIFY_OOP, LEAF_NOFP, REEXECUTABLE, NO_LOCATIONS))); @@ -305,11 +314,8 @@ linkForeignCall(options, providers, REGISTER_FINALIZER, c.registerFinalizerAddress, PREPEND_THREAD, SAFEPOINT, REEXECUTABLE_ONLY_AFTER_EXCEPTION, any()); linkForeignCall(options, providers, MONITORENTER, c.monitorenterAddress, PREPEND_THREAD, SAFEPOINT, REEXECUTABLE_ONLY_AFTER_EXCEPTION, any()); linkForeignCall(options, providers, MONITOREXIT, c.monitorexitAddress, PREPEND_THREAD, STACK_INSPECTABLE_LEAF, REEXECUTABLE_ONLY_AFTER_EXCEPTION, any()); - linkForeignCall(options, providers, NEW_MULTI_ARRAY, c.newMultiArrayAddress, PREPEND_THREAD, SAFEPOINT, REEXECUTABLE, TLAB_TOP_LOCATION, TLAB_END_LOCATION); linkForeignCall(options, providers, NOTIFY, c.notifyAddress, PREPEND_THREAD, SAFEPOINT, REEXECUTABLE_ONLY_AFTER_EXCEPTION, any()); linkForeignCall(options, providers, NOTIFY_ALL, c.notifyAllAddress, PREPEND_THREAD, SAFEPOINT, REEXECUTABLE_ONLY_AFTER_EXCEPTION, any()); - linkForeignCall(options, providers, DYNAMIC_NEW_ARRAY, c.dynamicNewArrayAddress, PREPEND_THREAD, SAFEPOINT, REEXECUTABLE); - linkForeignCall(options, providers, DYNAMIC_NEW_INSTANCE, c.dynamicNewInstanceAddress, PREPEND_THREAD, SAFEPOINT, REEXECUTABLE); linkForeignCall(options, providers, LOG_PRINTF, c.logPrintfAddress, PREPEND_THREAD, LEAF, REEXECUTABLE, NO_LOCATIONS); linkForeignCall(options, providers, LOG_OBJECT, c.logObjectAddress, PREPEND_THREAD, LEAF, REEXECUTABLE, NO_LOCATIONS); linkForeignCall(options, providers, LOG_PRIMITIVE, c.logPrimitiveAddress, PREPEND_THREAD, LEAF, REEXECUTABLE, NO_LOCATIONS); diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/NewObjectSnippets.java --- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/NewObjectSnippets.java Mon Oct 08 18:17:37 2018 -0400 +++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/NewObjectSnippets.java Mon Oct 08 18:23:05 2018 -0400 @@ -24,9 +24,17 @@ package org.graalvm.compiler.hotspot.replacements; +import static jdk.vm.ci.meta.DeoptimizationAction.None; +import static jdk.vm.ci.meta.DeoptimizationReason.RuntimeConstraint; import static org.graalvm.compiler.core.common.GraalOptions.GeneratePIC; import static org.graalvm.compiler.core.common.calc.UnsignedMath.belowThan; -import static org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.INJECTED_VMCONFIG; +import static org.graalvm.compiler.hotspot.GraalHotSpotVMConfigBase.INJECTED_VMCONFIG; +import static org.graalvm.compiler.hotspot.HotSpotBackend.NEW_ARRAY; +import static org.graalvm.compiler.hotspot.HotSpotBackend.NEW_ARRAY_OR_NULL; +import static org.graalvm.compiler.hotspot.HotSpotBackend.NEW_INSTANCE; +import static org.graalvm.compiler.hotspot.HotSpotBackend.NEW_INSTANCE_OR_NULL; +import static org.graalvm.compiler.hotspot.HotSpotBackend.NEW_MULTI_ARRAY; +import static org.graalvm.compiler.hotspot.HotSpotBackend.NEW_MULTI_ARRAY_OR_NULL; import static org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.CLASS_ARRAY_KLASS_LOCATION; import static org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.HUB_WRITE_LOCATION; import static org.graalvm.compiler.hotspot.replacements.HotSpotReplacementsUtil.MARK_WORD_LOCATION; @@ -70,6 +78,7 @@ import static org.graalvm.compiler.replacements.nodes.ExplodeLoopNode.explodeLoop; import org.graalvm.compiler.api.replacements.Fold; +import org.graalvm.compiler.api.replacements.Fold.InjectedParameter; import org.graalvm.compiler.api.replacements.Snippet; import org.graalvm.compiler.api.replacements.Snippet.ConstantParameter; import org.graalvm.compiler.api.replacements.Snippet.VarargsParameter; @@ -80,7 +89,6 @@ import org.graalvm.compiler.graph.Node.ConstantNodeParameter; import org.graalvm.compiler.graph.Node.NodeIntrinsic; import org.graalvm.compiler.hotspot.GraalHotSpotVMConfig; -import org.graalvm.compiler.hotspot.HotSpotBackend; import org.graalvm.compiler.hotspot.meta.HotSpotProviders; import org.graalvm.compiler.hotspot.meta.HotSpotRegistersProvider; import org.graalvm.compiler.hotspot.nodes.DimensionsNode; @@ -126,8 +134,6 @@ import jdk.vm.ci.code.Register; import jdk.vm.ci.code.TargetDescription; import jdk.vm.ci.hotspot.HotSpotResolvedObjectType; -import jdk.vm.ci.meta.DeoptimizationAction; -import jdk.vm.ci.meta.DeoptimizationReason; import jdk.vm.ci.meta.JavaKind; import jdk.vm.ci.meta.ResolvedJavaType; @@ -220,14 +226,25 @@ if (counters != null && counters.stub != null) { counters.stub.inc(); } - result = newInstance(HotSpotBackend.NEW_INSTANCE, hub); + result = newInstanceStub(hub); } profileAllocation("instance", size, typeContext, options); return verifyOop(result); } + public static Object newInstanceStub(KlassPointer hub) { + if (useNullAllocationStubs(INJECTED_VMCONFIG)) { + return nonNullOrDeopt(newInstanceOrNull(NEW_INSTANCE_OR_NULL, hub)); + } else { + return newInstance(NEW_INSTANCE, hub); + } + } + @NodeIntrinsic(value = ForeignCallNode.class, injectedStampIsNonNull = true) - public static native Object newInstance(@ConstantNodeParameter ForeignCallDescriptor descriptor, KlassPointer hub); + private static native Object newInstance(@ConstantNodeParameter ForeignCallDescriptor descriptor, KlassPointer hub); + + @NodeIntrinsic(value = ForeignCallNode.class, injectedStampIsNonNull = false) + private static native Object newInstanceOrNull(@ConstantNodeParameter ForeignCallDescriptor descriptor, KlassPointer hub); @Snippet public static Object allocateInstancePIC(@ConstantParameter int size, KlassPointer hub, Word prototypeMarkWord, @ConstantParameter boolean fillContents, @@ -244,18 +261,18 @@ public static Object allocateInstanceDynamic(Class type, Class classClass, @ConstantParameter boolean fillContents, @ConstantParameter Register threadRegister, @ConstantParameter OptionValues options, @ConstantParameter Counters counters) { if (probability(SLOW_PATH_PROBABILITY, type == null)) { - DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint); + DeoptimizeNode.deopt(None, RuntimeConstraint); } Class nonNullType = PiNode.piCastNonNullClass(type, SnippetAnchorNode.anchor()); if (probability(SLOW_PATH_PROBABILITY, DynamicNewInstanceNode.throwsInstantiationException(type, classClass))) { - DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint); + DeoptimizeNode.deopt(None, RuntimeConstraint); } - return PiNode.piCastToSnippetReplaceeStamp(allocateInstanceDynamicHelper(type, fillContents, threadRegister, options, counters, nonNullType)); + return PiNode.piCastToSnippetReplaceeStamp(allocateInstanceDynamicHelper(fillContents, threadRegister, options, counters, nonNullType)); } - private static Object allocateInstanceDynamicHelper(Class type, boolean fillContents, Register threadRegister, OptionValues options, Counters counters, Class nonNullType) { + private static Object allocateInstanceDynamicHelper(boolean fillContents, Register threadRegister, OptionValues options, Counters counters, Class nonNullType) { KlassPointer hub = ClassGetHubNode.readClass(nonNullType); if (probability(FAST_PATH_PROBABILITY, !hub.isNull())) { KlassPointer nonNullHub = ClassGetHubNode.piCastNonNull(hub, SnippetAnchorNode.anchor()); @@ -277,10 +294,11 @@ return allocateInstanceHelper(layoutHelper, nonNullHub, prototypeMarkWord, fillContents, threadRegister, false, "", options, counters); } } else { - DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint); + DeoptimizeNode.deopt(None, RuntimeConstraint); } } - return dynamicNewInstanceStub(type); + DeoptimizeNode.deopt(None, RuntimeConstraint); + return null; } /** @@ -307,13 +325,30 @@ } @Snippet - public static Object allocateArray(KlassPointer hub, int length, Word prototypeMarkWord, @ConstantParameter int headerSize, @ConstantParameter int log2ElementSize, - @ConstantParameter boolean fillContents, @ConstantParameter Register threadRegister, @ConstantParameter boolean maybeUnroll, @ConstantParameter String typeContext, - @ConstantParameter OptionValues options, @ConstantParameter Counters counters) { + public static Object allocateArray(KlassPointer hub, + int length, + Word prototypeMarkWord, + @ConstantParameter int headerSize, + @ConstantParameter int log2ElementSize, + @ConstantParameter boolean fillContents, + @ConstantParameter Register threadRegister, + @ConstantParameter boolean maybeUnroll, + @ConstantParameter String typeContext, + @ConstantParameter OptionValues options, + @ConstantParameter Counters counters) { Object result = allocateArrayImpl(hub, length, prototypeMarkWord, headerSize, log2ElementSize, fillContents, threadRegister, maybeUnroll, typeContext, false, options, counters); return piArrayCastToSnippetReplaceeStamp(verifyOop(result), length); } + /** + * When allocating on the slow path, determines whether to use a version of the runtime call + * that returns {@code null} on a failed allocation instead of raising an OutOfMemoryError. + */ + @Fold + static boolean useNullAllocationStubs(@InjectedParameter GraalHotSpotVMConfig config) { + return config.areNullAllocationStubsAvailable(); + } + private static Object allocateArrayImpl(KlassPointer hub, int length, Word prototypeMarkWord, int headerSize, int log2ElementSize, boolean fillContents, Register threadRegister, boolean maybeUnroll, String typeContext, boolean skipNegativeCheck, OptionValues options, Counters counters) { Object result; @@ -331,27 +366,41 @@ } result = formatArray(hub, allocationSize, length, headerSize, top, prototypeMarkWord, fillContents, maybeUnroll, counters); } else { - result = newArray(HotSpotBackend.NEW_ARRAY, hub, length); + result = newArrayStub(hub, length); } profileAllocation("array", allocationSize, typeContext, options); return result; } - @NodeIntrinsic(value = ForeignCallNode.class, injectedStampIsNonNull = true) - public static native Object newArray(@ConstantNodeParameter ForeignCallDescriptor descriptor, KlassPointer hub, int length); - - public static final ForeignCallDescriptor DYNAMIC_NEW_ARRAY = new ForeignCallDescriptor("dynamic_new_array", Object.class, Class.class, int.class); - public static final ForeignCallDescriptor DYNAMIC_NEW_INSTANCE = new ForeignCallDescriptor("dynamic_new_instance", Object.class, Class.class); - - @NodeIntrinsic(value = ForeignCallNode.class, injectedStampIsNonNull = true) - public static native Object dynamicNewArrayStub(@ConstantNodeParameter ForeignCallDescriptor descriptor, Class elementType, int length); - - public static Object dynamicNewInstanceStub(Class elementType) { - return dynamicNewInstanceStubCall(DYNAMIC_NEW_INSTANCE, elementType); + public static Object newArrayStub(KlassPointer hub, int length) { + if (useNullAllocationStubs(INJECTED_VMCONFIG)) { + return nonNullOrDeopt(newArrayOrNull(NEW_ARRAY_OR_NULL, hub, length)); + } else { + return newArray(NEW_ARRAY, hub, length); + } } @NodeIntrinsic(value = ForeignCallNode.class, injectedStampIsNonNull = true) - public static native Object dynamicNewInstanceStubCall(@ConstantNodeParameter ForeignCallDescriptor descriptor, Class elementType); + private static native Object newArray(@ConstantNodeParameter ForeignCallDescriptor descriptor, KlassPointer hub, int length); + + @NodeIntrinsic(value = ForeignCallNode.class, injectedStampIsNonNull = false) + private static native Object newArrayOrNull(@ConstantNodeParameter ForeignCallDescriptor descriptor, KlassPointer hub, int length); + + /** + * Deoptimizes if {@code obj == null} otherwise returns {@code obj}. + */ + private static Object nonNullOrDeopt(Object obj) { + if (obj == null) { + DeoptimizeNode.deopt(None, RuntimeConstraint); + } + return obj; + } + + @NodeIntrinsic(value = ForeignCallNode.class, injectedStampIsNonNull = true) + public static native Object dynamicNewInstance(@ConstantNodeParameter ForeignCallDescriptor descriptor, Class elementType); + + @NodeIntrinsic(value = ForeignCallNode.class, injectedStampIsNonNull = false) + public static native Object dynamicNewInstanceOrNull(@ConstantNodeParameter ForeignCallDescriptor descriptor, Class elementType); @Snippet public static Object allocateArrayDynamic(Class elementType, Class voidClass, int length, @ConstantParameter boolean fillContents, @ConstantParameter Register threadRegister, @@ -369,17 +418,17 @@ */ staticAssert(knownElementKind != JavaKind.Void, "unsupported knownElementKind"); if (knownElementKind == JavaKind.Illegal && probability(SLOW_PATH_PROBABILITY, elementType == null || DynamicNewArrayNode.throwsIllegalArgumentException(elementType, voidClass))) { - DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint); + DeoptimizeNode.deopt(None, RuntimeConstraint); } KlassPointer klass = loadKlassFromObject(elementType, arrayKlassOffset(INJECTED_VMCONFIG), CLASS_ARRAY_KLASS_LOCATION); if (klass.isNull()) { - DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint); + DeoptimizeNode.deopt(None, RuntimeConstraint); } KlassPointer nonNullKlass = ClassGetHubNode.piCastNonNull(klass, SnippetAnchorNode.anchor()); if (length < 0) { - DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint); + DeoptimizeNode.deopt(None, RuntimeConstraint); } int layoutHelper; if (knownElementKind == JavaKind.Illegal) { @@ -412,24 +461,35 @@ * Calls the runtime stub for implementing MULTIANEWARRAY. */ @Snippet - public static Object newmultiarray(KlassPointer hub, @ConstantParameter int rank, @VarargsParameter int[] dimensions) { + private static Object newmultiarray(KlassPointer hub, @ConstantParameter int rank, @VarargsParameter int[] dimensions) { Word dims = DimensionsNode.allocaDimsArray(rank); ExplodeLoopNode.explodeLoop(); for (int i = 0; i < rank; i++) { dims.writeInt(i * 4, dimensions[i], LocationIdentity.init()); } - return newArrayCall(HotSpotBackend.NEW_MULTI_ARRAY, hub, rank, dims); + return newMultiArrayStub(hub, rank, dims); + } + + private static Object newMultiArrayStub(KlassPointer hub, int rank, Word dims) { + if (useNullAllocationStubs(INJECTED_VMCONFIG)) { + return nonNullOrDeopt(newMultiArrayOrNull(NEW_MULTI_ARRAY_OR_NULL, hub, rank, dims)); + } else { + return newMultiArray(NEW_MULTI_ARRAY, hub, rank, dims); + } } @Snippet - public static Object newmultiarrayPIC(KlassPointer hub, @ConstantParameter int rank, @VarargsParameter int[] dimensions) { + private static Object newmultiarrayPIC(KlassPointer hub, @ConstantParameter int rank, @VarargsParameter int[] dimensions) { // Array type would be resolved by dominating resolution. KlassPointer picHub = LoadConstantIndirectlyFixedNode.loadKlass(hub); return newmultiarray(picHub, rank, dimensions); } @NodeIntrinsic(value = ForeignCallNode.class, injectedStampIsNonNull = true) - public static native Object newArrayCall(@ConstantNodeParameter ForeignCallDescriptor descriptor, KlassPointer hub, int rank, Word dims); + private static native Object newMultiArray(@ConstantNodeParameter ForeignCallDescriptor descriptor, KlassPointer hub, int rank, Word dims); + + @NodeIntrinsic(value = ForeignCallNode.class, injectedStampIsNonNull = false) + private static native Object newMultiArrayOrNull(@ConstantNodeParameter ForeignCallDescriptor descriptor, KlassPointer hub, int rank, Word dims); /** * Maximum number of long stores to emit when zeroing an object with a constant size. Larger @@ -509,17 +569,9 @@ } /** - * Formats some allocated memory with an object header and zeroes out the rest. Disables asserts - * since they can't be compiled in stubs. - */ - public static Object formatObjectForStub(KlassPointer hub, int size, Word memory, Word compileTimePrototypeMarkWord) { - return formatObject(hub, size, memory, compileTimePrototypeMarkWord, true, false, null); - } - - /** * Formats some allocated memory with an object header and zeroes out the rest. */ - protected static Object formatObject(KlassPointer hub, int size, Word memory, Word compileTimePrototypeMarkWord, boolean fillContents, boolean constantSize, Counters counters) { + private static Object formatObject(KlassPointer hub, int size, Word memory, Word compileTimePrototypeMarkWord, boolean fillContents, boolean constantSize, Counters counters) { Word prototypeMarkWord = useBiasedLocking(INJECTED_VMCONFIG) ? hub.readWord(prototypeMarkWordOffset(INJECTED_VMCONFIG), PROTOTYPE_MARK_WORD_LOCATION) : compileTimePrototypeMarkWord; initializeObjectHeader(memory, prototypeMarkWord, hub); if (fillContents) { @@ -532,7 +584,7 @@ } @Snippet - protected static void verifyHeap(@ConstantParameter Register threadRegister) { + private static void verifyHeap(@ConstantParameter Register threadRegister) { Word thread = registerAsWord(threadRegister); Word topValue = readTlabTop(thread); if (!topValue.equal(WordFactory.zero())) { @@ -546,7 +598,7 @@ /** * Formats some allocated memory with an object header and zeroes out the rest. */ - public static Object formatArray(KlassPointer hub, int allocationSize, int length, int headerSize, Word memory, Word prototypeMarkWord, boolean fillContents, boolean maybeUnroll, + private static Object formatArray(KlassPointer hub, int allocationSize, int length, int headerSize, Word memory, Word prototypeMarkWord, boolean fillContents, boolean maybeUnroll, Counters counters) { memory.writeInt(arrayLengthOffset(INJECTED_VMCONFIG), length, LocationIdentity.init()); /* diff -r 20568f1e1aa7 -r cf8d1b2388b8 src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/JavadocTool.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/JavadocTool.java Mon Oct 08 18:17:37 2018 -0400 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/JavadocTool.java Mon Oct 08 18:23:05 2018 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2018, 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 @@ -34,6 +34,8 @@ import java.util.Map; import java.util.Set; +import javax.lang.model.element.Element; +import javax.lang.model.element.ElementKind; import javax.tools.JavaFileObject; import javax.tools.StandardJavaFileManager; @@ -41,6 +43,7 @@ import com.sun.tools.javac.code.DeferredCompletionFailureHandler; import com.sun.tools.javac.code.Symbol.Completer; import com.sun.tools.javac.code.Symbol.CompletionFailure; +import com.sun.tools.javac.code.Symbol.PackageSymbol; import com.sun.tools.javac.comp.Enter; import com.sun.tools.javac.tree.JCTree; import com.sun.tools.javac.tree.JCTree.JCClassDecl; @@ -213,6 +216,17 @@ dcfh.setHandler(dcfh.userCodeHandler); etable.analyze(); + + // Ensure that package-info is read for all included packages + for (Element e : etable.getIncludedElements()) { + if (e.getKind() == ElementKind.PACKAGE) { + PackageSymbol packge = (PackageSymbol) e; + if (packge.package_info != null) { + packge.package_info.complete(); + } + } + } + } catch (CompletionFailure cf) { throw new ToolException(ABNORMAL, cf.getMessage(), cf); } catch (Abort abort) { diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/TestCommon.gmk --- a/test/TestCommon.gmk Mon Oct 08 18:17:37 2018 -0400 +++ b/test/TestCommon.gmk Mon Oct 08 18:23:05 2018 -0400 @@ -178,20 +178,6 @@ endif endif - -# Optionally create a CDS archive before running tests -ifeq ($(GENERATE_CDS_ARCHIVE), true) - CDS_ARCHIVE_FILE := $(ABS_TEST_OUTPUT_DIR)/cds_archive.jsa - - $(CDS_ARCHIVE_FILE): $(PRODUCT_HOME) - $(PRODUCT_HOME)/bin/java -XX:+UnlockDiagnosticVMOptions \ - -XX:SharedArchiveFile=$(shell $(GETMIXEDPATH) "$(CDS_ARCHIVE_FILE)") -Xshare:dump - - CDS_VM_ARGS := -XX:+UnlockDiagnosticVMOptions -XX:SharedArchiveFile=$(shell $(GETMIXEDPATH) "$(CDS_ARCHIVE_FILE)") - JTREG_TEST_OPTIONS += $(addprefix -vmoption:, $(CDS_VM_ARGS)) - TEST_PREREQS += $(CDS_ARCHIVE_FILE) -endif - # How to create the test bundle (pass or fail, we want to create this) # Follow command with ";$(BUNDLE_UP_AND_EXIT)", so it always gets executed. ifneq ($(ARCHIVE_BUNDLE), ) diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/ProblemList-cds-mode.txt --- a/test/hotspot/jtreg/ProblemList-cds-mode.txt Mon Oct 08 18:17:37 2018 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -# -# Copyright (c) 2018, 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. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# - -############################################################################# -# -# Additional list of quarantined tests when CDS mode enabled. -# -############################################################################# - diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/ProblemList-non-cds-mode.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/hotspot/jtreg/ProblemList-non-cds-mode.txt Mon Oct 08 18:23:05 2018 -0400 @@ -0,0 +1,29 @@ +# +# Copyright (c) 2018, 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. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +############################################################################# +# +# Additional list of quarantined tests when non-CDS mode enabled. +# +############################################################################# + diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/gc/logging/TestMetaSpaceLog.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/hotspot/jtreg/gc/logging/TestMetaSpaceLog.java Mon Oct 08 18:23:05 2018 -0400 @@ -0,0 +1,143 @@ +/* + * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2018, Google 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. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.io.File; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.List; +import java.util.function.Predicate; +import java.util.regex.Pattern; +import java.util.regex.Matcher; + +import jdk.test.lib.Asserts; +import jdk.test.lib.process.OutputAnalyzer; +import jdk.test.lib.process.ProcessTools; +import sun.hotspot.WhiteBox; + +/* + * @test TestMetaSpaceLog + * @bug 8211123 + * @summary Ensure that the Metaspace is updated in the log + * @requires vm.gc=="null" + * @key gc + * @library /test/lib + * @modules java.base/jdk.internal.misc + * java.management + * + * @compile TestMetaSpaceLog.java + * @run driver ClassFileInstaller sun.hotspot.WhiteBox + * @run main TestMetaSpaceLog + */ + +public class TestMetaSpaceLog { + private static Pattern metaSpaceRegexp; + + static { + // Do this once here. + metaSpaceRegexp = Pattern.compile(".*Metaspace: ([0-9]+).*->([0-9]+).*"); + } + + public static void main(String[] args) throws Exception { + testMetaSpaceUpdate("UseParallelGC"); + testMetaSpaceUpdate("UseG1GC"); + testMetaSpaceUpdate("UseConcMarkSweepGC"); + testMetaSpaceUpdate("UseSerialGC"); + } + + private static void verifyContainsMetaSpaceUpdate(OutputAnalyzer output) { + Predicate collectedMetaSpace = line -> check(line); + + // At least one metaspace line from GC should show GC being collected. + boolean foundCollectedMetaSpace = output.asLines().stream() + .filter(s -> s.contains("[gc,metaspace")) + .anyMatch(TestMetaSpaceLog::check); + Asserts.assertTrue(foundCollectedMetaSpace); + } + + private static boolean check(String line) { + Matcher m = metaSpaceRegexp.matcher(line); + Asserts.assertTrue(m.matches(), "Unexpected line for metaspace logging: " + line); + long before = Long.parseLong(m.group(1)); + long after = Long.parseLong(m.group(2)); + return before > after; + } + + private static void testMetaSpaceUpdate(String gcFlag) throws Exception { + // Propagate test.src for the jar file. + String testSrc= "-Dtest.src=" + System.getProperty("test.src", "."); + + System.err.println("Testing with GC Flag: " + gcFlag); + ProcessBuilder pb = + ProcessTools.createJavaProcessBuilder( + "-XX:+" + gcFlag, + "-Xlog:gc*", + "-Xbootclasspath/a:.", + "-XX:+UnlockDiagnosticVMOptions", + "-XX:+WhiteBoxAPI", + "-Xmx1000M", + "-Xms1000M", + testSrc, StressMetaSpace.class.getName()); + + OutputAnalyzer output = null; + try { + output = new OutputAnalyzer(pb.start()); + verifyContainsMetaSpaceUpdate(output); + } catch (Exception e) { + // For error diagnosis: print and throw. + e.printStackTrace(); + output.reportDiagnosticSummary(); + throw e; + } + } + + static class StressMetaSpace { + private static URL[] urls = new URL[1]; + + static { + try { + File jarFile = new File(System.getProperty("test.src") + "/testcases.jar"); + urls[0] = jarFile.toURI().toURL(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void main(String args[]) { + WhiteBox wb = WhiteBox.getWhiteBox(); + for(int i = 0; i < 10000; i++) { + loadClass(wb); + } + wb.fullGC(); + } + + public static void loadClass(WhiteBox wb) { + try { + URLClassLoader ucl = new URLClassLoader(urls); + Class.forName("case00", false, ucl); + } catch (Exception e) { + e.printStackTrace(); + } + } + } +} diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/gc/logging/testcases.jar Binary file test/hotspot/jtreg/gc/logging/testcases.jar has changed diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/runtime/SharedArchiveFile/CheckDefaultArchiveFile.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/hotspot/jtreg/runtime/SharedArchiveFile/CheckDefaultArchiveFile.java Mon Oct 08 18:23:05 2018 -0400 @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2018, 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. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test Default CDS archive file + * @summary JDK platforms/binaries do not support default CDS archive should + * not contain classes.jsa in the default location. + * @library /test/lib + * @modules java.base/jdk.internal.misc + * java.management + * @build sun.hotspot.WhiteBox + * @run driver ClassFileInstaller sun.hotspot.WhiteBox + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions + * -XX:+WhiteBoxAPI CheckDefaultArchiveFile + */ +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import jdk.test.lib.Platform; +import jdk.test.lib.cds.CDSTestUtils; +import jtreg.SkippedException; +import sun.hotspot.WhiteBox; + +public class CheckDefaultArchiveFile { + public static void main(String[] args) throws Exception { + WhiteBox wb = WhiteBox.getWhiteBox(); + String osArch = Platform.getOsArch(); + String vmName = System.getProperty("java.vm.name"); + String vmString = vmName + "(" + osArch + ")"; + String jsaString = wb.getDefaultArchivePath(); + Path jsa = Paths.get(jsaString); + if (Platform.isDefaultCDSArchiveSupported()) { + if (Files.exists(jsa)) { + System.out.println("Passed. " + vmString + + ": has default classes.jsa file"); + } else { + throw new RuntimeException(vmString + "has no " + jsaString); + } + } else { + throw new SkippedException("Default CDS archive is not supported"); + } + } +} diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/runtime/SharedArchiveFile/CheckSharingWithDefaultArchive.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/hotspot/jtreg/runtime/SharedArchiveFile/CheckSharingWithDefaultArchive.java Mon Oct 08 18:23:05 2018 -0400 @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2018, 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. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test Default CDS archive + * @summary Sharing should be enabled by default on supported platform/binaries. + * No -Xshare:dump is needed. No -Xshare:auto or -Xshare:on in needed. + * Verify a set of well-known shared classes. + * @requires vm.cds + * @library /test/lib + * @modules java.base/jdk.internal.misc + * java.management + * @build sun.hotspot.WhiteBox + * @run driver ClassFileInstaller sun.hotspot.WhiteBox + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions + * -XX:+WhiteBoxAPI CheckSharingWithDefaultArchive -showversion + */ +import jdk.test.lib.Platform; +import jtreg.SkippedException; +import sun.hotspot.WhiteBox; + +public class CheckSharingWithDefaultArchive { + public static void main(String[] args) throws Exception { + if (!Platform.isDefaultCDSArchiveSupported()) { + throw new SkippedException("Supported platform"); + } + + WhiteBox wb = WhiteBox.getWhiteBox(); + String classes[] = {"java.lang.Object", + "java.lang.String", + "java.lang.Class"}; + // If maping fails, sharing is disabled + if (wb.isSharingEnabled()) { + for (int i = 0; i < classes.length; i++) { + Class c = Class.forName(classes[i]); + if (wb.isSharedClass(c)) { + System.out.println(classes[i] + " is shared."); + } else { + throw new RuntimeException(classes[i] + " is not shared"); + } + } + } else { + throw new SkippedException("Sharing is not enabled."); + } + } +} diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/runtime/appcds/CommandLineFlagCombo.java --- a/test/hotspot/jtreg/runtime/appcds/CommandLineFlagCombo.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/runtime/appcds/CommandLineFlagCombo.java Mon Oct 08 18:23:05 2018 -0400 @@ -24,7 +24,10 @@ /* * @test CommandLineFlagCombo - * @requires vm.cds + * @requires vm.cds.archived.java.heap + * @comment This test explicitly chooses the type of GC to be used by sub-processes. It may conflict with the GC type set + * via the -vmoptions command line option of JTREG. vm.gc==null will help the test case to discard the explicitly passed + * vm options. * @requires (vm.gc=="null") * @summary Test command line flag combinations that * could likely affect the behaviour of AppCDS diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/runtime/appcds/cacheObject/DifferentHeapSizes.java --- a/test/hotspot/jtreg/runtime/appcds/cacheObject/DifferentHeapSizes.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/runtime/appcds/cacheObject/DifferentHeapSizes.java Mon Oct 08 18:23:05 2018 -0400 @@ -26,7 +26,6 @@ * @test * @summary Test automatic relocation of archive heap regions dur to heap size changes. * @requires vm.cds.archived.java.heap - * @requires (vm.gc=="null") * @library /test/lib /test/hotspot/jtreg/runtime/appcds * @modules jdk.jartool/sun.tools.jar * @compile ../test-classes/Hello.java diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/runtime/appcds/cacheObject/OpenArchiveRegion.java --- a/test/hotspot/jtreg/runtime/appcds/cacheObject/OpenArchiveRegion.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/runtime/appcds/cacheObject/OpenArchiveRegion.java Mon Oct 08 18:23:05 2018 -0400 @@ -26,6 +26,9 @@ * @test * @summary Test open archive heap regions * @requires vm.cds.archived.java.heap + * @comment This test explicitly chooses the type of GC to be used by sub-processes. It may conflict with the GC type set + * via the -vmoptions command line option of JTREG. vm.gc==null will help the test case to discard the explicitly passed + * vm options. * @requires (vm.gc=="null") * @library /test/lib /test/hotspot/jtreg/runtime/appcds * @modules java.base/jdk.internal.misc diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/runtime/appcds/sharedStrings/IncompatibleOptions.java --- a/test/hotspot/jtreg/runtime/appcds/sharedStrings/IncompatibleOptions.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/runtime/appcds/sharedStrings/IncompatibleOptions.java Mon Oct 08 18:23:05 2018 -0400 @@ -27,6 +27,9 @@ * @summary Test options that are incompatible with use of shared strings * Also test mismatch in oops encoding between dump time and run time * @requires vm.cds.archived.java.heap + * @comment This test explicitly chooses the type of GC to be used by sub-processes. It may conflict with the GC type set + * via the -vmoptions command line option of JTREG. vm.gc==null will help the test case to discard the explicitly passed + * vm options. * @requires (vm.gc=="null") * @library /test/lib /test/hotspot/jtreg/runtime/appcds * @modules jdk.jartool/sun.tools.jar diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/runtime/appcds/sharedStrings/IncompatibleOptions_noCompactStrings.java --- a/test/hotspot/jtreg/runtime/appcds/sharedStrings/IncompatibleOptions_noCompactStrings.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/runtime/appcds/sharedStrings/IncompatibleOptions_noCompactStrings.java Mon Oct 08 18:23:05 2018 -0400 @@ -27,6 +27,9 @@ * @summary Test options that are incompatible with use of shared strings * Also test mismatch in oops encoding between dump time and run time * @requires vm.cds.archived.java.heap + * @comment This test explicitly chooses the type of GC to be used by sub-processes. It may conflict with the GC type set + * via the -vmoptions command line option of JTREG. vm.gc==null will help the test case to discard the explicitly passed + * vm options. * @requires (vm.gc=="null") * @library /test/lib /test/hotspot/jtreg/runtime/appcds * @modules jdk.jartool/sun.tools.jar diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/runtime/appcds/sharedStrings/IncompatibleOptions_stringDedup.java --- a/test/hotspot/jtreg/runtime/appcds/sharedStrings/IncompatibleOptions_stringDedup.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/runtime/appcds/sharedStrings/IncompatibleOptions_stringDedup.java Mon Oct 08 18:23:05 2018 -0400 @@ -27,6 +27,9 @@ * @summary Test options that are incompatible with use of shared strings * Also test mismatch in oops encoding between dump time and run time * @requires vm.cds.archived.java.heap + * @comment This test explicitly chooses the type of GC to be used by sub-processes. It may conflict with the GC type set + * via the -vmoptions command line option of JTREG. vm.gc==null will help the test case to discard the explicitly passed + * vm options. * @requires (vm.gc=="null") * @library /test/lib /test/hotspot/jtreg/runtime/appcds * @modules jdk.jartool/sun.tools.jar diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/runtime/appcds/sharedStrings/SysDictCrash.java --- a/test/hotspot/jtreg/runtime/appcds/sharedStrings/SysDictCrash.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/runtime/appcds/sharedStrings/SysDictCrash.java Mon Oct 08 18:23:05 2018 -0400 @@ -26,8 +26,7 @@ * @test * @summary Regression test for JDK-8098821 * @bug 8098821 - * @requires vm.cds - * @requires vm.gc.G1 + * @requires vm.cds.archived.java.heap * @library /test/lib /test/hotspot/jtreg/runtime/appcds * @modules java.base/jdk.internal.misc * @modules java.management diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java --- a/test/hotspot/jtreg/testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java Mon Oct 08 18:23:05 2018 -0400 @@ -50,8 +50,9 @@ OS("isAix", "isLinux", "isOSX", "isSolaris", "isWindows"), VM_TYPE("isClient", "isServer", "isGraal", "isMinimal", "isZero", "isEmbedded"), MODE("isInt", "isMixed", "isComp"), - IGNORED("isEmulatedClient", "isDebugBuild", "isFastDebugBuild", "isSlowDebugBuild", - "hasSA", "shouldSAAttach", "isTieredSupported", "areCustomLoadersSupportedForCDS"); + IGNORED("isEmulatedClient", "isDebugBuild", "isFastDebugBuild", + "isSlowDebugBuild", "hasSA", "shouldSAAttach", "isTieredSupported", + "areCustomLoadersSupportedForCDS", "isDefaultCDSArchiveSupported"); public final List methodNames; diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps001/addcaps001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps001/addcaps001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps001/addcaps001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -192,8 +192,7 @@ memset(&caps, 0, sizeof(jvmtiCapabilities)); NSK_DISPLAY0("GetCapabilities() for current JVMTI env\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) { return NSK_FALSE; } @@ -216,8 +215,7 @@ */ static int addCapabilities(jvmtiEnv* jvmti, jvmtiCapabilities* caps, const char where[]) { NSK_DISPLAY0("AddCapabilities() for current JVMTI env\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(caps))) { return NSK_FALSE; } NSK_DISPLAY0(" ... set\n"); @@ -314,9 +312,7 @@ memset(&eventCallbacks, 0, sizeof(eventCallbacks)); eventCallbacks.VMInit = callbackVMInit; eventCallbacks.VMDeath = callbackVMDeath; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps002/addcaps002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps002/addcaps002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps002/addcaps002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -192,8 +192,7 @@ memset(&caps, 0, sizeof(jvmtiCapabilities)); NSK_DISPLAY0("GetCapabilities() for current JVMTI env\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) { return NSK_FALSE; } @@ -216,8 +215,7 @@ */ static int addCapabilities(jvmtiEnv* jvmti, jvmtiCapabilities* caps, const char where[]) { NSK_DISPLAY0("AddCapabilities() for current JVMTI env\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(caps))) { return NSK_FALSE; } NSK_DISPLAY0(" ... set\n"); @@ -231,8 +229,7 @@ */ static int getPotentialCapabilities(jvmtiEnv* jvmti, jvmtiCapabilities* caps) { NSK_DISPLAY0("GetPotentialCapabilities() for current JVMTI env\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(caps))) { return NSK_FALSE; } @@ -334,9 +331,7 @@ memset(&eventCallbacks, 0, sizeof(eventCallbacks)); eventCallbacks.VMInit = callbackVMInit; eventCallbacks.VMDeath = callbackVMDeath; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps003/addcaps003.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps003/addcaps003.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AddCapabilities/addcaps003/addcaps003.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -57,8 +57,7 @@ memset(&caps, 0, sizeof(jvmtiCapabilities)); NSK_DISPLAY0("GetCapabilities() for current JVMTI env\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) { return NSK_FALSE; } @@ -71,8 +70,7 @@ */ static int addCapabilities(jvmtiEnv* jvmti, jvmtiCapabilities* caps, const char where[]) { NSK_DISPLAY0("AddCapabilities() for current JVMTI env\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(caps))) { return NSK_FALSE; } NSK_DISPLAY0(" ... set\n"); @@ -86,8 +84,7 @@ */ static int getPotentialCapabilities(jvmtiEnv* jvmti, jvmtiCapabilities* caps) { NSK_DISPLAY0("GetPotentialCapabilities() for current JVMTI env\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(caps))) { return NSK_FALSE; } @@ -183,9 +180,7 @@ memset(&eventCallbacks, 0, sizeof(eventCallbacks)); eventCallbacks.VMInit = callbackVMInit; eventCallbacks.VMDeath = callbackVMDeath; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach002/attach002Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach002/attach002Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach002/attach002Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -74,12 +74,12 @@ jint nativeMethodsNumber = 1; if (!NSK_JNI_VERIFY(jni, (appClass = - NSK_CPP_STUB2(FindClass, jni, ATTACH002_TARGET_APP_CLASS_NAME)) != NULL)) { + jni->FindClass(ATTACH002_TARGET_APP_CLASS_NAME)) != NULL)) { return NSK_FALSE; } if (!NSK_JNI_VERIFY(jni, - (NSK_CPP_STUB4(RegisterNatives, jni, appClass, nativeMethods, nativeMethodsNumber) == 0))) { + (jni->RegisterNatives(appClass, nativeMethods, nativeMethodsNumber) == 0))) { return NSK_FALSE; } @@ -205,7 +205,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_generate_all_class_hook_events = 1; caps.can_redefine_classes = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps)) ) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps)) ) { /* * If VM is run with -Xshare:on agent can't get required capabilities (see 6718407) */ @@ -222,7 +222,7 @@ eventCallbacks.ClassLoad = classLoadHandler; eventCallbacks.ClassPrepare = classPrepareHandler; eventCallbacks.ClassFileLoadHook = classFileLoadHoockHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach002a/attach002aAgent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach002a/attach002aAgent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach002a/attach002aAgent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -106,13 +106,13 @@ memset(&caps, 0, sizeof(caps)); caps.can_redefine_classes = 1; caps.can_generate_vm_object_alloc_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps)) ) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps)) ) { return JNI_ERR; } memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.VMObjectAlloc = vmObjectAllocHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach008/attach008Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach008/attach008Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach008/attach008Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -123,14 +123,14 @@ memset(&caps, 0, sizeof(caps)); caps.can_generate_monitor_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps)) ) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps)) ) { return JNI_ERR; } memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.MonitorContendedEntered = monitorContentedEnteredHandler; eventCallbacks.MonitorContendedEnter = monitorContentedEnterHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach009/attach009Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach009/attach009Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach009/attach009Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -82,8 +82,7 @@ return; } - if (!NSK_JVMTI_VERIFY( NSK_CPP_STUB4( - SetEventNotificationMode, jvmti, JVMTI_ENABLE, JVMTI_EVENT_CLASS_LOAD, thread) ) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_CLASS_LOAD, thread) ) ) { NSK_COMPLAIN1("Failed to enable events for thread '%s'\n", mainThreadName); nsk_aod_agentFinished(jni, agentName, 0); return; @@ -142,7 +141,7 @@ memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.ClassLoad = classLoadHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach012/attach012Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach012/attach012Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach012/attach012Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -65,7 +65,7 @@ if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL)) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps)) ) { + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps)) ) { return JNI_ERR; } @@ -75,7 +75,7 @@ NSK_DISPLAY1("%s: trying to get all potential capabilities:\n", agentName); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps)) ) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps)) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach014/attach014Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach014/attach014Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach014/attach014Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -62,7 +62,7 @@ if (!nsk_jvmti_aod_disableEvent(jvmti, JVMTI_EVENT_CLASS_LOAD)) success = 0; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB1(DisposeEnvironment, jvmti))) { + if (!NSK_JVMTI_VERIFY(jvmti->DisposeEnvironment())) { success = 0; NSK_COMPLAIN1("%s: failed to dispose environment\n", agentName); } else { @@ -104,7 +104,7 @@ memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.ClassLoad = classLoadHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -97,7 +97,7 @@ memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.ClassPrepare = classPrepareHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Agent01.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Agent01.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Agent01.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -97,7 +97,7 @@ memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.ClassLoad = classLoadHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Target.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Target.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach015/attach015Target.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -37,7 +37,7 @@ */ JNIEXPORT jboolean JNICALL Java_nsk_jvmti_AttachOnDemand_attach015_attach015Target_loadClassFromNative(JNIEnv * jni, jclass klass) { - return NSK_CPP_STUB2(FindClass, jni, LOADED_CLASS_NAME) ? JNI_TRUE : JNI_FALSE; + return jni->FindClass(LOADED_CLASS_NAME) ? JNI_TRUE : JNI_FALSE; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach020/attach020Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach020/attach020Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach020/attach020Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -71,17 +71,15 @@ success = 0; } - if (NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - RawMonitorEnter, jvmti, gcFinishMonitor))) { + if (NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(gcFinishMonitor))) { gcFinishEventReceived = 1; - if (NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - RawMonitorNotify, jvmti, gcFinishMonitor))) { + if (NSK_JVMTI_VERIFY(jvmti->RawMonitorNotify(gcFinishMonitor))) { auxiliaryThreadNotified = 1; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, gcFinishMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(gcFinishMonitor))) { success = 0; } } else { @@ -96,17 +94,15 @@ void JNICALL auxiliaryThreadFunction(jvmtiEnv* jvmti, JNIEnv* jni, void* arg) { NSK_DISPLAY1("%s: auxiliary thread is running\n", agentName); - if (NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - RawMonitorEnter, jvmti, gcFinishMonitor))) { + if (NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(gcFinishMonitor))) { if (!gcFinishEventReceived) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3( - RawMonitorWait, jvmti, gcFinishMonitor, 0))) { + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorWait(gcFinishMonitor, 0))) { success = 0; } } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, gcFinishMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(gcFinishMonitor))) { success = 0; } } else { @@ -122,8 +118,7 @@ if (!NSK_VERIFY((thread = nsk_jvmti_aod_createThread(jni)) != NULL)) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5( - RunAgentThread, jvmti, thread, auxiliaryThreadFunction, NULL, JVMTI_THREAD_NORM_PRIORITY ))) { + if (!NSK_JVMTI_VERIFY(jvmti->RunAgentThread(thread, auxiliaryThreadFunction, NULL, JVMTI_THREAD_NORM_PRIORITY ))) { return NSK_FALSE; } @@ -161,7 +156,7 @@ if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL)) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(CreateRawMonitor, jvmti, "GCFinishMonitor", &gcFinishMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("GCFinishMonitor", &gcFinishMonitor))) { return JNI_ERR; } @@ -170,14 +165,14 @@ memset(&caps, 0, sizeof(caps)); caps.can_generate_garbage_collection_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps)) ) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps)) ) { return JNI_ERR; } memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.GarbageCollectionStart = garbageCollectionStartHandler; eventCallbacks.GarbageCollectionFinish = garbageCollectionFinishHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach021/attach021Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach021/attach021Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach021/attach021Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -56,7 +56,7 @@ JNIEXPORT jboolean JNICALL Java_nsk_jvmti_AttachOnDemand_attach021_attach021Target_setTagFor(JNIEnv * jni, jclass klass, jobject obj) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetTag, jvmti, obj, TAG_VALUE))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetTag(obj, TAG_VALUE))) { return JNI_FALSE; } @@ -95,12 +95,12 @@ jint nativeMethodsNumber = 2; if (!NSK_JNI_VERIFY(jni, (appClass = - NSK_CPP_STUB2(FindClass, jni, ATTACH021_TARGET_APP_CLASS_NAME)) != NULL)) { + jni->FindClass(ATTACH021_TARGET_APP_CLASS_NAME)) != NULL)) { return NSK_FALSE; } if (!NSK_JNI_VERIFY(jni, - (NSK_CPP_STUB4(RegisterNatives, jni, appClass, nativeMethods, nativeMethodsNumber) == 0))) { + (jni->RegisterNatives(appClass, nativeMethods, nativeMethodsNumber) == 0))) { return NSK_FALSE; } @@ -142,13 +142,13 @@ memset(&caps, 0, sizeof(caps)); caps.can_tag_objects = 1; caps.can_generate_object_free_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps)) ) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps)) ) { return JNI_ERR; } memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.ObjectFree = objectFreeHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach022/attach022Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach022/attach022Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach022/attach022Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -84,12 +84,10 @@ void JNICALL objectFreeHandler(jvmtiEnv *jvmti, jlong tag) { NSK_DISPLAY2("%s: ObjectFree event received (object tag: %ld)\n", agentName, tag); - if (NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - RawMonitorEnter, jvmti, objectFreeMonitor))) { - + if (NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(objectFreeMonitor))) { freedObjectsCounter++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, objectFreeMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(objectFreeMonitor))) { success = 0; } } else { @@ -107,12 +105,12 @@ jint nativeMethodsNumber = 1; if (!NSK_JNI_VERIFY(jni, (appClass = - NSK_CPP_STUB2(FindClass, jni, ATTACH022_TARGET_APP_CLASS_NAME)) != NULL)) { + jni->FindClass(ATTACH022_TARGET_APP_CLASS_NAME)) != NULL)) { return NSK_FALSE; } if (!NSK_JNI_VERIFY(jni, - (NSK_CPP_STUB4(RegisterNatives, jni, appClass, nativeMethods, nativeMethodsNumber) == 0))) { + (jni->RegisterNatives(appClass, nativeMethods, nativeMethodsNumber) == 0))) { return NSK_FALSE; } @@ -136,12 +134,10 @@ NSK_DISPLAY2("%s: ObjectAlloc event received (object class: %s)\n", agentName, className); if (!strcmp(className, OBJECTS_FOR_ALLOCATION_TEST_CLASS_NAME)) { - if (NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - RawMonitorEnter, jvmti, objectTagMonitor))) { + if (NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(objectTagMonitor))) { jlong tagValue = taggedObjectsCounter + 1; - - if (!NSK_JVMTI_VERIFY( NSK_CPP_STUB3(SetTag, jvmti, object, tagValue))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetTag(object, tagValue))) { NSK_COMPLAIN1("%s: failed to set tag\n", agentName); success = 0; } else { @@ -149,7 +145,7 @@ taggedObjectsCounter++; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, objectTagMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(objectTagMonitor))) { success = 0; } } else { @@ -195,11 +191,11 @@ return JNI_ERR; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(CreateRawMonitor, jvmti, "ObjectTagMonitor", &objectTagMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("ObjectTagMonitor", &objectTagMonitor))) { return JNI_ERR; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(CreateRawMonitor, jvmti, "ObjectFreeMonitor", &objectFreeMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("ObjectFreeMonitor", &objectFreeMonitor))) { return JNI_ERR; } @@ -207,14 +203,14 @@ caps.can_tag_objects = 1; caps.can_generate_object_free_events = 1; caps.can_generate_vm_object_alloc_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps)) ) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps)) ) { return JNI_ERR; } memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.ObjectFree = objectFreeHandler; eventCallbacks.VMObjectAlloc = vmObjectAllocHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach037/attach037Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach037/attach037Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach037/attach037Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -122,14 +122,14 @@ memset(&caps, 0, sizeof(caps)); caps.can_generate_monitor_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps)) ) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps)) ) { return JNI_ERR; } memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.MonitorWaited = monitorWaitedHandler; eventCallbacks.MonitorWait = monitorWaitHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach038/attach038Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach038/attach038Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach038/attach038Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -119,7 +119,7 @@ memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.ThreadEnd = threadEndHandler; eventCallbacks.ThreadStart = threadStartHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach039/attach039Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach039/attach039Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach039/attach039Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -68,8 +68,7 @@ if (!NSK_VERIFY((thread = nsk_jvmti_aod_createThreadWithName(jni, STARTED_THREAD_NAME)) != NULL)) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5( - RunAgentThread, jvmti, thread, startedThreadFunction, NULL, JVMTI_THREAD_NORM_PRIORITY ))) { + if (!NSK_JVMTI_VERIFY(jvmti->RunAgentThread(thread, startedThreadFunction, NULL, JVMTI_THREAD_NORM_PRIORITY ))) { return NSK_FALSE; } @@ -155,7 +154,7 @@ memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.ThreadEnd = threadEndHandler; eventCallbacks.ThreadStart = threadStartHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach040/attach040Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach040/attach040Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach040/attach040Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -66,7 +66,7 @@ NSK_DISPLAY2("%s: ThreadStart event was received for thread '%s'\n", agentName, startedThreadName); - if (NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetAllThreads, jvmti, &threadsCount, &threads))) { + if (NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threadsCount, &threads))) { int startedThreadWasFound = 0; for (i = 0; i < threadsCount; i++) { @@ -94,8 +94,7 @@ } if (strstr(startedThreadName, TEST_THREAD_NAME_PREFIX)) { - if (NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - RawMonitorEnter, jvmti, threadsCounterMonitor))) { + if (NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(threadsCounterMonitor))) { testThreadsCounter++; @@ -103,7 +102,7 @@ nsk_jvmti_aod_disableEventAndFinish(agentName, JVMTI_EVENT_THREAD_START, success, jvmti, jni); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, threadsCounterMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(threadsCounterMonitor))) { success = 0; } } else { @@ -145,13 +144,13 @@ if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL)) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(CreateRawMonitor, jvmti, "threadsCounterMonitor", &threadsCounterMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("threadsCounterMonitor", &threadsCounterMonitor))) { return JNI_ERR; } memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.ThreadStart = threadStartHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach041/attach041Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach041/attach041Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach041/attach041Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -52,7 +52,7 @@ int i; char threadGroupName[MAX_STRING_LENGTH]; - if(!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetThreadGroupInfo, jvmti, group, &groupInfo))) { + if(!NSK_JVMTI_VERIFY(jvmti->GetThreadGroupInfo(group, &groupInfo))) { return 0; } @@ -61,7 +61,7 @@ NSK_DISPLAY3("%s: trying to find thread '%s' in group '%s'\n", agentName, threadNameToFind, threadGroupName); - if(!NSK_JVMTI_VERIFY(NSK_CPP_STUB6(GetThreadGroupChildren, jvmti, group, &threadsCount, &threads, &groupsCount, &groups))) { + if(!NSK_JVMTI_VERIFY(jvmti->GetThreadGroupChildren(group, &threadsCount, &threads, &groupsCount, &groups))) { return 0; } @@ -118,7 +118,7 @@ jthreadGroup *topGroups; int i; - if(!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetTopThreadGroups, jvmti, &groupsCount, &topGroups))) { + if(!NSK_JVMTI_VERIFY(jvmti->GetTopThreadGroups(&groupsCount, &topGroups))) { NSK_COMPLAIN1("%s: failed to get top thread groups\n", agentName); nsk_jvmti_aod_disableEventAndFinish(agentName, JVMTI_EVENT_THREAD_START, 0, jvmti, jni); return; @@ -172,7 +172,7 @@ memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.ThreadStart = threadStartHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach042/attach042Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach042/attach042Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach042/attach042Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -62,7 +62,7 @@ int i; int startedThreadWasFound = 0; - if(!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetAllThreads, jvmti, &threadsCount, &threads))) { + if(!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threadsCount, &threads))) { NSK_COMPLAIN1("%s: failed to get all threads\n", agentName); nsk_jvmti_aod_disableEventAndFinish(agentName, JVMTI_EVENT_THREAD_START, 0, jvmti, jni); return; @@ -85,7 +85,7 @@ startedThreadWasFound = 1; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetThreadState, jvmti, threads[i], &threadState))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadState(threads[i], &threadState))) { NSK_COMPLAIN2("%s: failed to get status of thread '%s'\n", agentName, threadName); nsk_jvmti_aod_deallocate(jvmti, (unsigned char*)threads); nsk_jvmti_aod_disableEventAndFinish(agentName, JVMTI_EVENT_THREAD_START, 0, jvmti, jni); @@ -136,7 +136,7 @@ memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.ThreadStart = threadStartHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -57,8 +57,7 @@ return; } - if (NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - RawMonitorEnter, jvmti, eventsCounterMonitor))) { + if (NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(eventsCounterMonitor))) { eventsCounter++; @@ -69,7 +68,7 @@ nsk_jvmti_aod_disableEventAndFinish(agentName, JVMTI_EVENT_CLASS_LOAD, success, jvmti, jni); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, eventsCounterMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(eventsCounterMonitor))) { success = 0; } } else { @@ -109,13 +108,13 @@ if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL)) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(CreateRawMonitor, jvmti, "attach045-agent00-eventsCounterMonitor", &eventsCounterMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("attach045-agent00-eventsCounterMonitor", &eventsCounterMonitor))) { return JNI_ERR; } memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.ClassLoad = classLoadHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent01.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent01.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent01.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -59,7 +59,7 @@ return; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetLoadedClasses, jvmti, &loadedClassesCount, &loadedClasses))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetLoadedClasses(&loadedClassesCount, &loadedClasses))) { NSK_COMPLAIN1("%s: failed to get loaded classes\n", agentName); nsk_jvmti_aod_disableEventAndFinish(agentName, JVMTI_EVENT_CLASS_PREPARE, 0, jvmti, jni); return; @@ -67,8 +67,7 @@ nsk_jvmti_aod_deallocate(jvmti, (unsigned char*)loadedClasses); - if (NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - RawMonitorEnter, jvmti, eventsCounterMonitor))) { + if (NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(eventsCounterMonitor))) { eventsCounter++; @@ -80,7 +79,7 @@ nsk_jvmti_aod_disableEventAndFinish(agentName, JVMTI_EVENT_CLASS_PREPARE, success, jvmti, jni); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, eventsCounterMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(eventsCounterMonitor))) { success = 0; } } else { @@ -120,13 +119,13 @@ if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL)) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(CreateRawMonitor, jvmti, "attach045-agent01-eventsCounterMonitor", &eventsCounterMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("attach045-agent01-eventsCounterMonitor", &eventsCounterMonitor))) { return JNI_ERR; } memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.ClassPrepare = classPrepareHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent02.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent02.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent02.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -62,7 +62,7 @@ return; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetAllThreads, jvmti, &threadsCount, &threads))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threadsCount, &threads))) { NSK_COMPLAIN1("%s: failed to get all threads\n", agentName); nsk_jvmti_aod_disableEventsAndFinish(agentName, testEvents, testEventsNumber, 0, jvmti, jni); return; @@ -70,8 +70,7 @@ nsk_jvmti_aod_deallocate(jvmti, (unsigned char*)threads); - if (NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - RawMonitorEnter, jvmti, eventsCounterMonitor))) { + if (NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(eventsCounterMonitor))) { eventsCounter++; @@ -86,7 +85,7 @@ nsk_jvmti_aod_disableEventsAndFinish(agentName, testEvents, testEventsNumber, success, jvmti, jni); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, eventsCounterMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(eventsCounterMonitor))) { success = 0; } } else { @@ -140,14 +139,14 @@ if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL)) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(CreateRawMonitor, jvmti, "attach045-agent02-eventsCounterMonitor", &eventsCounterMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("attach045-agent02-eventsCounterMonitor", &eventsCounterMonitor))) { return JNI_ERR; } memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.ThreadStart = threadStartHandler; eventCallbacks.ThreadEnd = threadEndHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent03.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent03.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach045/attach045Agent03.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -68,8 +68,7 @@ return; } - if (NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - RawMonitorEnter, jvmti, eventsCounterMonitor))) { + if (NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(eventsCounterMonitor))) { eventsCounter++; @@ -79,7 +78,7 @@ if ((eventsCounter % 10) == 0) { NSK_DISPLAY1("%s: force garbage collection\n", agentName); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB1(ForceGarbageCollection, jvmti))) + if (!NSK_JVMTI_VERIFY(jvmti->ForceGarbageCollection())) success = 0; } @@ -89,7 +88,7 @@ nsk_jvmti_aod_disableEventsAndFinish(agentName, testEvents, testEventsNumber, success, jvmti, jni); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, eventsCounterMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(eventsCounterMonitor))) { success = 0; } } else { @@ -130,19 +129,19 @@ if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL)) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(CreateRawMonitor, jvmti, "attach045-agent03-eventsCounterMonitor", &eventsCounterMonitor))) { + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("attach045-agent03-eventsCounterMonitor", &eventsCounterMonitor))) { return JNI_ERR; } memset(&caps, 0, sizeof(caps)); caps.can_generate_vm_object_alloc_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps)) ) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps)) ) { return JNI_ERR; } memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.VMObjectAlloc = VMObjectAllocHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach046/attach046Agent00.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach046/attach046Agent00.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/AttachOnDemand/attach046/attach046Agent00.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -113,13 +113,13 @@ memset(&caps, 0, sizeof(caps)); caps.can_redefine_classes = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps)) ) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps)) ) { return JNI_ERR; } memset(&eventCallbacks,0, sizeof(eventCallbacks)); eventCallbacks.ClassLoad = classLoadHandler; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, &eventCallbacks, sizeof(eventCallbacks))) ) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks))) ) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/Breakpoint/breakpoint001/breakpoint001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/Breakpoint/breakpoint001/breakpoint001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/Breakpoint/breakpoint001/breakpoint001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -67,15 +67,11 @@ int i; for (i=0; iGetMethodID(klass, METHODS[i][0], METHODS[i][1])) != NULL)) + env->FatalError("failed to get ID for the java method\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetBreakpoint, - jvmti_env, mid, 0))) - NSK_CPP_STUB2(FatalError, env, - "failed to set breakpoint\n"); + if (!NSK_JVMTI_VERIFY(jvmti_env->SetBreakpoint(mid, 0))) + env->FatalError("failed to set breakpoint\n"); } } @@ -88,10 +84,8 @@ if (vm_started) { // GetClassSignature may be called only during the start or the live phase - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature, - jvmti_env, klass, &sig, &generic))) - NSK_CPP_STUB2(FatalError, env, - "failed to obtain a class signature\n"); + if (!NSK_JVMTI_VERIFY(jvmti_env->GetClassSignature(klass, &sig, &generic))) + env->FatalError("failed to obtain a class signature\n"); if (sig != NULL && (strcmp(sig, CLASS_SIG) == 0)) { NSK_DISPLAY1( @@ -117,8 +111,7 @@ NSK_DISPLAY0(">>>> Breakpoint event received\n"); /* checking thread info */ - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetThreadInfo, - jvmti_env, thread, &thr_info))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetThreadInfo(thread, &thr_info))) { result = STATUS_FAILED; NSK_COMPLAIN0("TEST FAILED: unable to get thread info during Breakpoint callback\n\n"); return; @@ -148,14 +141,12 @@ (long) location); /* checking method info */ - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetMethodDeclaringClass, - jvmti_env, method, &klass))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetMethodDeclaringClass(method, &klass))) { result = checkStatus = STATUS_FAILED; NSK_COMPLAIN0("TEST FAILED: unable to get method declaring class during Breakpoint callback\n\n"); return; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature, - jvmti_env, klass, &clsSig, &generic))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetClassSignature(klass, &clsSig, &generic))) { result = checkStatus = STATUS_FAILED; NSK_COMPLAIN0("TEST FAILED: unable to obtain a class signature during Breakpoint callback\n\n"); return; @@ -172,8 +163,7 @@ NSK_DISPLAY1("CHECK PASSED: class signature: \"%s\"\n", clsSig); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetMethodName, - jvmti_env, method, &methNam, &methSig, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetMethodName(method, &methNam, &methSig, NULL))) { result = checkStatus = STATUS_FAILED; NSK_COMPLAIN0("TEST FAILED: unable to get method name during Breakpoint callback\n\n"); return; @@ -189,13 +179,11 @@ break; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*) methNam))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*) methNam))) { result = STATUS_FAILED; NSK_COMPLAIN0("TEST FAILED: unable to deallocate memory pointed to method name\n\n"); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*) methSig))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*) methSig))) { result = STATUS_FAILED; NSK_COMPLAIN0("TEST FAILED: unable to deallocate memory pointed to method signature\n\n"); } @@ -265,12 +253,10 @@ /* add capability to generate compiled method events */ memset(&caps, 0, sizeof(jvmtiCapabilities)); caps.can_generate_breakpoint_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.can_generate_single_step_events) @@ -282,20 +268,16 @@ callbacks.ClassLoad = &ClassLoad; callbacks.Breakpoint = &Breakpoint; callbacks.VMStart = &VMStart; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, - jvmti, &callbacks, sizeof(callbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; NSK_DISPLAY0("setting event callbacks done\nenabling JVMTI events ...\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_VM_START, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_START, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_CLASS_LOAD, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_CLASS_LOAD, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_BREAKPOINT, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_BREAKPOINT, NULL))) return JNI_ERR; NSK_DISPLAY0("enabling the events done\n\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk001/classfloadhk001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk001/classfloadhk001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk001/classfloadhk001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -93,13 +93,11 @@ NSK_DISPLAY0("setting event callbacks ...\n"); (void) memset(&callbacks, 0, sizeof(callbacks)); callbacks.ClassFileLoadHook = &ClassFileLoadHook; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, - jvmti, &callbacks, sizeof(callbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; NSK_DISPLAY0("setting event callbacks done\nenabling ClassFileLoadHook event ...\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL))) return JNI_ERR; NSK_DISPLAY0("enabling ClassFileLoadHook event done\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk002/classfloadhk002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk002/classfloadhk002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk002/classfloadhk002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -122,7 +122,7 @@ NSK_DISPLAY1("Find static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, cls, fieldName, fieldSig)) != NULL)) { + jni->GetStaticFieldID(cls, fieldName, fieldSig)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -130,14 +130,13 @@ NSK_DISPLAY1("Get classfile bytes array from static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (array = (jbyteArray) - NSK_CPP_STUB3(GetStaticObjectField, jni, cls, fieldID)) != NULL)) { + jni->GetStaticObjectField(cls, fieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } NSK_DISPLAY1(" ... got array object: 0x%p\n", (void*)array); - if (!NSK_JNI_VERIFY(jni, (*size = - NSK_CPP_STUB2(GetArrayLength, jni, array)) > 0)) { + if (!NSK_JNI_VERIFY(jni, (*size = jni->GetArrayLength(array)) > 0)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -145,17 +144,14 @@ { jboolean isCopy; - if (!NSK_JNI_VERIFY(jni, (elements = - NSK_CPP_STUB3(GetByteArrayElements, jni, array, - &isCopy)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (elements = jni->GetByteArrayElements(array, &isCopy)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } } NSK_DISPLAY1(" ... got elements list: 0x%p\n", (void*)elements); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, *size, bytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate(*size, bytes))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -167,7 +163,7 @@ NSK_DISPLAY1(" ... copied bytecode: %d bytes\n", (int)*size); NSK_DISPLAY1("Release elements list: 0x%p\n", (void*)elements); - NSK_TRACE(NSK_CPP_STUB4(ReleaseByteArrayElements, jni, array, elements, JNI_ABORT)); + NSK_TRACE(jni->ReleaseByteArrayElements(array, elements, JNI_ABORT)); NSK_DISPLAY0(" ... released\n"); return NSK_TRUE; @@ -190,7 +186,7 @@ NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -240,8 +236,7 @@ NSK_DISPLAY0(">>> Clean used data\n"); { NSK_DISPLAY1("Deallocate bytecode array: 0x%p\n", (void*)origClassBytes); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, origClassBytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate(origClassBytes))) { nsk_jvmti_setFailStatus(); } } @@ -318,8 +313,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_generate_all_class_hook_events = 1; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -332,8 +326,7 @@ memset(&callbacks, 0, sizeof(callbacks)); callbacks.ClassFileLoadHook = callbackClassFileLoadHook; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, &callbacks, size))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, size))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk003/classfloadhk003.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk003/classfloadhk003.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk003/classfloadhk003.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -127,7 +127,7 @@ NSK_DISPLAY1("Find static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, cls, fieldName, fieldSig)) != NULL)) { + jni->GetStaticFieldID(cls, fieldName, fieldSig)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -135,14 +135,13 @@ NSK_DISPLAY1("Get classfile bytes array from static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (array = (jbyteArray) - NSK_CPP_STUB3(GetStaticObjectField, jni, cls, fieldID)) != NULL)) { + jni->GetStaticObjectField(cls, fieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } NSK_DISPLAY1(" ... got array object: 0x%p\n", (void*)array); - if (!NSK_JNI_VERIFY(jni, (*size = - NSK_CPP_STUB2(GetArrayLength, jni, array)) > 0)) { + if (!NSK_JNI_VERIFY(jni, (*size = jni->GetArrayLength(array)) > 0)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -150,17 +149,14 @@ { jboolean isCopy; - if (!NSK_JNI_VERIFY(jni, (elements = - NSK_CPP_STUB3(GetByteArrayElements, jni, array, - &isCopy)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (elements = jni->GetByteArrayElements(array, &isCopy)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } } NSK_DISPLAY1(" ... got elements list: 0x%p\n", (void*)elements); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, *size, bytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate(*size, bytes))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -172,7 +168,7 @@ NSK_DISPLAY1(" ... copied bytecode: %d bytes\n", (int)*size); NSK_DISPLAY1("Release elements list: 0x%p\n", (void*)elements); - NSK_TRACE(NSK_CPP_STUB4(ReleaseByteArrayElements, jni, array, elements, JNI_ABORT)); + NSK_TRACE(jni->ReleaseByteArrayElements(array, elements, JNI_ABORT)); NSK_DISPLAY0(" ... released\n"); return NSK_TRUE; @@ -187,23 +183,21 @@ NSK_DISPLAY1("Find static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, cls, fieldName, fieldSig)) != NULL)) { + jni->GetStaticFieldID(cls, fieldName, fieldSig)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } NSK_DISPLAY1(" ... got fieldID: 0x%p\n", (void*)fieldID); NSK_DISPLAY1("Get object from static field: %s\n", fieldName); - if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB3(GetStaticObjectField, jni, cls, fieldID)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (obj = jni->GetStaticObjectField(cls, fieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } NSK_DISPLAY1(" ... got object: 0x%p\n", (void*)obj); NSK_DISPLAY1("Make global reference to object: 0x%p\n", obj); - if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB2(NewGlobalRef, jni, obj)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (obj = jni->NewGlobalRef(obj)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } @@ -229,7 +223,7 @@ NSK_DISPLAY0(">>> Obtain debuggee class\n"); NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -286,11 +280,10 @@ NSK_DISPLAY0(">>> Clean used data\n"); { NSK_DISPLAY1("Delete global reference to classloader object: 0x%p\n", (void*)classLoader); - NSK_CPP_STUB2(DeleteGlobalRef, jni, classLoader); + jni->DeleteGlobalRef(classLoader); NSK_DISPLAY1("Deallocate classfile bytes array: 0x%p\n", (void*)origClassBytes); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, origClassBytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate(origClassBytes))) { nsk_jvmti_setFailStatus(); } } @@ -331,7 +324,7 @@ NSK_COMPLAIN1("Unexpected NULL classloader in CLASS_FILE_LOAD_HOOK: 0x%p\n", (void*)loader); nsk_jvmti_setFailStatus(); - } else if (!NSK_CPP_STUB3(IsSameObject, jni, loader, classLoader)) { + } else if (!jni->IsSameObject(loader, classLoader)) { NSK_COMPLAIN2("Unexpected classloader in CLASS_FILE_LOAD_HOOK for tested class:\n" "# got classloder: 0x%p\n" "# expected same as: 0x%p\n", @@ -380,8 +373,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_generate_all_class_hook_events = 1; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -394,8 +386,7 @@ memset(&callbacks, 0, sizeof(callbacks)); callbacks.ClassFileLoadHook = callbackClassFileLoadHook; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, &callbacks, size))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, size))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk004/classfloadhk004.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk004/classfloadhk004.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk004/classfloadhk004.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -61,7 +61,7 @@ NSK_DISPLAY1("Find static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, cls, fieldName, fieldSig)) != NULL)) { + jni->GetStaticFieldID(cls, fieldName, fieldSig)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -69,14 +69,13 @@ NSK_DISPLAY1("Get classfile bytes array from static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (array = (jbyteArray) - NSK_CPP_STUB3(GetStaticObjectField, jni, cls, fieldID)) != NULL)) { + jni->GetStaticObjectField(cls, fieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } NSK_DISPLAY1(" ... got array object: 0x%p\n", (void*)array); - if (!NSK_JNI_VERIFY(jni, (*size = - NSK_CPP_STUB2(GetArrayLength, jni, array)) > 0)) { + if (!NSK_JNI_VERIFY(jni, (*size = jni->GetArrayLength(array)) > 0)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -84,17 +83,14 @@ { jboolean isCopy; - if (!NSK_JNI_VERIFY(jni, (elements = - NSK_CPP_STUB3(GetByteArrayElements, jni, array, - &isCopy)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (elements = jni->GetByteArrayElements(array, &isCopy)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } } NSK_DISPLAY1(" ... got elements list: 0x%p\n", (void*)elements); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, *size, bytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate(*size, bytes))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -106,7 +102,7 @@ NSK_DISPLAY1(" ... copied bytecode: %d bytes\n", (int)*size); NSK_DISPLAY1("Release elements list: 0x%p\n", (void*)elements); - NSK_TRACE(NSK_CPP_STUB4(ReleaseByteArrayElements, jni, array, elements, JNI_ABORT)); + NSK_TRACE(jni->ReleaseByteArrayElements(array, elements, JNI_ABORT)); NSK_DISPLAY0(" ... released\n"); return NSK_TRUE; @@ -129,7 +125,7 @@ NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -271,8 +267,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_generate_all_class_hook_events = 1; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -285,8 +280,7 @@ memset(&callbacks, 0, sizeof(callbacks)); callbacks.ClassFileLoadHook = callbackClassFileLoadHook; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, &callbacks, size))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, size))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk005/classfloadhk005.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk005/classfloadhk005.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk005/classfloadhk005.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -123,7 +123,7 @@ NSK_DISPLAY1("Find static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, cls, fieldName, fieldSig)) != NULL)) { + jni->GetStaticFieldID(cls, fieldName, fieldSig)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -131,14 +131,13 @@ NSK_DISPLAY1("Get classfile bytes array from static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (array = (jbyteArray) - NSK_CPP_STUB3(GetStaticObjectField, jni, cls, fieldID)) != NULL)) { + jni->GetStaticObjectField(cls, fieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } NSK_DISPLAY1(" ... got array object: 0x%p\n", (void*)array); - if (!NSK_JNI_VERIFY(jni, (*size = - NSK_CPP_STUB2(GetArrayLength, jni, array)) > 0)) { + if (!NSK_JNI_VERIFY(jni, (*size = jni->GetArrayLength(array)) > 0)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -146,17 +145,14 @@ { jboolean isCopy; - if (!NSK_JNI_VERIFY(jni, (elements = - NSK_CPP_STUB3(GetByteArrayElements, jni, array, - &isCopy)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (elements = jni->GetByteArrayElements(array, &isCopy)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } } NSK_DISPLAY1(" ... got elements list: 0x%p\n", (void*)elements); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, *size, bytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate(*size, bytes))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -168,7 +164,7 @@ NSK_DISPLAY1(" ... copied bytecode: %d bytes\n", (int)*size); NSK_DISPLAY1("Release elements list: 0x%p\n", (void*)elements); - NSK_TRACE(NSK_CPP_STUB4(ReleaseByteArrayElements, jni, array, elements, JNI_ABORT)); + NSK_TRACE(jni->ReleaseByteArrayElements(array, elements, JNI_ABORT)); NSK_DISPLAY0(" ... released\n"); return NSK_TRUE; @@ -191,7 +187,7 @@ NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -333,8 +329,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_generate_all_class_hook_events = 1; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -347,8 +342,7 @@ memset(&callbacks, 0, sizeof(callbacks)); callbacks.ClassFileLoadHook = callbackClassFileLoadHook; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, &callbacks, size))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, size))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk006/classfloadhk006.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk006/classfloadhk006.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk006/classfloadhk006.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -128,7 +128,7 @@ NSK_DISPLAY1("Find static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, cls, fieldName, fieldSig)) != NULL)) { + jni->GetStaticFieldID(cls, fieldName, fieldSig)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -136,14 +136,13 @@ NSK_DISPLAY1("Get classfile bytes array from static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (array = (jbyteArray) - NSK_CPP_STUB3(GetStaticObjectField, jni, cls, fieldID)) != NULL)) { + jni->GetStaticObjectField(cls, fieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } NSK_DISPLAY1(" ... got array object: 0x%p\n", (void*)array); - if (!NSK_JNI_VERIFY(jni, (*size = - NSK_CPP_STUB2(GetArrayLength, jni, array)) > 0)) { + if (!NSK_JNI_VERIFY(jni, (*size = jni->GetArrayLength(array)) > 0)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -151,17 +150,14 @@ { jboolean isCopy; - if (!NSK_JNI_VERIFY(jni, (elements = - NSK_CPP_STUB3(GetByteArrayElements, jni, array, - &isCopy)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (elements = jni->GetByteArrayElements(array, &isCopy)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } } NSK_DISPLAY1(" ... got elements list: 0x%p\n", (void*)elements); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, *size, bytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate(*size, bytes))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -173,7 +169,7 @@ NSK_DISPLAY1(" ... copied bytecode: %d bytes\n", (int)*size); NSK_DISPLAY1("Release elements list: 0x%p\n", (void*)elements); - NSK_TRACE(NSK_CPP_STUB4(ReleaseByteArrayElements, jni, array, elements, JNI_ABORT)); + NSK_TRACE(jni->ReleaseByteArrayElements(array, elements, JNI_ABORT)); NSK_DISPLAY0(" ... released\n"); return NSK_TRUE; @@ -188,23 +184,21 @@ NSK_DISPLAY1("Find static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, cls, fieldName, fieldSig)) != NULL)) { + jni->GetStaticFieldID(cls, fieldName, fieldSig)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } NSK_DISPLAY1(" ... got fieldID: 0x%p\n", (void*)fieldID); NSK_DISPLAY1("Get object from static field: %s\n", fieldName); - if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB3(GetStaticObjectField, jni, cls, fieldID)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (obj = jni->GetStaticObjectField(cls, fieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } NSK_DISPLAY1(" ... got object: 0x%p\n", (void*)obj); NSK_DISPLAY1("Make global reference to object: 0x%p\n", obj); - if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB2(NewGlobalRef, jni, obj)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (obj = jni->NewGlobalRef(obj)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } @@ -223,8 +217,7 @@ classDef.class_bytes = bytes; NSK_DISPLAY1("Redefine class: %s\n", className); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &classDef))) { + if (!NSK_JVMTI_VERIFY(jvmti->RedefineClasses(1, &classDef))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -250,7 +243,7 @@ NSK_DISPLAY0(">>> Obtain debuggee class\n"); NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -309,11 +302,10 @@ NSK_DISPLAY0(">>> Clean used data\n"); { NSK_DISPLAY1("Delete global reference to tested class object: 0x%p\n", (void*)testedClass); - NSK_CPP_STUB2(DeleteGlobalRef, jni, testedClass); + jni->DeleteGlobalRef(testedClass); NSK_DISPLAY1("Deallocate redefined bytecode array: 0x%p\n", (void*)redefClassBytes); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, redefClassBytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate(redefClassBytes))) { nsk_jvmti_setFailStatus(); } } @@ -347,7 +339,7 @@ NSK_COMPLAIN1("Unexpected NULL class_being_redefined in CLASS_FILE_LOAD_HOOK: 0x%p\n", (void*)class_being_redefined); nsk_jvmti_setFailStatus(); - } else if (!NSK_CPP_STUB3(IsSameObject, jni, class_being_redefined, testedClass)) { + } else if (!jni->IsSameObject(class_being_redefined, testedClass)) { NSK_COMPLAIN2("Unexpected class_being_redefined in CLASS_FILE_LOAD_HOOK:\n" "# got class: 0x%p\n" "# expected same as: 0x%p\n", @@ -397,8 +389,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_generate_all_class_hook_events = 1; caps.can_redefine_classes = 1; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -411,8 +402,7 @@ memset(&callbacks, 0, sizeof(callbacks)); callbacks.ClassFileLoadHook = callbackClassFileLoadHook; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, &callbacks, size))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, size))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk007/classfloadhk007.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk007/classfloadhk007.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk007/classfloadhk007.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -132,7 +132,7 @@ NSK_DISPLAY1("Find static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, cls, fieldName, fieldSig)) != NULL)) { + jni->GetStaticFieldID(cls, fieldName, fieldSig)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -140,14 +140,13 @@ NSK_DISPLAY1("Get classfile bytes array from static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (array = (jbyteArray) - NSK_CPP_STUB3(GetStaticObjectField, jni, cls, fieldID)) != NULL)) { + jni->GetStaticObjectField(cls, fieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } NSK_DISPLAY1(" ... got array object: 0x%p\n", (void*)array); - if (!NSK_JNI_VERIFY(jni, (*size = - NSK_CPP_STUB2(GetArrayLength, jni, array)) > 0)) { + if (!NSK_JNI_VERIFY(jni, (*size = jni->GetArrayLength(array)) > 0)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -155,17 +154,14 @@ { jboolean isCopy; - if (!NSK_JNI_VERIFY(jni, (elements = - NSK_CPP_STUB3(GetByteArrayElements, jni, array, - &isCopy)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (elements = jni->GetByteArrayElements(array, &isCopy)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } } NSK_DISPLAY1(" ... got elements list: 0x%p\n", (void*)elements); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, *size, bytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate(*size, bytes))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -177,7 +173,7 @@ NSK_DISPLAY1(" ... copied bytecode: %d bytes\n", (int)*size); NSK_DISPLAY1("Release elements list: 0x%p\n", (void*)elements); - NSK_TRACE(NSK_CPP_STUB4(ReleaseByteArrayElements, jni, array, elements, JNI_ABORT)); + NSK_TRACE(jni->ReleaseByteArrayElements(array, elements, JNI_ABORT)); NSK_DISPLAY0(" ... released\n"); return NSK_TRUE; @@ -192,23 +188,21 @@ NSK_DISPLAY1("Find static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, cls, fieldName, fieldSig)) != NULL)) { + jni->GetStaticFieldID(cls, fieldName, fieldSig)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } NSK_DISPLAY1(" ... got fieldID: 0x%p\n", (void*)fieldID); NSK_DISPLAY1("Get object from static field: %s\n", fieldName); - if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB3(GetStaticObjectField, jni, cls, fieldID)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (obj = jni->GetStaticObjectField(cls, fieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } NSK_DISPLAY1(" ... got object: 0x%p\n", (void*)obj); NSK_DISPLAY1("Make global reference to object: 0x%p\n", obj); - if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB2(NewGlobalRef, jni, obj)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (obj = jni->NewGlobalRef(obj)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } @@ -227,8 +221,7 @@ classDef.class_bytes = bytes; NSK_DISPLAY1("Redefine class: %s\n", className); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &classDef))) { + if (!NSK_JVMTI_VERIFY(jvmti->RedefineClasses(1, &classDef))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -254,7 +247,7 @@ NSK_DISPLAY0(">>> Obtain debuggee class\n"); NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -319,14 +312,13 @@ NSK_DISPLAY0(">>> Clean used data\n"); { NSK_DISPLAY1("Delete global reference to classloader object: 0x%p\n", (void*)classLoader); - NSK_CPP_STUB2(DeleteGlobalRef, jni, classLoader); + jni->DeleteGlobalRef(classLoader); NSK_DISPLAY1("Delete global reference to tested class object: 0x%p\n", (void*)testedClass); - NSK_CPP_STUB2(DeleteGlobalRef, jni, testedClass); + jni->DeleteGlobalRef(testedClass); NSK_DISPLAY1("Deallocate redefined bytecode array: 0x%p\n", (void*)redefClassBytes); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, redefClassBytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate(redefClassBytes))) { nsk_jvmti_setFailStatus(); } } @@ -360,7 +352,7 @@ NSK_COMPLAIN1("Unexpected NULL classloader in CLASS_FILE_LOAD_HOOK: 0x%p\n", (void*)loader); nsk_jvmti_setFailStatus(); - } else if (!NSK_CPP_STUB3(IsSameObject, jni, loader, classLoader)) { + } else if (!jni->IsSameObject(loader, classLoader)) { NSK_COMPLAIN2("Unexpected classloader in CLASS_FILE_LOAD_HOOK:\n" "# got classloder: 0x%p\n" "# expected same as: 0x%p\n", @@ -373,7 +365,7 @@ NSK_COMPLAIN1("Unexpected NULL class_being_redefined in CLASS_FILE_LOAD_HOOK: 0x%p\n", (void*)class_being_redefined); nsk_jvmti_setFailStatus(); - } else if (!NSK_CPP_STUB3(IsSameObject, jni, class_being_redefined, testedClass)) { + } else if (!jni->IsSameObject(class_being_redefined, testedClass)) { NSK_COMPLAIN2("Unexpected class_being_redefined in CLASS_FILE_LOAD_HOOK:\n" "# got class: 0x%p\n" "# expected same as: 0x%p\n", @@ -423,8 +415,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_generate_all_class_hook_events = 1; caps.can_redefine_classes = 1; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -437,8 +428,7 @@ memset(&callbacks, 0, sizeof(callbacks)); callbacks.ClassFileLoadHook = callbackClassFileLoadHook; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, &callbacks, size))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, size))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk008/classfloadhk008.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk008/classfloadhk008.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk008/classfloadhk008.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -70,7 +70,7 @@ NSK_DISPLAY1("Find static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, cls, fieldName, fieldSig)) != NULL)) { + jni->GetStaticFieldID(cls, fieldName, fieldSig)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -78,14 +78,13 @@ NSK_DISPLAY1("Get classfile bytes array from static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (array = (jbyteArray) - NSK_CPP_STUB3(GetStaticObjectField, jni, cls, fieldID)) != NULL)) { + jni->GetStaticObjectField(cls, fieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } NSK_DISPLAY1(" ... got array object: 0x%p\n", (void*)array); - if (!NSK_JNI_VERIFY(jni, (*size = - NSK_CPP_STUB2(GetArrayLength, jni, array)) > 0)) { + if (!NSK_JNI_VERIFY(jni, (*size = jni->GetArrayLength(array)) > 0)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -93,17 +92,14 @@ { jboolean isCopy; - if (!NSK_JNI_VERIFY(jni, (elements = - NSK_CPP_STUB3(GetByteArrayElements, jni, array, - &isCopy)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (elements = jni->GetByteArrayElements(array, &isCopy)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } } NSK_DISPLAY1(" ... got elements list: 0x%p\n", (void*)elements); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, *size, bytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate(*size, bytes))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -115,7 +111,7 @@ NSK_DISPLAY1(" ... copied bytecode: %d bytes\n", (int)*size); NSK_DISPLAY1("Release elements list: 0x%p\n", (void*)elements); - NSK_TRACE(NSK_CPP_STUB4(ReleaseByteArrayElements, jni, array, elements, JNI_ABORT)); + NSK_TRACE(jni->ReleaseByteArrayElements(array, elements, JNI_ABORT)); NSK_DISPLAY0(" ... released\n"); return NSK_TRUE; @@ -130,23 +126,21 @@ NSK_DISPLAY1("Find static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, cls, fieldName, fieldSig)) != NULL)) { + jni->GetStaticFieldID(cls, fieldName, fieldSig)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } NSK_DISPLAY1(" ... got fieldID: 0x%p\n", (void*)fieldID); NSK_DISPLAY1("Get object from static field: %s\n", fieldName); - if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB3(GetStaticObjectField, jni, cls, fieldID)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (obj = jni->GetStaticObjectField(cls, fieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } NSK_DISPLAY1(" ... got object: 0x%p\n", (void*)obj); NSK_DISPLAY1("Make global reference to object: 0x%p\n", obj); - if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB2(NewGlobalRef, jni, obj)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (obj = jni->NewGlobalRef(obj)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } @@ -165,8 +159,7 @@ classDef.class_bytes = bytes; NSK_DISPLAY1("Redefine class: %s\n", className); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &classDef))) { + if (!NSK_JVMTI_VERIFY(jvmti->RedefineClasses(1, &classDef))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -192,7 +185,7 @@ NSK_DISPLAY0(">>> Obtain debuggee class\n"); NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -258,11 +251,10 @@ NSK_DISPLAY0(">>> Clean used data\n"); { NSK_DISPLAY1("Delete global reference to tested class object: 0x%p\n", (void*)testedClass); - NSK_CPP_STUB2(DeleteGlobalRef, jni, testedClass); + jni->DeleteGlobalRef(testedClass); NSK_DISPLAY1("Deallocate redefined bytecode array: 0x%p\n", (void*)redefClassBytes); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, redefClassBytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate(redefClassBytes))) { nsk_jvmti_setFailStatus(); } } @@ -359,8 +351,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_generate_all_class_hook_events = 1; caps.can_redefine_classes = 1; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -373,8 +364,7 @@ memset(&callbacks, 0, sizeof(callbacks)); callbacks.ClassFileLoadHook = callbackClassFileLoadHook; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, &callbacks, size))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, size))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk009/classfloadhk009.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk009/classfloadhk009.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassFileLoadHook/classfloadhk009/classfloadhk009.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -70,7 +70,7 @@ NSK_DISPLAY1("Find static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, cls, fieldName, fieldSig)) != NULL)) { + jni->GetStaticFieldID(cls, fieldName, fieldSig)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -78,14 +78,13 @@ NSK_DISPLAY1("Get classfile bytes array from static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (array = (jbyteArray) - NSK_CPP_STUB3(GetStaticObjectField, jni, cls, fieldID)) != NULL)) { + jni->GetStaticObjectField(cls, fieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } NSK_DISPLAY1(" ... got array object: 0x%p\n", (void*)array); - if (!NSK_JNI_VERIFY(jni, (*size = - NSK_CPP_STUB2(GetArrayLength, jni, array)) > 0)) { + if (!NSK_JNI_VERIFY(jni, (*size = jni->GetArrayLength(array)) > 0)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -93,17 +92,14 @@ { jboolean isCopy; - if (!NSK_JNI_VERIFY(jni, (elements = - NSK_CPP_STUB3(GetByteArrayElements, jni, array, - &isCopy)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (elements = jni->GetByteArrayElements(array, &isCopy)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } } NSK_DISPLAY1(" ... got elements list: 0x%p\n", (void*)elements); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, *size, bytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate(*size, bytes))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -115,7 +111,7 @@ NSK_DISPLAY1(" ... copied bytecode: %d bytes\n", (int)*size); NSK_DISPLAY1("Release elements list: 0x%p\n", (void*)elements); - NSK_TRACE(NSK_CPP_STUB4(ReleaseByteArrayElements, jni, array, elements, JNI_ABORT)); + NSK_TRACE(jni->ReleaseByteArrayElements(array, elements, JNI_ABORT)); NSK_DISPLAY0(" ... released\n"); return NSK_TRUE; @@ -130,23 +126,21 @@ NSK_DISPLAY1("Find static field: %s\n", fieldName); if (!NSK_JNI_VERIFY(jni, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, cls, fieldName, fieldSig)) != NULL)) { + jni->GetStaticFieldID(cls, fieldName, fieldSig)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } NSK_DISPLAY1(" ... got fieldID: 0x%p\n", (void*)fieldID); NSK_DISPLAY1("Get object from static field: %s\n", fieldName); - if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB3(GetStaticObjectField, jni, cls, fieldID)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (obj = jni->GetStaticObjectField(cls, fieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } NSK_DISPLAY1(" ... got object: 0x%p\n", (void*)obj); NSK_DISPLAY1("Make global reference to object: 0x%p\n", obj); - if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB2(NewGlobalRef, jni, obj)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (obj = jni->NewGlobalRef(obj)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } @@ -165,8 +159,7 @@ classDef.class_bytes = bytes; NSK_DISPLAY1("Redefine class: %s\n", className); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &classDef))) { + if (!NSK_JVMTI_VERIFY(jvmti->RedefineClasses(1, &classDef))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -192,7 +185,7 @@ NSK_DISPLAY0(">>> Obtain debuggee class\n"); NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -258,11 +251,10 @@ NSK_DISPLAY0(">>> Clean used data\n"); { NSK_DISPLAY1("Delete global reference to tested class object: 0x%p\n", (void*)testedClass); - NSK_CPP_STUB2(DeleteGlobalRef, jni, testedClass); + jni->DeleteGlobalRef(testedClass); NSK_DISPLAY1("Deallocate redefined bytecode array: 0x%p\n", (void*)redefClassBytes); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, redefClassBytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate(redefClassBytes))) { nsk_jvmti_setFailStatus(); } } @@ -359,8 +351,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_generate_all_class_hook_events = 1; caps.can_redefine_classes = 1; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -373,8 +364,7 @@ memset(&callbacks, 0, sizeof(callbacks)); callbacks.ClassFileLoadHook = callbackClassFileLoadHook; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, &callbacks, size))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, size))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassLoad/classload001/classload001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassLoad/classload001/classload001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ClassLoad/classload001/classload001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -98,17 +98,13 @@ } static void lock(jvmtiEnv *jvmti_env, JNIEnv *jni_env) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, - jvmti_env, countLock))) - NSK_CPP_STUB2(FatalError, jni_env, - "failed to enter a raw monitor\n"); + if (!NSK_JVMTI_VERIFY(jvmti_env->RawMonitorEnter(countLock))) + jni_env->FatalError("failed to enter a raw monitor\n"); } static void unlock(jvmtiEnv *jvmti_env, JNIEnv *jni_env) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, - jvmti_env, countLock))) - NSK_CPP_STUB2(FatalError, jni_env, - "failed to exit a raw monitor\n"); + if (!NSK_JVMTI_VERIFY(jvmti_env->RawMonitorExit(countLock))) + jni_env->FatalError("failed to exit a raw monitor\n"); } /** callback functions **/ @@ -119,8 +115,7 @@ lock(jvmti_env, env); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature, - jvmti_env, klass, &sig, &generic))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetClassSignature(klass, &sig, &generic))) { result = STATUS_FAILED; NSK_COMPLAIN0("TEST FAILURE: unable to obtain a class signature\n"); } @@ -185,20 +180,17 @@ initCounters(); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(CreateRawMonitor, - jvmti, "_counter_lock", &countLock))) + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("_counter_lock", &countLock))) return JNI_ERR; NSK_DISPLAY0("setting event callbacks ...\n"); (void) memset(&callbacks, 0, sizeof(callbacks)); callbacks.ClassLoad = &ClassLoad; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, - jvmti, &callbacks, sizeof(callbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; NSK_DISPLAY0("setting event callbacks done\nenabling ClassLoad event ...\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_CLASS_LOAD, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_CLASS_LOAD, NULL))) return JNI_ERR; NSK_DISPLAY0("the event enabled\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/CompiledMethodLoad/compmethload001/compmethload001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/CompiledMethodLoad/compmethload001/compmethload001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/CompiledMethodLoad/compmethload001/compmethload001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -45,8 +45,7 @@ VMInit(jvmtiEnv *jvmti_env, JNIEnv *env, jthread thr) { NSK_DISPLAY0("VMInit event received\n\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GenerateEvents, - jvmti_env, JVMTI_EVENT_COMPILED_METHOD_LOAD))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GenerateEvents(JVMTI_EVENT_COMPILED_METHOD_LOAD))) { NSK_COMPLAIN0("TEST FAILED: unable to generate events to represent the current state of the VM\n"); result = STATUS_FAILED; } @@ -63,8 +62,7 @@ NSK_DISPLAY0("CompiledMethodLoad event received for:\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetMethodName, - jvmti_env, method, &name, &sig, &generic))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetMethodName(method, &name, &sig, &generic))) { result = STATUS_FAILED; NSK_COMPLAIN0("TEST FAILURE: unable to obtain method info\n"); return; @@ -72,8 +70,7 @@ NSK_DISPLAY4("\tmethod: name=\"%s\" signature=\"%s\"\n\tcompiled code size=%d\n\tnumber of address location map entries=%d\n", name, sig, code_size, map_length); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, - jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { result = STATUS_FAILED; NSK_COMPLAIN0("TEST FAILURE: unable to obtain phase of the VM execution\n"); return; @@ -122,12 +119,10 @@ /* add capability to generate compiled method events */ memset(&caps, 0, sizeof(jvmtiCapabilities)); caps.can_generate_compiled_method_load_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.can_generate_compiled_method_load_events) @@ -138,16 +133,13 @@ (void) memset(&callbacks, 0, sizeof(callbacks)); callbacks.VMInit = &VMInit; callbacks.CompiledMethodLoad = &CompiledMethodLoad; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, - jvmti, &callbacks, sizeof(callbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; NSK_DISPLAY0("setting event callbacks done\nenabling VMInit, CompiledMethodLoad event ...\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_COMPILED_METHOD_LOAD, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_COMPILED_METHOD_LOAD, NULL))) return JNI_ERR; NSK_DISPLAY0("enabling the events done\n\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/CompiledMethodUnload/compmethunload001/compmethunload001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/CompiledMethodUnload/compmethunload001/compmethunload001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/CompiledMethodUnload/compmethunload001/compmethunload001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -47,8 +47,7 @@ VMInit(jvmtiEnv *jvmti_env, JNIEnv *env, jthread thr) { NSK_DISPLAY0("VMInit event received\n\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GenerateEvents, - jvmti_env, JVMTI_EVENT_COMPILED_METHOD_LOAD))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GenerateEvents(JVMTI_EVENT_COMPILED_METHOD_LOAD))) { NSK_COMPLAIN0("TEST FAILED: unable to generate events to represent the current state of the VM\n"); result = STATUS_FAILED; } @@ -64,8 +63,7 @@ NSK_DISPLAY0("CompiledMethodLoad event received for:\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetMethodName, - jvmti_env, method, &name, &sig, &generic))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetMethodName(method, &name, &sig, &generic))) { result = STATUS_FAILED; NSK_COMPLAIN0("TEST FAILURE: unable to obtain method info\n\n"); return; @@ -94,8 +92,8 @@ if (err == JVMTI_ERROR_NONE) { NSK_DISPLAY3("for: \tmethod: name=\"%s\" signature=\"%s\"\n\tnative address=0x%p\n", name, sig, code_addr); - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)name); - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)sig); + jvmti_env->Deallocate((unsigned char*)name); + jvmti_env->Deallocate((unsigned char*)sig); } else { // The class metadata has been completely unloaded so the name is not available. NSK_DISPLAY0("for: \tmethod: name=\n"); @@ -104,8 +102,7 @@ // Count unloaded events class_unloaded++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, - jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { result = STATUS_FAILED; NSK_COMPLAIN0("TEST FAILURE: unable to obtain phase of the VM execution\n"); return; @@ -166,12 +163,10 @@ /* add capability to generate compiled method events */ memset(&caps, 0, sizeof(jvmtiCapabilities)); caps.can_generate_compiled_method_load_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.can_generate_compiled_method_load_events) @@ -183,19 +178,15 @@ callbacks.VMInit = &VMInit; callbacks.CompiledMethodLoad = &CompiledMethodLoad; callbacks.CompiledMethodUnload = &CompiledMethodUnload; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, - jvmti, &callbacks, sizeof(callbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; NSK_DISPLAY0("setting event callbacks done\nenabling JVMTI events ...\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_COMPILED_METHOD_LOAD, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_COMPILED_METHOD_LOAD, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_COMPILED_METHOD_UNLOAD, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_COMPILED_METHOD_UNLOAD, NULL))) return JNI_ERR; NSK_DISPLAY0("enabling the events done\n\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/DataDumpRequest/datadumpreq001/datadumpreq001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DataDumpRequest/datadumpreq001/datadumpreq001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DataDumpRequest/datadumpreq001/datadumpreq001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -118,13 +118,11 @@ NSK_DISPLAY0("setting event callbacks ...\n"); (void) memset(&callbacks, 0, sizeof(callbacks)); callbacks.DataDumpRequest = &DataDumpRequest; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, - jvmti, &callbacks, sizeof(callbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; NSK_DISPLAY0("setting event callbacks done\nenabling JVMTI events ...\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_DATA_DUMP_REQUEST, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_DATA_DUMP_REQUEST, NULL))) return JNI_ERR; NSK_DISPLAY0("enabling the events done\n\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv001/disposeenv001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv001/disposeenv001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv001/disposeenv001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -54,8 +54,7 @@ return JNI_ERR; NSK_DISPLAY0(">>> Testcase #1: Dispose JVMTI environment in Agent_OnLoad()\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB1(DisposeEnvironment, jvmti))) { + if (!NSK_JVMTI_VERIFY(jvmti->DisposeEnvironment())) { return JNI_ERR; } NSK_DISPLAY0(" ... disposed\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv002/disposeenv002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv002/disposeenv002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DisposeEnvironment/disposeenv002/disposeenv002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -45,16 +45,14 @@ NSK_DISPLAY0("Disable VM_DEATH event in VM_DEATH callback\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_DISABLE, - JVMTI_EVENT_VM_DEATH, NULL))) { + jvmti->SetEventNotificationMode(JVMTI_DISABLE, JVMTI_EVENT_VM_DEATH, NULL))) { success = NSK_FALSE; } else { NSK_DISPLAY0(" ... disabled\n"); } NSK_DISPLAY0(">>> Testcase #1: Dispose JVMTI environment in VM_DEATH callback\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB1(DisposeEnvironment, jvmti))) { + if (!NSK_JVMTI_VERIFY(jvmti->DisposeEnvironment())) { success = NSK_FALSE; } else { NSK_DISPLAY0(" ... disposed\n"); @@ -95,16 +93,13 @@ memset(&eventCallbacks, 0, sizeof(eventCallbacks)); eventCallbacks.VMDeath = callbackVMDeath; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) { return JNI_ERR; } NSK_DISPLAY0("Enable VM_DEATH event in JVM_OnLoad()\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_VM_DEATH, NULL))) { + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL))) { return JNI_ERR; } NSK_DISPLAY0(" ... enabled\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/DynamicCodeGenerated/dyncodgen001/dyncodgen001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DynamicCodeGenerated/dyncodgen001/dyncodgen001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/DynamicCodeGenerated/dyncodgen001/dyncodgen001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -116,15 +116,12 @@ memset(&callbacks, 0, sizeof(callbacks)); callbacks.DynamicCodeGenerated = &DynamicCodeGenerated; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &callbacks, sizeof(callbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; /* enable DynamicCodeGenerated event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_DYNAMIC_CODE_GENERATED, NULL))) + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_DYNAMIC_CODE_GENERATED, NULL))) return JNI_ERR; /* register agent proc and arg */ diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn001/ForceEarlyReturn001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn001/ForceEarlyReturn001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn001/ForceEarlyReturn001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -45,11 +45,7 @@ ) { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2( - SuspendThread - , jvmti - , earlyReturnThread - ) + jvmti ->SuspendThread (earlyReturnThread ) ) ) return JNI_FALSE; @@ -67,11 +63,7 @@ ) { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2( - ResumeThread - , jvmti - , earlyReturnThread - ) + jvmti ->ResumeThread (earlyReturnThread ) ) ) return JNI_FALSE; @@ -90,12 +82,7 @@ ) { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3( - ForceEarlyReturnObject - , jvmti - , earlyReturnThread - , valueToReturn - ) + jvmti ->ForceEarlyReturnObject (earlyReturnThread , valueToReturn ) ) ) return JNI_FALSE; @@ -114,12 +101,7 @@ ) { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3( - ForceEarlyReturnInt - , jvmti - , earlyReturnThread - , valueToReturn - ) + jvmti ->ForceEarlyReturnInt (earlyReturnThread , valueToReturn ) ) ) return JNI_FALSE; @@ -138,12 +120,7 @@ ) { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3( - ForceEarlyReturnLong - , jvmti - , earlyReturnThread - , valueToReturn - ) + jvmti ->ForceEarlyReturnLong (earlyReturnThread , valueToReturn ) ) ) return JNI_FALSE; @@ -162,12 +139,7 @@ ) { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3( - ForceEarlyReturnFloat - , jvmti - , earlyReturnThread - , valueToReturn - ) + jvmti ->ForceEarlyReturnFloat (earlyReturnThread , valueToReturn ) ) ) return JNI_FALSE; @@ -186,12 +158,7 @@ ) { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3( - ForceEarlyReturnDouble - , jvmti - , earlyReturnThread - , valueToReturn - ) + jvmti ->ForceEarlyReturnDouble (earlyReturnThread , valueToReturn ) ) ) return JNI_FALSE; @@ -209,11 +176,7 @@ ) { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2( - ForceEarlyReturnVoid - , jvmti - , earlyReturnThread - ) + jvmti ->ForceEarlyReturnVoid (earlyReturnThread ) ) ) return JNI_FALSE; @@ -245,11 +208,7 @@ ) return JNI_ERR; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2( - GetCapabilities - , jvmti - , &caps) + if (!NSK_JVMTI_VERIFY(jvmti ->GetCapabilities (&caps) ) ) return JNI_ERR; @@ -258,11 +217,7 @@ caps.can_force_early_return = 1; caps.can_suspend = 1; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2( - AddCapabilities - , jvmti - , &caps) + if (!NSK_JVMTI_VERIFY(jvmti ->AddCapabilities (&caps) ) ) return JNI_ERR; diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc001/forcegc001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc001/forcegc001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc001/forcegc001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -45,8 +45,7 @@ NSK_DISPLAY0(">>> Testcase #1: force GC to collect sofly reachable objects\n"); { NSK_DISPLAY0("Call ForceGarbageCollection()\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB1(ForceGarbageCollection, jvmti))) { + if (!NSK_JVMTI_VERIFY(jvmti->ForceGarbageCollection())) { nsk_jvmti_setFailStatus(); return; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc002/forcegc002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc002/forcegc002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceGarbageCollection/forcegc002/forcegc002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -54,8 +54,7 @@ return; NSK_DISPLAY0("Call ForceGarbageCollection()\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB1(ForceGarbageCollection, jvmti))) { + if (!NSK_JVMTI_VERIFY(jvmti->ForceGarbageCollection())) { nsk_jvmti_setFailStatus(); return; } @@ -114,7 +113,7 @@ jvmtiCapabilities caps; memset(&caps, 0, sizeof(caps)); caps.can_generate_garbage_collection_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; } @@ -122,9 +121,7 @@ jvmtiEventCallbacks eventCallbacks; memset(&eventCallbacks, 0, sizeof(eventCallbacks)); eventCallbacks.GarbageCollectionStart = callbackGarbageCollectionStart; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionFinish/gcfinish001/gcfinish001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionFinish/gcfinish001/gcfinish001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionFinish/gcfinish001/gcfinish001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -51,8 +51,7 @@ NSK_DISPLAY1("%s: creating a raw monitor ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(CreateRawMonitor, - jvmti_env, "_lock", &_lock))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->CreateRawMonitor("_lock", &_lock))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to create a raw monitor\n\n", msg); @@ -63,8 +62,7 @@ NSK_DISPLAY1("%s: entering the raw monitor ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, - jvmti_env, _lock))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->RawMonitorEnter(_lock))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to enter the raw monitor\n\n", msg); @@ -75,8 +73,7 @@ NSK_DISPLAY1("%s: waiting the raw monitor ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(RawMonitorWait, - jvmti_env, _lock, (jlong)10))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->RawMonitorWait(_lock, (jlong)10))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to wait the raw monitor\n\n", msg); @@ -87,8 +84,7 @@ NSK_DISPLAY1("%s: notifying a single thread waiting on the raw monitor ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorNotify, - jvmti_env, _lock))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->RawMonitorNotify(_lock))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to notify single thread\n\n", msg); @@ -99,8 +95,7 @@ NSK_DISPLAY1("%s: notifying all threads waiting on the raw monitor ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorNotifyAll, - jvmti_env, _lock))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->RawMonitorNotifyAll(_lock))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to notify all threads\n\n", msg); @@ -111,8 +106,7 @@ NSK_DISPLAY1("%s: exiting the raw monitor ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, - jvmti_env, _lock))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->RawMonitorExit(_lock))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to exit the raw monitor\n\n", msg); @@ -123,8 +117,7 @@ NSK_DISPLAY1("%s: destroying the raw monitor ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(DestroyRawMonitor, - jvmti_env, _lock))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->DestroyRawMonitor(_lock))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to destroy a raw monitor\n", msg); @@ -137,8 +130,7 @@ static void memoryFunc(jvmtiEnv *jvmti_env, const char *msg) { NSK_DISPLAY1("%s: allocating memory ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(Allocate, - jvmti_env, MEM_SIZE, &mem))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Allocate(MEM_SIZE, &mem))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to allocate memory\n\n", msg); @@ -150,8 +142,7 @@ NSK_DISPLAY1("%s: deallocating memory ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, mem))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate(mem))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to deallocate memory\n\n", msg); @@ -209,12 +200,10 @@ /* add capability to generate compiled method events */ memset(&caps, 0, sizeof(jvmtiCapabilities)); caps.can_generate_garbage_collection_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.can_generate_garbage_collection_events) @@ -225,16 +214,13 @@ (void) memset(&callbacks, 0, sizeof(callbacks)); callbacks.VMDeath = &VMDeath; callbacks.GarbageCollectionFinish = &GarbageCollectionFinish; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, - jvmti, &callbacks, sizeof(callbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; NSK_DISPLAY0("setting event callbacks done\nenabling JVMTI events ...\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_GARBAGE_COLLECTION_FINISH, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_GARBAGE_COLLECTION_FINISH, NULL))) return JNI_ERR; NSK_DISPLAY0("enabling the events done\n\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart001/gcstart001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart001/gcstart001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart001/gcstart001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -120,12 +120,10 @@ /* add capability to generate compiled method events */ memset(&caps, 0, sizeof(jvmtiCapabilities)); caps.can_generate_garbage_collection_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.can_generate_garbage_collection_events) @@ -137,19 +135,15 @@ callbacks.VMDeath = &VMDeath; callbacks.GarbageCollectionStart = &GarbageCollectionStart; callbacks.GarbageCollectionFinish = &GarbageCollectionFinish; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, - jvmti, &callbacks, sizeof(callbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; NSK_DISPLAY0("setting event callbacks done\nenabling JVMTI events ...\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_GARBAGE_COLLECTION_START, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_GARBAGE_COLLECTION_START, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_GARBAGE_COLLECTION_FINISH, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_GARBAGE_COLLECTION_FINISH, NULL))) return JNI_ERR; NSK_DISPLAY0("enabling the events done\n\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart002/gcstart002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart002/gcstart002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GarbageCollectionStart/gcstart002/gcstart002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -51,8 +51,7 @@ NSK_DISPLAY1("%s: creating a raw monitor ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(CreateRawMonitor, - jvmti_env, "_lock", &_lock))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->CreateRawMonitor("_lock", &_lock))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to create a raw monitor\n\n", msg); @@ -63,8 +62,7 @@ NSK_DISPLAY1("%s: entering the raw monitor ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, - jvmti_env, _lock))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->RawMonitorEnter(_lock))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to enter the raw monitor\n\n", msg); @@ -76,8 +74,7 @@ NSK_DISPLAY1("%s: waiting the raw monitor ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(RawMonitorWait, - jvmti_env, _lock, (jlong)10))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->RawMonitorWait(_lock, (jlong)10))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to wait the raw monitor\n\n", msg); @@ -88,8 +85,7 @@ NSK_DISPLAY1("%s: notifying a single thread waiting on the raw monitor ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorNotify, - jvmti_env, _lock))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->RawMonitorNotify(_lock))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to notify single thread\n\n", msg); @@ -100,8 +96,7 @@ NSK_DISPLAY1("%s: notifying all threads waiting on the raw monitor ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorNotifyAll, - jvmti_env, _lock))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->RawMonitorNotifyAll(_lock))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to notify all threads\n\n", msg); @@ -112,8 +107,7 @@ NSK_DISPLAY1("%s: exiting the raw monitor ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, - jvmti_env, _lock))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->RawMonitorExit(_lock))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to exit the raw monitor\n\n", msg); @@ -124,8 +118,7 @@ NSK_DISPLAY1("%s: destroying the raw monitor ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(DestroyRawMonitor, - jvmti_env, _lock))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->DestroyRawMonitor(_lock))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to destroy a raw monitor\n", msg); @@ -138,8 +131,7 @@ static void memoryFunc(jvmtiEnv *jvmti_env, const char *msg) { NSK_DISPLAY1("%s: allocating memory ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(Allocate, - jvmti_env, MEM_SIZE, &mem))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Allocate(MEM_SIZE, &mem))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to allocate memory\n\n", msg); @@ -151,8 +143,7 @@ NSK_DISPLAY1("%s: deallocating memory ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, mem))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate(mem))) { result = STATUS_FAILED; NSK_COMPLAIN1("TEST FAILED: %s: unable to deallocate memory\n\n", msg); @@ -210,12 +201,10 @@ /* add capability to generate compiled method events */ memset(&caps, 0, sizeof(jvmtiCapabilities)); caps.can_generate_garbage_collection_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.can_generate_garbage_collection_events) @@ -226,16 +215,13 @@ (void) memset(&callbacks, 0, sizeof(callbacks)); callbacks.VMDeath = &VMDeath; callbacks.GarbageCollectionStart = &GarbageCollectionStart; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, - jvmti, &callbacks, sizeof(callbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; NSK_DISPLAY0("setting event callbacks done\nenabling JVMTI events ...\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_GARBAGE_COLLECTION_START, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_GARBAGE_COLLECTION_START, NULL))) return JNI_ERR; NSK_DISPLAY0("enabling the events done\n\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GenerateEvents/genevents001/genevents001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GenerateEvents/genevents001/genevents001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GenerateEvents/genevents001/genevents001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -99,13 +99,11 @@ } NSK_DISPLAY0("Call GenerateEvents() to send missed events\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GenerateEvents, jvmti, JVMTI_EVENT_COMPILED_METHOD_LOAD))) { + if (!NSK_JVMTI_VERIFY(jvmti->GenerateEvents(JVMTI_EVENT_COMPILED_METHOD_LOAD))) { nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GenerateEvents, jvmti, JVMTI_EVENT_DYNAMIC_CODE_GENERATED))) { + if (!NSK_JVMTI_VERIFY(jvmti->GenerateEvents(JVMTI_EVENT_DYNAMIC_CODE_GENERATED))) { nsk_jvmti_setFailStatus(); } @@ -195,8 +193,7 @@ jvmtiCapabilities caps; memset(&caps, 0, sizeof(caps)); caps.can_generate_compiled_method_load_events = 1; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; } @@ -207,9 +204,7 @@ eventCallbacks.CompiledMethodLoad = callbackCompiledMethodLoad; eventCallbacks.CompiledMethodUnload = callbackCompiledMethodUnload; eventCallbacks.DynamicCodeGenerated = callbackDynamicCodeGenerated; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetAvailableProcessors/getavailproc001/getavailproc001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetAvailableProcessors/getavailproc001/getavailproc001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetAvailableProcessors/getavailproc001/getavailproc001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -53,8 +53,7 @@ jint processors = 0; NSK_DISPLAY0("GetAvailableProcessors() for current JVMTI env\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetAvailableProcessors, jvmti, &processors))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetAvailableProcessors(&processors))) { return NSK_FALSE; } NSK_DISPLAY1(" ... got processors: %d\n", (int)processors); @@ -157,9 +156,7 @@ memset(&eventCallbacks, 0, sizeof(eventCallbacks)); eventCallbacks.VMInit = callbackVMInit; eventCallbacks.VMDeath = callbackVMDeath; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCapabilities/getcaps002/getcaps002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCapabilities/getcaps002/getcaps002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCapabilities/getcaps002/getcaps002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -190,8 +190,7 @@ memset(&caps, 0, sizeof(jvmtiCapabilities)); NSK_DISPLAY0("GetCapabilities() for current JVMTI env\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) { return NSK_FALSE; } @@ -297,9 +296,7 @@ memset(&eventCallbacks, 0, sizeof(eventCallbacks)); eventCallbacks.VMInit = callbackVMInit; eventCallbacks.VMDeath = callbackVMDeath; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassLoaderClasses/clsldrclss002/clsldrclss002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassLoaderClasses/clsldrclss002/clsldrclss002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassLoaderClasses/clsldrclss002/clsldrclss002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -58,18 +58,15 @@ NSK_DISPLAY0("Obtain tested object from a static field of debugee class\n"); NSK_DISPLAY1("Find class: %s\n", CLASS_NAME); - if (!NSK_JNI_VERIFY(jni, (testedClass = - NSK_CPP_STUB2(FindClass, jni, CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (testedClass = jni->FindClass(CLASS_NAME)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (testedClass = (jclass) - NSK_CPP_STUB2(NewGlobalRef, jni, testedClass)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (testedClass = (jclass) jni->NewGlobalRef(testedClass)) != NULL)) return NSK_FALSE; NSK_DISPLAY2("Find field: %s:%s\n", FIELD_NAME, FIELD_SIGNATURE); if (!NSK_JNI_VERIFY(jni, (testedFieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, testedClass, - FIELD_NAME, FIELD_SIGNATURE)) != NULL)) + jni->GetStaticFieldID(testedClass, FIELD_NAME, FIELD_SIGNATURE)) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -82,8 +79,7 @@ jint i; for (i = 0; i < classCount && !found; i++) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature, jvmti, - classes[i], &signature, &generic))) + if (!NSK_JVMTI_VERIFY(jvmti->GetClassSignature(classes[i], &signature, &generic))) break; if (signature != NULL && strcmp(signature, exp_sig) == 0) { @@ -92,10 +88,10 @@ } if (signature != NULL) - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)signature); + jvmti->Deallocate((unsigned char*)signature); if (generic != NULL) - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)generic); + jvmti->Deallocate((unsigned char*)generic); } return found; @@ -119,13 +115,11 @@ NSK_DISPLAY0("Testcase #1: check on default classloader\n"); if (!NSK_JNI_VERIFY(jni, (testedClassLoader = - NSK_CPP_STUB3(GetStaticObjectField, jni, - testedClass, testedFieldID)) != NULL)) { + jni->GetStaticObjectField(testedClass, testedFieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassLoaderClasses, jvmti, - testedClassLoader, &classCount, &classes))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetClassLoaderClasses(testedClassLoader, &classCount, &classes))) { nsk_jvmti_setFailStatus(); return; } @@ -143,7 +137,7 @@ return; } if (classes != NULL) - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)classes); + jvmti->Deallocate((unsigned char*)classes); if (!nsk_jvmti_resumeSync()) return; @@ -152,13 +146,11 @@ NSK_DISPLAY0("Testcase #2: check on custom classloader\n"); if (!NSK_JNI_VERIFY(jni, (testedClassLoader = - NSK_CPP_STUB3(GetStaticObjectField, jni, - testedClass, testedFieldID)) != NULL)) { + jni->GetStaticObjectField(testedClass, testedFieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassLoaderClasses, jvmti, - testedClassLoader, &classCount, &classes))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetClassLoaderClasses(testedClassLoader, &classCount, &classes))) { nsk_jvmti_setFailStatus(); return; } @@ -183,9 +175,9 @@ nsk_jvmti_setFailStatus(); } if (classes != NULL) - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)classes); + jvmti->Deallocate((unsigned char*)classes); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, testedClass)); + NSK_TRACE(jni->DeleteGlobalRef(testedClass)); if (!nsk_jvmti_resumeSync()) return; diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassSignature/getclsig006/getclsig006.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassSignature/getclsig006/getclsig006.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassSignature/getclsig006/getclsig006.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -58,8 +58,7 @@ char *sign; char *gen_sign; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature, - jvmti, testedCls, &sign, &gen_sign))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetClassSignature(testedCls, &sign, &gen_sign))) { NSK_COMPLAIN1("TEST FAILED: unable to get class signature for \"%s\"\n\n", class_sig[idx][0]); return STATUS_FAILED; @@ -85,13 +84,11 @@ sign, (gen_sign==NULL)?"NULL":gen_sign); NSK_DISPLAY0("Deallocating the signature array\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti, (unsigned char*) sign))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*) sign))) { totRes = STATUS_FAILED; } if (gen_sign!=NULL) - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti, (unsigned char*) gen_sign))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*) gen_sign))) { totRes = STATUS_FAILED; } @@ -108,8 +105,7 @@ jclass testedCls; for (i=0; iFindClass(class_sig[i][1])) != NULL)) { NSK_COMPLAIN1("TEST FAILURE: unable to find class \"%s\"\n\n", class_sig[i][0]); res = STATUS_FAILED; diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentThreadCpuTime/curthrcputime001/curthrcputime001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentThreadCpuTime/curthrcputime001/curthrcputime001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentThreadCpuTime/curthrcputime001/curthrcputime001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -70,8 +70,7 @@ int success = NSK_TRUE; NSK_DISPLAY1("GetCurrentThreadCpuTime() for current thread: 0x%p\n", (void*)thread); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, (jlong *)time))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetCurrentThreadCpuTime((jlong *)time))) { return NSK_FALSE; } NSK_DISPLAY1(" ... got cpu time: %s\n", julong_to_string(*time, buf)); @@ -260,8 +259,7 @@ jvmtiThreadInfo threadInfo; { - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, thread, &threadInfo))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(thread, &threadInfo))) { nsk_jvmti_setFailStatus(); return; } @@ -284,8 +282,7 @@ jvmtiThreadInfo threadInfo; { - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, thread, &threadInfo))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(thread, &threadInfo))) { nsk_jvmti_setFailStatus(); return; } @@ -337,8 +334,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_get_current_thread_cpu_time = 1; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -353,9 +349,7 @@ eventCallbacks.VMDeath = callbackVMDeath; eventCallbacks.ThreadStart = callbackThreadStart; eventCallbacks.ThreadEnd = callbackThreadEnd; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentThreadCpuTimerInfo/curthrtimerinfo001/curthrtimerinfo001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentThreadCpuTimerInfo/curthrtimerinfo001/curthrtimerinfo001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetCurrentThreadCpuTimerInfo/curthrtimerinfo001/curthrtimerinfo001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -66,7 +66,7 @@ NSK_DISPLAY0("GetCurrentThreadCpuTimerInfo() for current JVMTI env\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, info))) { + jvmti->GetCurrentThreadCpuTimerInfo(info))) { return NSK_FALSE; } NSK_DISPLAY0("Got timer info:\n"); @@ -260,7 +260,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_get_current_thread_cpu_time = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -276,8 +276,7 @@ eventCallbacks.ThreadStart = callbackThreadStart; eventCallbacks.ThreadEnd = callbackThreadEnd; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) { + jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetEnv/GetEnv001/GetEnv001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetEnv/GetEnv001/GetEnv001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetEnv/GetEnv001/GetEnv001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -87,64 +87,29 @@ return JNI_ERR; } - if (NSK_CPP_STUB3( - GetEnv - , vm - , (void **) &jvmti - , JVMTI_VERSION_1_1 - ) != JNI_OK || jvmti == NULL) - { + if (vm->GetEnv((void **) &jvmti, JVMTI_VERSION_1_1) != JNI_OK || jvmti == NULL) { NSK_COMPLAIN0("JVMTI_VERSION_1_1 isn't supported."); return JNI_OK; } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2( - GetCapabilities - , jvmti - , &caps) - ) - ) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; caps.can_retransform_classes = 1; // Register all necessary JVM capabilities - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2( - AddCapabilities - , jvmti - , &caps) - ) - ) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; // Register all necessary event callbacks memset(&callbacks, 0, sizeof(callbacks)); callbacks.ClassFileLoadHook = &ClassFileLoadHook; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3( - SetEventCallbacks - , jvmti - , &callbacks - , sizeof(callbacks) - ) - ) - ) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; // Enable class retransformation - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4( - SetEventNotificationMode - , jvmti - , JVMTI_ENABLE - , JVMTI_EVENT_CLASS_FILE_LOAD_HOOK - , NULL - ) - ) - ) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL))) return JNI_ERR; return JNI_OK; diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetEnvironmentLocalStorage/getenvstor001/getenvstor001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetEnvironmentLocalStorage/getenvstor001/getenvstor001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetEnvironmentLocalStorage/getenvstor001/getenvstor001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -53,8 +53,7 @@ void* storage = NULL; NSK_DISPLAY0("GetEnvironmentLocalStorage() for current JVMTI env\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetEnvironmentLocalStorage, jvmti, &storage))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetEnvironmentLocalStorage(&storage))) { return NSK_FALSE; } NSK_DISPLAY1(" ... got storage: 0x%p\n", (void*)storage); @@ -158,9 +157,7 @@ memset(&eventCallbacks, 0, sizeof(eventCallbacks)); eventCallbacks.VMInit = callbackVMInit; eventCallbacks.VMDeath = callbackVMDeath; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetErrorName/geterrname001/geterrname001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetErrorName/geterrname001/geterrname001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetErrorName/geterrname001/geterrname001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -152,15 +152,14 @@ for (i = 0; i < sizeof(errors)/sizeof(error_info); i++) { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetErrorName, jvmti, errors[i].err, &name))) + jvmti->GetErrorName(errors[i].err, &name))) return NSK_FALSE; if (strcmp(name, errors[i].name) != 0) { NSK_COMPLAIN2("Error: function returns \"%s\", expected \"%s\"\n", name, errors[i].name); return_value = NSK_FALSE; } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)name))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)name))) return NSK_FALSE; } @@ -172,7 +171,7 @@ void JNICALL VMInit(jvmtiEnv *jvmti, JNIEnv* jni, jthread thread) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); NSK_DISPLAY1("Phase: %s\n", TranslatePhase(phase)); @@ -194,10 +193,10 @@ unsigned char** new_class_data) { jvmtiPhase curr_phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, jvmti, access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(access_lock))) nsk_jvmti_setFailStatus(); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &curr_phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&curr_phase))) nsk_jvmti_setFailStatus(); if (phase != curr_phase) { @@ -210,7 +209,7 @@ nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(access_lock))) nsk_jvmti_setFailStatus(); } @@ -224,7 +223,7 @@ if (!nsk_jvmti_waitForSync(timeout)) return; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); NSK_DISPLAY1("Phase: %s\n", TranslatePhase(phase)); @@ -270,12 +269,10 @@ return JNI_ERR; /* Create data access lock */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(CreateRawMonitor, jvmti, - "_access_lock", &access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("_access_lock", &access_lock))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) return JNI_ERR; NSK_DISPLAY1("Phase: %s\n", TranslatePhase(phase)); @@ -288,21 +285,17 @@ memset(&callbacks, 0, sizeof(callbacks)); callbacks.VMInit = &VMInit; callbacks.ClassFileLoadHook = &ClassFileLoadHook; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &callbacks, sizeof(callbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; /* enable VMInit event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_VM_INIT, NULL))) + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL))) return JNI_ERR; /* enable ClassFileLoadHook event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL))) + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL))) return JNI_ERR; /* register agent proc and arg */ diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetErrorName/geterrname002/geterrname002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetErrorName/geterrname002/geterrname002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetErrorName/geterrname002/geterrname002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -48,12 +48,12 @@ NSK_DISPLAY0("Testcase #1: check on JVMTI_ERROR_ILLEGAL_ARGUMENT\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_ILLEGAL_ARGUMENT, - NSK_CPP_STUB3(GetErrorName, jvmti, (jvmtiError)(-1), &name))) + jvmti->GetErrorName((jvmtiError)(-1), &name))) nsk_jvmti_setFailStatus(); NSK_DISPLAY0("Testcase #2: check on JVMTI_ERROR_NULL_POINTER\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_NULL_POINTER, - NSK_CPP_STUB3(GetErrorName, jvmti, JVMTI_ERROR_NONE, NULL))) + jvmti->GetErrorName(JVMTI_ERROR_NONE, NULL))) nsk_jvmti_setFailStatus(); /* resume debugee after last sync */ diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetExtensionEvents/extevents001/extevents001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetExtensionEvents/extevents001/extevents001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetExtensionEvents/extevents001/extevents001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -54,8 +54,7 @@ int i; NSK_DISPLAY0("Get extension events list\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetExtensionEvents, jvmti, &extCount, &extList))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetExtensionEvents(&extCount, &extList))) { return NSK_FALSE; } NSK_DISPLAY1(" ... got count: %d\n", (int)extCount); @@ -219,8 +218,7 @@ } NSK_DISPLAY1("Deallocate extension events list: 0x%p\n", (void*)extList); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)extList))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)extList))) { return NSK_FALSE; } NSK_DISPLAY0(" ... deallocated\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetExtensionFunctions/extfuncs001/extfuncs001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetExtensionFunctions/extfuncs001/extfuncs001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetExtensionFunctions/extfuncs001/extfuncs001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -53,8 +53,7 @@ int i; NSK_DISPLAY0("Get extension functions list\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetExtensionFunctions, jvmti, &extCount, &extList))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetExtensionFunctions(&extCount, &extList))) { return NSK_FALSE; } NSK_DISPLAY1(" ... got count: %d\n", (int)extCount); @@ -230,8 +229,7 @@ } NSK_DISPLAY1("Deallocate extension functions list: 0x%p\n", (void*)extList); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)extList))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)extList))) { return NSK_FALSE; } NSK_DISPLAY0(" ... deallocated\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldName/getfldnm005/getfldnm005.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldName/getfldnm005/getfldnm005.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetFieldName/getfldnm005/getfldnm005.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -92,8 +92,7 @@ char *sign; char *gen_sign; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB6(GetFieldName, - jvmti, testedCls, testedFld, &name, &sign, &gen_sign))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetFieldName(testedCls, testedFld, &name, &sign, &gen_sign))) { NSK_COMPLAIN1("TEST FAILED: unable to get field name & signature for \"%s\"\n\n", fld_sig[idx][0]); return STATUS_FAILED; @@ -120,15 +119,12 @@ sign, (gen_sign==NULL)?"NULL":gen_sign); NSK_DISPLAY0("Deallocating name & signature arrays\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti, (unsigned char*) name))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*) name))) totRes = STATUS_FAILED; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti, (unsigned char*) sign))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*) sign))) totRes = STATUS_FAILED; if (gen_sign!=NULL) - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti, (unsigned char*) gen_sign))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*) gen_sign))) totRes = STATUS_FAILED; } @@ -140,8 +136,7 @@ JNIEnv *jni, jobject obj) { int res = PASSED, i, instance; jfieldID testedFld = NULL; - jclass objCls = NSK_CPP_STUB2(GetObjectClass, - jni, obj); + jclass objCls = jni->GetObjectClass(obj); for (i=0; iGetFieldID(objCls, fld_sig[i][0], fld_sig[i][2])) != NULL)) { NSK_COMPLAIN1("TEST FAILERE: unable to get field ID for \"%s\"\n\n", fld_sig[i][0]); res = STATUS_FAILED; @@ -160,9 +153,7 @@ } } else - if (!NSK_JNI_VERIFY(jni, (testedFld = NSK_CPP_STUB4( - GetStaticFieldID, jni, objCls, - fld_sig[i][0], fld_sig[i][2])) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (testedFld = jni->GetStaticFieldID(objCls, fld_sig[i][0], fld_sig[i][2])) != NULL)) { NSK_COMPLAIN1("TEST FAILERE: unable to get field ID for \"%s\"\n\n", fld_sig[i][0]); res = STATUS_FAILED; diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt001/getjlocfmt001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt001/getjlocfmt001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt001/getjlocfmt001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -57,14 +57,14 @@ VMInit(jvmtiEnv *jvmti, JNIEnv* jni, jthread thread) { jvmtiJlocationFormat format; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); NSK_DISPLAY1("Phase: %s\n", TranslatePhase(phase)); /* testcase #3: check GetJLocationFormat in VMInit */ NSK_DISPLAY0("Testcase #3: check GetJLocationFormat in VMInit\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetJLocationFormat, jvmti, &format))) + if (!NSK_JVMTI_VERIFY(jvmti->GetJLocationFormat(&format))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY((format == JVMTI_JLOCATION_JVMBCI) || (format == JVMTI_JLOCATION_MACHINEPC) @@ -85,10 +85,10 @@ jvmtiJlocationFormat format; jvmtiPhase curr_phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, jvmti, access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(access_lock))) nsk_jvmti_setFailStatus(); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &curr_phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&curr_phase))) nsk_jvmti_setFailStatus(); if (phase != curr_phase) { @@ -97,7 +97,7 @@ /* testcase #2: check GetJLocationFormat in ClassFileLoadHook */ NSK_DISPLAY0("Testcase #2: check GetJLocationFormat in ClassFileLoadHook\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetJLocationFormat, jvmti, &format))) + if (!NSK_JVMTI_VERIFY(jvmti->GetJLocationFormat(&format))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY((format == JVMTI_JLOCATION_JVMBCI) || (format == JVMTI_JLOCATION_MACHINEPC) @@ -106,7 +106,7 @@ NSK_DISPLAY1("JlocationFormat: %s\n", TranslateJlocationFormat(format)); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(access_lock))) nsk_jvmti_setFailStatus(); } @@ -121,14 +121,14 @@ if (!nsk_jvmti_waitForSync(timeout)) return; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); NSK_DISPLAY1("Phase: %s\n", TranslatePhase(phase)); /* testcase #4: check GetJLocationFormat in agentProc */ NSK_DISPLAY0("Testcase #4: check GetJLocationFormat in agentProc\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetJLocationFormat, jvmti, &format))) + if (!NSK_JVMTI_VERIFY(jvmti->GetJLocationFormat(&format))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY((format == JVMTI_JLOCATION_JVMBCI) || (format == JVMTI_JLOCATION_MACHINEPC) @@ -173,19 +173,17 @@ return JNI_ERR; /* Create data access lock */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(CreateRawMonitor, jvmti, - "_access_lock", &access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("_access_lock", &access_lock))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) return JNI_ERR; NSK_DISPLAY1("Phase: %s\n", TranslatePhase(phase)); /* testcase #1: check GetJLocationFormat in Agent_OnLoad */ NSK_DISPLAY0("Testcase #1: check GetJLocationFormat in Agent_OnLoad\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetJLocationFormat, jvmti, &format))) + if (!NSK_JVMTI_VERIFY(jvmti->GetJLocationFormat(&format))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY((format == JVMTI_JLOCATION_JVMBCI) || (format == JVMTI_JLOCATION_MACHINEPC) @@ -196,21 +194,17 @@ memset(&callbacks, 0, sizeof(callbacks)); callbacks.VMInit = &VMInit; callbacks.ClassFileLoadHook = &ClassFileLoadHook; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &callbacks, sizeof(callbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; /* enable VMInit event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_VM_INIT, NULL))) + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL))) return JNI_ERR; /* enable ClassFileLoadHook event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL))) + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL))) return JNI_ERR; /* register agent proc and arg */ diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt002/getjlocfmt002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt002/getjlocfmt002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetJLocationFormat/getjlocfmt002/getjlocfmt002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -46,8 +46,7 @@ return; NSK_DISPLAY0("Check if GetJLocationFormat(NULL) returns JVMTI_ERROR_NULL_POINTER\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_NULL_POINTER, - NSK_CPP_STUB2(GetJLocationFormat, jvmti, NULL))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_NULL_POINTER, jvmti->GetJLocationFormat(NULL))) nsk_jvmti_setFailStatus(); /* resume debugee after last sync */ diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLoadedClasses/loadedclss002/loadedclss002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLoadedClasses/loadedclss002/loadedclss002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLoadedClasses/loadedclss002/loadedclss002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -60,8 +60,7 @@ jint i; for (i = 0; i < classCount && !found; i++) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature, jvmti, - classes[i], &signature, &generic))) + if (!NSK_JVMTI_VERIFY(jvmti->GetClassSignature(classes[i], &signature, &generic))) break; if (signature != NULL && strcmp(signature, exp_sig) == 0) { @@ -70,10 +69,10 @@ } if (signature != NULL) - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)signature); + jvmti->Deallocate((unsigned char*)signature); if (generic != NULL) - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)generic); + jvmti->Deallocate((unsigned char*)generic); } return found; @@ -91,8 +90,7 @@ if (!nsk_jvmti_waitForSync(timeout)) return; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetLoadedClasses, jvmti, - &classCount, &classes))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetLoadedClasses(&classCount, &classes))) { nsk_jvmti_setFailStatus(); return; } @@ -124,7 +122,7 @@ } if (classes != NULL) - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)classes); + jvmti->Deallocate((unsigned char*)classes); if (!nsk_jvmti_resumeSync()) return; diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab004/localtab004.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab004/localtab004.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab004/localtab004.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -99,13 +99,9 @@ /* get the JNI method ID for a method with name m_name and signature m_sign */ if (methInfo[i].inst) /* an instance method */ - methInfo[i].mid = NSK_CPP_STUB4(GetMethodID, - jni_env, testedCls, - methInfo[i].m_name, methInfo[i].m_sign); + methInfo[i].mid = jni_env->GetMethodID(testedCls, methInfo[i].m_name, methInfo[i].m_sign); else /* a static method */ - methInfo[i].mid = NSK_CPP_STUB4(GetStaticMethodID, - jni_env, testedCls, - methInfo[i].m_name, methInfo[i].m_sign); + methInfo[i].mid = jni_env->GetStaticMethodID(testedCls, methInfo[i].m_name, methInfo[i].m_sign); if (methInfo[i].mid == NULL) { NSK_COMPLAIN3("TEST FAILURE: unable to get the method ID for the %s method \"%s\", signature \"%s\"\n\n", methInfo[i].inst?"instance":"static", @@ -114,8 +110,7 @@ } /* get the LocalVariableTable attribute */ - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetLocalVariableTable, - jvmti, methInfo[i].mid, &count, &lv_table))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetLocalVariableTable(methInfo[i].mid, &count, &lv_table))) { NSK_COMPLAIN3("TEST FAILED: unable to get local variable table\n\tfor the %s method \"%s\", signature \"%s\"\n\n", methInfo[i].inst?"instance":"static", methInfo[i].m_name, methInfo[i].m_sign); @@ -175,8 +170,7 @@ JNIEXPORT jint JNICALL Java_nsk_jvmti_GetLocalVariableTable_localtab004_check( JNIEnv *env, jobject obj, jobject testedObj) { - jclass testedCls = NSK_CPP_STUB2(GetObjectClass, - env, testedObj); + jclass testedCls = env->GetObjectClass(testedObj); if (!caps.can_access_local_variables) return PASSED; @@ -208,12 +202,10 @@ /* add capability to access local variables */ memset(&caps, 0, sizeof(jvmtiCapabilities)); caps.can_access_local_variables = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.can_access_local_variables) diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab005/localtab005.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab005/localtab005.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetLocalVariableTable/localtab005/localtab005.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -107,13 +107,9 @@ /* get the JNI method ID for a method with name m_name and signature m_sign */ if (methInfo[i].inst) /* an instance method */ - methInfo[i].mid = NSK_CPP_STUB4(GetMethodID, - jni_env, testedCls, - methInfo[i].m_name, methInfo[i].m_sign); + methInfo[i].mid = jni_env->GetMethodID(testedCls, methInfo[i].m_name, methInfo[i].m_sign); else /* a static method */ - methInfo[i].mid = NSK_CPP_STUB4(GetStaticMethodID, - jni_env, testedCls, - methInfo[i].m_name, methInfo[i].m_sign); + methInfo[i].mid = jni_env->GetStaticMethodID(testedCls, methInfo[i].m_name, methInfo[i].m_sign); if (methInfo[i].mid == NULL) { NSK_COMPLAIN3("TEST FAILURE: unable to get the method ID for the %s method \"%s\", signature \"%s\"\n\n", methInfo[i].inst?"instance":"static", @@ -122,8 +118,7 @@ } /* get the LocalVariableTable attribute */ - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetLocalVariableTable, - jvmti, methInfo[i].mid, &count, &lv_table))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetLocalVariableTable(methInfo[i].mid, &count, &lv_table))) { NSK_COMPLAIN3("TEST FAILED: unable to get local variable table\n\tfor the %s method \"%s\", signature \"%s\"\n\n", methInfo[i].inst?"instance":"static", methInfo[i].m_name, methInfo[i].m_sign); @@ -185,8 +180,7 @@ } } NSK_DISPLAY0("Deallocating the local variable table entries\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti, (unsigned char*) lv_table))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*) lv_table))) { totRes = STATUS_FAILED; } @@ -200,8 +194,7 @@ JNIEXPORT jint JNICALL Java_nsk_jvmti_GetLocalVariableTable_localtab005_check( JNIEnv *env, jobject obj, jobject testedObj) { - jclass testedCls = NSK_CPP_STUB2(GetObjectClass, - env, testedObj); + jclass testedCls = env->GetObjectClass(testedObj); if (!caps.can_access_local_variables) return PASSED; @@ -233,12 +226,10 @@ /* add capability to access local variables */ memset(&caps, 0, sizeof(jvmtiCapabilities)); caps.can_access_local_variables = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.can_access_local_variables) diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodName/methname003/methname003.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodName/methname003/methname003.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetMethodName/methname003/methname003.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -89,8 +89,7 @@ char *sign; char *gen_sign; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetMethodName, - jvmti, testedMeth, &name, &sign, &gen_sign))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetMethodName(testedMeth, &name, &sign, &gen_sign))) { NSK_COMPLAIN1("TEST FAILED: unable to get class signature for \"%s\"\n\n", meth_sig[clsIdx][methIdx][0]); return STATUS_FAILED; @@ -112,17 +111,14 @@ sign, (gen_sign==NULL)?"NULL":gen_sign); NSK_DISPLAY0("Deallocating name & signature arrays\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti, (unsigned char*) name))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*) name))) { totRes = STATUS_FAILED; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti, (unsigned char*) sign))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*) sign))) { totRes = STATUS_FAILED; } if (gen_sign!=NULL) - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti, (unsigned char*) gen_sign))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*) gen_sign))) { totRes = STATUS_FAILED; } } @@ -135,8 +131,7 @@ JNIEnv *jni, jobject obj, jobject testedObj, jint clsIdx) { int res = PASSED, i, instance; jmethodID testedMeth = NULL; - jclass objCls = NSK_CPP_STUB2(GetObjectClass, - jni, testedObj); + jclass objCls = jni->GetObjectClass(testedObj); for (i=0; iGetMethodID(objCls, meth_sig[clsIdx][i][0], meth_sig[clsIdx][i][2])) != NULL)) { NSK_COMPLAIN2("TEST FAILERE: unable to get method ID for \"%s\" \"%s\"\n\n", meth_sig[clsIdx][i][0], meth_sig[clsIdx][i][2]); res = STATUS_FAILED; @@ -155,9 +148,7 @@ } } else - if (!NSK_JNI_VERIFY(jni, (testedMeth = NSK_CPP_STUB4(GetStaticMethodID, - jni, objCls, meth_sig[clsIdx][i][0], - meth_sig[clsIdx][i][2])) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (testedMeth = jni->GetStaticMethodID(objCls, meth_sig[clsIdx][i][0], meth_sig[clsIdx][i][2])) != NULL)) { NSK_COMPLAIN2("TEST FAILERE: unable to get method ID for \"%s\" \"%s\"\n\n", meth_sig[clsIdx][i][0], meth_sig[clsIdx][i][2]); res = STATUS_FAILED; diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectHashCode/objhashcode001/objhashcode001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectHashCode/objhashcode001/objhashcode001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectHashCode/objhashcode001/objhashcode001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -60,8 +60,7 @@ jfieldID objectField = NULL; NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); - if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (debugeeClass = jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -69,8 +68,7 @@ NSK_DISPLAY1("Find static field: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (objectField = - NSK_CPP_STUB4(GetStaticFieldID, jni, debugeeClass, - OBJECT_FIELD_NAME, OBJECT_CLASS_SIG)) != NULL)) { + jni->GetStaticFieldID(debugeeClass, OBJECT_FIELD_NAME, OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -78,16 +76,14 @@ NSK_DISPLAY1("Get object from static field: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (testedObject = - NSK_CPP_STUB3(GetStaticObjectField, jni, debugeeClass, - objectField)) != NULL)) { + jni->GetStaticObjectField(debugeeClass, objectField)) != NULL)) { nsk_jvmti_setFailStatus(); return; } NSK_DISPLAY1(" ... got object: %p\n", (void*)testedObject); NSK_DISPLAY1("Create global reference for object: %p\n", (void*)testedObject); - if (!NSK_JNI_VERIFY(jni, (testedObject = - NSK_CPP_STUB2(NewGlobalRef, jni, testedObject)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (testedObject = jni->NewGlobalRef(testedObject)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -97,8 +93,7 @@ NSK_DISPLAY0(">>> Testcase #1: get initial hash code of the object\n"); { NSK_DISPLAY1("Get hashcode for object: %p\n", (void*)testedObject); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetObjectHashCode, jvmti, testedObject, &objectHashCode))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectHashCode(testedObject, &objectHashCode))) { nsk_jvmti_setFailStatus(); return; } @@ -110,8 +105,7 @@ jint hashCode = 0; NSK_DISPLAY1("Get hashcode for object: %p\n", (void*)testedObject); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetObjectHashCode, jvmti, testedObject, &hashCode))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectHashCode(testedObject, &hashCode))) { nsk_jvmti_setFailStatus(); return; } @@ -141,7 +135,7 @@ NSK_DISPLAY1("Get hashcode for object: %p\n", (void*)testedObject); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetObjectHashCode, jvmti, testedObject, &hashCode))) { + jvmti->GetObjectHashCode(testedObject, &hashCode))) { nsk_jvmti_setFailStatus(); return; } @@ -162,7 +156,7 @@ NSK_DISPLAY0(">>> Clean used data\n"); { NSK_DISPLAY1("Delete object reference: %p\n", (void*)testedObject); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, testedObject)); + NSK_TRACE(jni->DeleteGlobalRef(testedObject)); } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectSize/objsize001/objsize001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectSize/objsize001/objsize001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectSize/objsize001/objsize001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -57,8 +57,7 @@ jfieldID objectField = NULL; NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); - if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (debugeeClass = jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -66,8 +65,7 @@ NSK_DISPLAY1("Find static field: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (objectField = - NSK_CPP_STUB4(GetStaticFieldID, jni, debugeeClass, - OBJECT_FIELD_NAME, OBJECT_CLASS_SIG)) != NULL)) { + jni->GetStaticFieldID(debugeeClass, OBJECT_FIELD_NAME, OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -75,16 +73,14 @@ NSK_DISPLAY1("Get object from static field: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (testedObject = - NSK_CPP_STUB3(GetStaticObjectField, jni, debugeeClass, - objectField)) != NULL)) { + jni->GetStaticObjectField(debugeeClass, objectField)) != NULL)) { nsk_jvmti_setFailStatus(); return; } NSK_DISPLAY1(" ... got object: 0x%p\n", (void*)testedObject); NSK_DISPLAY1("Create global reference for object: 0x%p\n", (void*)testedObject); - if (!NSK_JNI_VERIFY(jni, (testedObject = - NSK_CPP_STUB2(NewGlobalRef, jni, testedObject)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (testedObject = jni->NewGlobalRef(testedObject)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -94,8 +90,7 @@ NSK_DISPLAY0(">>> Testcase #1: get initial size of the object\n"); { NSK_DISPLAY1("Get size for object: 0x%p\n", (void*)testedObject); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetObjectSize, jvmti, testedObject, &objectSize))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectSize(testedObject, &objectSize))) { nsk_jvmti_setFailStatus(); return; } @@ -113,8 +108,7 @@ jlong size = 0; NSK_DISPLAY1("Get size for object: 0x%p\n", (void*)testedObject); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetObjectSize, jvmti, testedObject, &size))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectSize(testedObject, &size))) { nsk_jvmti_setFailStatus(); return; } @@ -142,8 +136,7 @@ return; NSK_DISPLAY1("Get size for object: 0x%p\n", (void*)testedObject); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetObjectSize, jvmti, testedObject, &size))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectSize(testedObject, &size))) { nsk_jvmti_setFailStatus(); return; } @@ -163,7 +156,7 @@ NSK_DISPLAY0(">>> Clean used data\n"); { NSK_DISPLAY1("Delete object reference: 0x%p\n", (void*)testedObject); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, testedObject)); + NSK_TRACE(jni->DeleteGlobalRef(testedObject)); } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectsWithTags/objwithtags001/objwithtags001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectsWithTags/objwithtags001/objwithtags001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetObjectsWithTags/objwithtags001/objwithtags001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -63,17 +63,13 @@ NSK_DISPLAY2("Allocate memory for lists: %d objects for %d tags\n", objectsCount, tagsCount); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, (size * sizeof(jobject)), - (unsigned char**)objects))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate((size * sizeof(jobject)), (unsigned char**)objects))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } NSK_DISPLAY1(" ... allocated objects list: 0x%p\n", (void*)objects); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, (tagsCount * sizeof(jlong)), - (unsigned char**)tags))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate((tagsCount * sizeof(jlong)), (unsigned char**)tags))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -91,8 +87,7 @@ } NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); - if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (debugeeClass = jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -100,8 +95,7 @@ NSK_DISPLAY1("Find static field: %s\n", OBJECTS_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (objectField = - NSK_CPP_STUB4(GetStaticFieldID, jni, debugeeClass, - OBJECTS_FIELD_NAME, OBJECTS_FIELD_SIG)) != NULL)) { + jni->GetStaticFieldID(debugeeClass, OBJECTS_FIELD_NAME, OBJECTS_FIELD_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -109,8 +103,7 @@ NSK_DISPLAY1("Get objects array from static field: %s\n", OBJECTS_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (arrayObject = (jobjectArray) - NSK_CPP_STUB3(GetStaticObjectField, jni, debugeeClass, - objectField)) != NULL)) { + jni->GetStaticObjectField(debugeeClass, objectField)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -120,8 +113,7 @@ jsize arrayLen = 0; jsize k; - if (!NSK_JNI_VERIFY(jni, (arrayLen = - NSK_CPP_STUB2(GetArrayLength, jni, arrayObject)) == size)) { + if (!NSK_JNI_VERIFY(jni, (arrayLen = jni->GetArrayLength(arrayObject)) == size)) { NSK_DISPLAY1(" ... got array length: %d\n", (int)size); nsk_jvmti_setFailStatus(); return NSK_FALSE; @@ -131,13 +123,11 @@ for (k = 0; k < size; k++) { jobject object = NULL; - if (!NSK_JNI_VERIFY(jni, (object = - NSK_CPP_STUB3(GetObjectArrayElement, jni, arrayObject, k)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (object = jni->GetObjectArrayElement(arrayObject, k)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } - if (!NSK_JNI_VERIFY(jni, (object = - NSK_CPP_STUB2(NewGlobalRef, jni, object)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (object = jni->NewGlobalRef(object)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -162,14 +152,14 @@ NSK_DISPLAY1("Release objects references: %d objects\n", size); for (k = 0; k < size; k++) { if (objects[k] != NULL) { - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, objects[k])); + NSK_TRACE(jni->DeleteGlobalRef(objects[k])); } } NSK_DISPLAY1(" ... object references released: %d objects\n", size); NSK_DISPLAY1("Deallocate objects list: 0x%p\n", (void*)objects); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)objects))) { + jvmti->Deallocate((unsigned char*)objects))) { nsk_jvmti_setFailStatus(); } @@ -178,7 +168,7 @@ NSK_DISPLAY1("Deallocate tags list: 0x%p\n", (void*)tags); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)tags))) { + jvmti->Deallocate((unsigned char*)tags))) { nsk_jvmti_setFailStatus(); } @@ -197,8 +187,7 @@ NSK_DISPLAY1("Get tagged objects: %d tags\n", tagsCount); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, tagsCount, tags, - &taggedObjectsCount, &taggedObjectsList, &taggedObjectsTags))) { + jvmti->GetObjectsWithTags(tagsCount, tags, &taggedObjectsCount, &taggedObjectsList, &taggedObjectsTags))) { nsk_jvmti_setFailStatus(); return NSK_TRUE; } @@ -258,7 +247,7 @@ for (j = 0; j < objectsCount; j++) { jobject foundObject = ITEM(objects, i, j); - if (NSK_CPP_STUB3(IsSameObject, jni, object, foundObject)) { + if (jni->IsSameObject(object, foundObject)) { objectsFound++; if (expectedCount > 0) @@ -295,12 +284,12 @@ NSK_DISPLAY1("Deallocate got objects list: 0x%p\n", (void*)taggedObjectsList); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)taggedObjectsList))) { + jvmti->Deallocate((unsigned char*)taggedObjectsList))) { nsk_jvmti_setFailStatus(); } NSK_DISPLAY1("Deallocate got tags list: 0x%p\n", (void*)taggedObjectsTags); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)taggedObjectsTags))) { + jvmti->Deallocate((unsigned char*)taggedObjectsTags))) { nsk_jvmti_setFailStatus(); } @@ -338,8 +327,7 @@ NSK_DISPLAY3(" #%d: object: 0x%p, tag: %ld\n", j, (void*)object, (long)tags[i]); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetTag, jvmti, object, tags[i]))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetTag(object, tags[i]))) { nsk_jvmti_setFailStatus(); return; } @@ -384,8 +372,7 @@ NSK_DISPLAY3(" #%d: object: 0x%p, tag: %ld\n", j, (void*)object, (long)tag); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetTag, jvmti, object, tag))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetTag(object, tag))) { nsk_jvmti_setFailStatus(); return; } @@ -455,8 +442,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_tag_objects = 1; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetPhase/getphase001/getphase001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetPhase/getphase001/getphase001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetPhase/getphase001/getphase001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -45,14 +45,14 @@ VMStart(jvmtiEnv *jvmti, JNIEnv* jni) { jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, jvmti, access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(access_lock))) nsk_jvmti_setFailStatus(); NSK_DISPLAY0("VMStart\n"); /* testcase #2: check JVMTI_PHASE_START */ NSK_DISPLAY0("Testcase #2: check if GetPhase returns JVMTI_PHASE_START\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY(phase == JVMTI_PHASE_START)) @@ -60,7 +60,7 @@ was_VMStart = JNI_TRUE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(access_lock))) nsk_jvmti_setFailStatus(); } @@ -68,14 +68,14 @@ VMInit(jvmtiEnv *jvmti, JNIEnv* jni, jthread thread) { jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, jvmti, access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(access_lock))) nsk_jvmti_setFailStatus(); NSK_DISPLAY0("VMInit\n"); /* testcase #3: check JVMTI_PHASE_LIVE */ NSK_DISPLAY0("Testcase #3: check if GetPhase returns JVMTI_PHASE_LIVE\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY(phase == JVMTI_PHASE_LIVE)) @@ -83,7 +83,7 @@ was_VMInit = JNI_TRUE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(access_lock))) nsk_jvmti_setFailStatus(); } @@ -93,7 +93,7 @@ void* address, void** new_address_ptr) { jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, jvmti, access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(access_lock))) nsk_jvmti_setFailStatus(); NSK_DISPLAY0("NativeMethodBind\n"); @@ -102,7 +102,7 @@ /* testcase #5: check JVMTI_PHASE_PRIMORDIAL */ NSK_DISPLAY0("Testcase #2: check if GetPhase returns JVMTI_PHASE_PRIMORDIAL\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY(phase == JVMTI_PHASE_PRIMORDIAL)) @@ -112,7 +112,7 @@ /* testcase #2: check JVMTI_PHASE_START */ NSK_DISPLAY0("Testcase #2: check if GetPhase returns JVMTI_PHASE_START\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY(phase == JVMTI_PHASE_START)) @@ -122,7 +122,7 @@ /* testcase #3: check JVMTI_PHASE_LIVE */ NSK_DISPLAY0("Testcase #3: check if GetPhase returns JVMTI_PHASE_LIVE\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY(phase == JVMTI_PHASE_LIVE)) @@ -132,14 +132,14 @@ /* testcase #4: check JVMTI_PHASE_DEAD */ NSK_DISPLAY0("Testcase #4: check if GetPhase returns JVMTI_PHASE_DEAD\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY(phase == JVMTI_PHASE_DEAD)) nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(access_lock))) nsk_jvmti_setFailStatus(); } @@ -154,7 +154,7 @@ unsigned char** new_class_data) { jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, jvmti, access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(access_lock))) nsk_jvmti_setFailStatus(); NSK_DISPLAY1("ClassFileLoadHook: %s\n", name); @@ -163,7 +163,7 @@ /* testcase #5: check JVMTI_PHASE_PRIMORDIAL */ NSK_DISPLAY0("Testcase #2: check if GetPhase returns JVMTI_PHASE_PRIMORDIAL\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY(phase == JVMTI_PHASE_PRIMORDIAL)) @@ -173,7 +173,7 @@ /* testcase #2: check JVMTI_PHASE_START */ NSK_DISPLAY0("Testcase #2: check if GetPhase returns JVMTI_PHASE_START\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY(phase == JVMTI_PHASE_START)) @@ -183,7 +183,7 @@ /* testcase #3: check JVMTI_PHASE_LIVE */ NSK_DISPLAY0("Testcase #3: check if GetPhase returns JVMTI_PHASE_LIVE\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY(phase == JVMTI_PHASE_LIVE)) @@ -193,14 +193,14 @@ /* testcase #4: check JVMTI_PHASE_DEAD */ NSK_DISPLAY0("Testcase #4: check if GetPhase returns JVMTI_PHASE_DEAD\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY(phase == JVMTI_PHASE_DEAD)) nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(access_lock))) nsk_jvmti_setFailStatus(); } @@ -208,14 +208,14 @@ VMDeath(jvmtiEnv *jvmti, JNIEnv* jni) { jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, jvmti, access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(access_lock))) nsk_jvmti_setFailStatus(); NSK_DISPLAY0("VMDeath\n"); /* testcase #3: check JVMTI_PHASE_LIVE */ NSK_DISPLAY0("Testcase #3: check if GetPhase returns JVMTI_PHASE_LIVE\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY(phase == JVMTI_PHASE_LIVE)) @@ -223,7 +223,7 @@ was_VMDeath = JNI_TRUE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, access_lock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(access_lock))) nsk_jvmti_setFailStatus(); } @@ -242,7 +242,7 @@ /* testcase #3: check JVMTI_PHASE_LIVE */ NSK_DISPLAY0("Testcase #3: check if GetPhase returns JVMTI_PHASE_LIVE\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY(phase == JVMTI_PHASE_LIVE)) @@ -289,13 +289,12 @@ /* Create data access lock */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(CreateRawMonitor, jvmti, - "_access_lock", &access_lock))) + jvmti->CreateRawMonitor("_access_lock", &access_lock))) return JNI_ERR; /* testcase #1: check JVMTI_PHASE_ONLOAD */ NSK_DISPLAY0("Testcase #1: check if GetPhase returns JVMTI_PHASE_ONLOAD\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) nsk_jvmti_setFailStatus(); if (!NSK_VERIFY(phase == JVMTI_PHASE_ONLOAD)) @@ -305,7 +304,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_generate_all_class_hook_events = 1; caps.can_generate_native_method_bind_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&callbacks, 0, sizeof(callbacks)); @@ -315,38 +314,32 @@ callbacks.NativeMethodBind = &NativeMethodBind; callbacks.ClassFileLoadHook = &ClassFileLoadHook; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &callbacks, sizeof(callbacks)))) + jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; /* enable VMStart event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_VM_START, NULL))) + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_START, NULL))) return JNI_ERR; /* enable VMInit event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_VM_INIT, NULL))) + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL))) return JNI_ERR; /* enable NativeMethodBind event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_NATIVE_METHOD_BIND, NULL))) + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_NATIVE_METHOD_BIND, NULL))) return JNI_ERR; /* enable ClassFileLoadHook event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL))) + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL))) return JNI_ERR; /* enable VMDeath event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_VM_DEATH, NULL))) + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL))) return JNI_ERR; /* register agent proc and arg */ @@ -373,7 +366,7 @@ /* testcase #4: check JVMTI_PHASE_DEAD */ NSK_DISPLAY0("Testcase #4: check if GetPhase returns JVMTI_PHASE_DEAD\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) exit(97); if (!NSK_VERIFY(phase == JVMTI_PHASE_DEAD)) diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetPhase/getphase002/getphase002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetPhase/getphase002/getphase002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetPhase/getphase002/getphase002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -47,7 +47,7 @@ NSK_DISPLAY0("Check if GetPhase(NULL) returns JVMTI_ERROR_NULL_POINTER\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_NULL_POINTER, - NSK_CPP_STUB2(GetPhase, jvmti, NULL))) + jvmti->GetPhase(NULL))) nsk_jvmti_setFailStatus(); /* resume debugee after last sync */ diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetPotentialCapabilities/getpotcaps001/getpotcaps001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetPotentialCapabilities/getpotcaps001/getpotcaps001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetPotentialCapabilities/getpotcaps001/getpotcaps001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -130,7 +130,7 @@ NSK_DISPLAY0("GetPotentialCapabilities() for current JVMTI env\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) { + jvmti->GetPotentialCapabilities(&caps))) { return NSK_FALSE; } @@ -233,8 +233,7 @@ eventCallbacks.VMInit = callbackVMInit; eventCallbacks.VMDeath = callbackVMDeath; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) { + jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops001/getsysprops001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops001/getsysprops001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops001/getsysprops001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -42,7 +42,7 @@ NSK_DISPLAY0("Invoke GetSystemProperties()\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetSystemProperties, jvmti, &count, &properties))) { + jvmti->GetSystemProperties(&count, &properties))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -75,7 +75,7 @@ } NSK_DISPLAY0("Deallocate properties list\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)properties))) { + jvmti->Deallocate((unsigned char*)properties))) { return NSK_FALSE; } NSK_DISPLAY0(" ... deallocated\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops002/getsysprops002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops002/getsysprops002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperties/getsysprops002/getsysprops002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -56,7 +56,7 @@ NSK_DISPLAY0("Get system properties list\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetSystemProperties, jvmti, &count, &properties))) { + jvmti->GetSystemProperties(&count, &properties))) { return NSK_FALSE; } NSK_DISPLAY1(" ... got properties: %d\n", (int)count); @@ -108,7 +108,7 @@ NSK_DISPLAY0("Deallocate properties list\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)properties))) { + jvmti->Deallocate((unsigned char*)properties))) { return NSK_FALSE; } NSK_DISPLAY0(" ... deallocated\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop001/getsysprop001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop001/getsysprop001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop001/getsysprop001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -42,7 +42,7 @@ NSK_DISPLAY0("Get system properties names\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetSystemProperties, jvmti, &count, &properties))) { + jvmti->GetSystemProperties(&count, &properties))) { return NSK_FALSE; } NSK_DISPLAY1(" ... got properties: %d\n", (int)count); @@ -65,7 +65,7 @@ } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetSystemProperty, jvmti, properties[i], &value))) { + jvmti->GetSystemProperty(properties[i], &value))) { success = NSK_FALSE; continue; } @@ -81,7 +81,7 @@ } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)value))) { + jvmti->Deallocate((unsigned char*)value))) { success = NSK_FALSE; } } @@ -90,7 +90,7 @@ NSK_DISPLAY0("Deallocate properties list\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)properties))) { + jvmti->Deallocate((unsigned char*)properties))) { success = NSK_FALSE; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop002/getsysprop002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop002/getsysprop002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetSystemProperty/getsysprop002/getsysprop002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -53,7 +53,7 @@ NSK_DISPLAY1("Get value of tested property: %s\n", desc->name); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetSystemProperty, jvmti, desc->name, &value))) { + jvmti->GetSystemProperty(desc->name, &value))) { return NSK_FALSE; } NSK_DISPLAY1(" ... got value: \"%s\"\n", nsk_null_string(value)); @@ -73,7 +73,7 @@ } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)value))) { + jvmti->Deallocate((unsigned char*)value))) { success = NSK_FALSE; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTag/gettag001/gettag001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTag/gettag001/gettag001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTag/gettag001/gettag001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -61,7 +61,7 @@ NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -69,8 +69,7 @@ NSK_DISPLAY1("Find static field: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (objectField = - NSK_CPP_STUB4(GetStaticFieldID, jni, debugeeClass, - OBJECT_FIELD_NAME, OBJECT_CLASS_SIG)) != NULL)) { + jni->GetStaticFieldID(debugeeClass, OBJECT_FIELD_NAME, OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -78,8 +77,7 @@ NSK_DISPLAY1("Get object from static field: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (testedObject = - NSK_CPP_STUB3(GetStaticObjectField, jni, debugeeClass, - objectField)) != NULL)) { + jni->GetStaticObjectField(debugeeClass, objectField)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -87,7 +85,7 @@ NSK_DISPLAY1("Create global reference for object: 0x%p\n", (void*)testedObject); if (!NSK_JNI_VERIFY(jni, (testedObject = - NSK_CPP_STUB2(NewGlobalRef, jni, testedObject)) != NULL)) { + jni->NewGlobalRef(testedObject)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -100,7 +98,7 @@ NSK_DISPLAY1("Get tag for object: 0x%p\n", (void*)testedObject); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetTag, jvmti, testedObject, &objectTag))) { + jvmti->GetTag(testedObject, &objectTag))) { nsk_jvmti_setFailStatus(); return; } @@ -120,7 +118,7 @@ NSK_DISPLAY0(">>> Clean used data\n"); { NSK_DISPLAY1("Delete object reference: 0x%p\n", (void*)testedObject); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, testedObject)); + NSK_TRACE(jni->DeleteGlobalRef(testedObject)); } } @@ -164,7 +162,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_tag_objects = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime001/thrcputime001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime001/thrcputime001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime001/thrcputime001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -71,7 +71,7 @@ NSK_DISPLAY1("GetThreadCpuTime() for current thread (passing NULL): 0x%p\n", (void*)thread); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, NULL, (jlong *)time))) { + jvmti->GetThreadCpuTime(NULL, (jlong *)time))) { return NSK_FALSE; } NSK_DISPLAY1(" ... got cpu time: %s\n", julong_to_string(*time, buf)); @@ -261,7 +261,7 @@ jvmtiThreadInfo threadInfo; { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, thread, &threadInfo))) { + jvmti->GetThreadInfo(thread, &threadInfo))) { nsk_jvmti_setFailStatus(); return; } @@ -285,7 +285,7 @@ jvmtiThreadInfo threadInfo; { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, thread, &threadInfo))) { + jvmti->GetThreadInfo(thread, &threadInfo))) { nsk_jvmti_setFailStatus(); return; } @@ -338,7 +338,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_get_thread_cpu_time = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -354,8 +354,7 @@ eventCallbacks.ThreadStart = callbackThreadStart; eventCallbacks.ThreadEnd = callbackThreadEnd; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) { + jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime002/thrcputime002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime002/thrcputime002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadCpuTime/thrcputime002/thrcputime002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -73,8 +73,7 @@ int success = NSK_TRUE; NSK_DISPLAY1("GetThreadCpuTime() for thread: 0x%p\n", (void*)thread); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, (jlong *)time))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadCpuTime(thread, (jlong *)time))) { return NSK_FALSE; } NSK_DISPLAY1(" ... got cpu time: %s\n", julong_to_string(*time, buf)); @@ -265,8 +264,7 @@ jvmtiThreadInfo threadInfo; { - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, thread, &threadInfo))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(thread, &threadInfo))) { nsk_jvmti_setFailStatus(); return; } @@ -282,8 +280,7 @@ } if (threadInfo.name != NULL && strcmp(threadInfo.name, TESTED_THREAD_NAME) == 0) { - if (!NSK_JNI_VERIFY(jni, (testedThread = - NSK_CPP_STUB2(NewGlobalRef, jni, thread)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (testedThread = jni->NewGlobalRef(thread)) != NULL)) { nsk_jvmti_setFailStatus(); } @@ -302,8 +299,7 @@ jvmtiThreadInfo threadInfo; { - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, thread, &threadInfo))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(thread, &threadInfo))) { nsk_jvmti_setFailStatus(); return; } @@ -324,7 +320,7 @@ if (!checkCpuTime(jvmti, thread, &time, &prevTestedThreadTime, "THREAD_END callback")) { nsk_jvmti_setFailStatus(); } - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, testedThread)); + NSK_TRACE(jni->DeleteGlobalRef(testedThread)); testedThread = NULL; } } @@ -365,8 +361,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_get_thread_cpu_time = 1; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -381,9 +376,7 @@ eventCallbacks.VMDeath = callbackVMDeath; eventCallbacks.ThreadStart = callbackThreadStart; eventCallbacks.ThreadEnd = callbackThreadEnd; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadCpuTimerInfo/thrtimerinfo001/thrtimerinfo001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadCpuTimerInfo/thrtimerinfo001/thrtimerinfo001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadCpuTimerInfo/thrtimerinfo001/thrtimerinfo001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -66,7 +66,7 @@ NSK_DISPLAY0("GetThreadCpuTimerInfo() for current JVMTI env\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, info))) { + jvmti->GetThreadCpuTimerInfo(info))) { return NSK_FALSE; } NSK_DISPLAY0("Got timer info:\n"); @@ -260,7 +260,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_get_thread_cpu_time = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -276,8 +276,7 @@ eventCallbacks.ThreadStart = callbackThreadStart; eventCallbacks.ThreadEnd = callbackThreadEnd; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) { + jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadGroupChildren/getthrdgrpchld001/getthrdgrpchld001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadGroupChildren/getthrdgrpchld001/getthrdgrpchld001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadGroupChildren/getthrdgrpchld001/getthrdgrpchld001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -81,7 +81,7 @@ NSK_DISPLAY0("Get top level thread groups\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetTopThreadGroups, jvmti, &topGroupsCount, &topGroups))) { + jvmti->GetTopThreadGroups(&topGroupsCount, &topGroups))) { nsk_jvmti_setFailStatus(); return; } @@ -110,8 +110,7 @@ NSK_DISPLAY1("Get children of root thread group: %p\n", (void*)rootGroup); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB6(GetThreadGroupChildren, jvmti, rootGroup, - &threadsCount, &threads, &groupsCount, &groups))) { + jvmti->GetThreadGroupChildren(rootGroup, &threadsCount, &threads, &groupsCount, &groups))) { nsk_jvmti_setFailStatus(); return; } @@ -142,7 +141,7 @@ jvmtiThreadGroupInfo info; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadGroupInfo, jvmti, groups[i], &info))) { + jvmti->GetThreadGroupInfo(groups[i], &info))) { nsk_jvmti_setFailStatus(); continue; } @@ -221,11 +220,11 @@ /* deallocate arrays */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)groups))) { + jvmti->Deallocate((unsigned char*)groups))) { nsk_jvmti_setFailStatus(); } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) { + jvmti->Deallocate((unsigned char*)threads))) { nsk_jvmti_setFailStatus(); } } @@ -258,8 +257,7 @@ jthreadGroup* groups = NULL; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB6(GetThreadGroupChildren, jvmti, group, - &threadsCount, &threads, &groupsCount, &groups))) { + jvmti->GetThreadGroupChildren(group, &threadsCount, &threads, &groupsCount, &groups))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -290,7 +288,7 @@ jvmtiThreadInfo info; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) { + jvmti->GetThreadInfo(threads[i], &info))) { nsk_jvmti_setFailStatus(); continue; } @@ -314,11 +312,11 @@ /* deallocate arrays */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)groups))) { + jvmti->Deallocate((unsigned char*)groups))) { nsk_jvmti_setFailStatus(); } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) { + jvmti->Deallocate((unsigned char*)threads))) { nsk_jvmti_setFailStatus(); } } @@ -339,8 +337,7 @@ jthreadGroup * groups = NULL; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB6(GetThreadGroupChildren, jvmti, groupsList[i], - &threadsCount, &threads, &groupsCount, &groups))) { + jvmti->GetThreadGroupChildren(groupsList[i], &threadsCount, &threads, &groupsCount, &groups))) { nsk_jvmti_setFailStatus(); return NULL; } @@ -357,7 +354,7 @@ if (groups[i] != NULL) { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadGroupInfo, jvmti, groups[i], &info))) { + jvmti->GetThreadGroupInfo(groups[i], &info))) { nsk_jvmti_setFailStatus(); continue; } @@ -376,11 +373,11 @@ /* deallocate arrays */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)groups))) { + jvmti->Deallocate((unsigned char*)groups))) { nsk_jvmti_setFailStatus(); } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) { + jvmti->Deallocate((unsigned char*)threads))) { nsk_jvmti_setFailStatus(); } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadLocalStorage/getthrdstor001/getthrdstor001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadLocalStorage/getthrdstor001/getthrdstor001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadLocalStorage/getthrdstor001/getthrdstor001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -59,7 +59,7 @@ NSK_DISPLAY1("GetThreadLocalStorage() for tested thread: %p\n", (void*)testedThread); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadLocalStorage, jvmti, testedThread, &storage))) { + jvmti->GetThreadLocalStorage(testedThread, &storage))) { nsk_jvmti_setFailStatus(); return; } @@ -76,7 +76,7 @@ NSK_DISPLAY0("GetThreadLocalStorage() for current agent thread\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadLocalStorage, jvmti, NULL, &storage))) { + jvmti->GetThreadLocalStorage(NULL, &storage))) { nsk_jvmti_setFailStatus(); return; } @@ -91,7 +91,7 @@ } NSK_DISPLAY0("Delete thread reference\n"); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, testedThread)); + NSK_TRACE(jni->DeleteGlobalRef(testedThread)); } NSK_DISPLAY0("Let debugee to finish\n"); diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTime/gettime001/gettime001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTime/gettime001/gettime001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTime/gettime001/gettime001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -59,7 +59,7 @@ NSK_DISPLAY0("GetTime() for current JVMTI env\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetTime, jvmti, (jlong *)time))) { + jvmti->GetTime((jlong *)time))) { return NSK_FALSE; } NSK_DISPLAY1(" ... got time: %s\n", julong_to_string(*time, buf)); @@ -186,8 +186,7 @@ eventCallbacks.VMInit = callbackVMInit; eventCallbacks.VMDeath = callbackVMDeath; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) { + jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTimerInfo/timerinfo001/timerinfo001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTimerInfo/timerinfo001/timerinfo001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetTimerInfo/timerinfo001/timerinfo001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -59,7 +59,7 @@ NSK_DISPLAY0("GetTimerInfo() for current JVMTI env\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetTimerInfo, jvmti, info))) { + jvmti->GetTimerInfo(info))) { return NSK_FALSE; } NSK_DISPLAY0("Got timer info:\n"); @@ -203,8 +203,7 @@ eventCallbacks.VMInit = callbackVMInit; eventCallbacks.VMDeath = callbackVMDeath; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) { + jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/InterruptThread/intrpthrd001/intrpthrd001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/InterruptThread/intrpthrd001/intrpthrd001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/InterruptThread/intrpthrd001/intrpthrd001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -57,7 +57,7 @@ /* get all live threads */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -70,7 +70,7 @@ /* get thread information */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -89,7 +89,7 @@ /* deallocate threads list */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; return NSK_TRUE; @@ -112,8 +112,7 @@ if (!NSK_VERIFY(runningThread != NULL)) { nsk_jvmti_setFailStatus(); } else { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(InterruptThread, - jvmti, runningThread))) + if (!NSK_JVMTI_VERIFY(jvmti->InterruptThread(runningThread))) nsk_jvmti_setFailStatus(); } @@ -121,8 +120,7 @@ if (!NSK_VERIFY(waitingThread != NULL)) { nsk_jvmti_setFailStatus(); } else { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(InterruptThread, - jvmti, waitingThread))) + if (!NSK_JVMTI_VERIFY(jvmti->InterruptThread(waitingThread))) nsk_jvmti_setFailStatus(); } @@ -130,8 +128,7 @@ if (!NSK_VERIFY(sleepingThread != NULL)) { nsk_jvmti_setFailStatus(); } else { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(InterruptThread, - jvmti, sleepingThread))) + if (!NSK_JVMTI_VERIFY(jvmti->InterruptThread(sleepingThread))) nsk_jvmti_setFailStatus(); } @@ -173,7 +170,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_signal_thread = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) { return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsMethodObsolete/isobsolete001/isobsolete001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsMethodObsolete/isobsolete001/isobsolete001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IsMethodObsolete/isobsolete001/isobsolete001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -60,7 +60,7 @@ NSK_DISPLAY3("Call IsObsolete() for %s method: %p (%s)\n", kind, (void*)method, name); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(IsMethodObsolete, jvmti, method, &obsolete))) { + jvmti->IsMethodObsolete(method, &obsolete))) { nsk_jvmti_setFailStatus(); } NSK_DISPLAY1(" ... got obsolete: %d\n", (int)obsolete); @@ -83,8 +83,7 @@ NSK_DISPLAY1("Get stack frames for thread: %p\n", (void*)thread); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB6(GetStackTrace, jvmti, thread, 0, MAX_STACK_DEPTH, - frameStack, &frameCount))) { + jvmti->GetStackTrace(thread, 0, MAX_STACK_DEPTH, frameStack, &frameCount))) { nsk_jvmti_setFailStatus(); return; } @@ -104,8 +103,7 @@ NSK_DISPLAY1(" frame #%i:\n", i); NSK_DISPLAY1(" methodID: %p\n", (void*)frameStack[i].method); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5(GetMethodName, jvmti, frameStack[i].method, - &name, &signature, &generic))) { + jvmti->GetMethodName(frameStack[i].method, &name, &signature, &generic))) { nsk_jvmti_setFailStatus(); continue; } @@ -122,15 +120,15 @@ } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)name))) { + jvmti->Deallocate((unsigned char*)name))) { nsk_jvmti_setFailStatus(); } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)signature))) { + jvmti->Deallocate((unsigned char*)signature))) { nsk_jvmti_setFailStatus(); } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)generic))) { + jvmti->Deallocate((unsigned char*)generic))) { nsk_jvmti_setFailStatus(); } } @@ -156,7 +154,7 @@ NSK_DISPLAY1("Redefine class: %s\n", className); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &classDef))) { + jvmti->RedefineClasses(1, &classDef))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -176,7 +174,7 @@ NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -184,8 +182,7 @@ NSK_DISPLAY1("Find static field: %s\n", CLASSFILE_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, debugeeClass, - CLASSFILE_FIELD_NAME, CLASSFILE_FIELD_SIG)) != NULL)) { + jni->GetStaticFieldID(debugeeClass, CLASSFILE_FIELD_NAME, CLASSFILE_FIELD_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -193,15 +190,14 @@ NSK_DISPLAY1("Get classfile bytes array from static field: %s\n", CLASSFILE_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (array = (jbyteArray) - NSK_CPP_STUB3(GetStaticObjectField, jni, debugeeClass, - fieldID)) != NULL)) { + jni->GetStaticObjectField(debugeeClass, fieldID)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } NSK_DISPLAY1(" ... got array object: %p\n", (void*)array); if (!NSK_JNI_VERIFY(jni, (*size = - NSK_CPP_STUB2(GetArrayLength, jni, array)) > 0)) { + jni->GetArrayLength(array)) > 0)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -210,8 +206,7 @@ { jboolean isCopy; if (!NSK_JNI_VERIFY(jni, (elements = - NSK_CPP_STUB3(GetByteArrayElements, jni, array, - &isCopy)) != NULL)) { + jni->GetByteArrayElements(array, &isCopy)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -219,7 +214,7 @@ NSK_DISPLAY1(" ... got elements list: %p\n", (void*)elements); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, *size, bytes))) { + jvmti->Allocate(*size, bytes))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -231,7 +226,7 @@ NSK_DISPLAY1(" ... copied bytecode: %d bytes\n", (int)*size); NSK_DISPLAY1("Release elements list: %p\n", (void*)elements); - NSK_TRACE(NSK_CPP_STUB4(ReleaseByteArrayElements, jni, array, elements, JNI_ABORT)); + NSK_TRACE(jni->ReleaseByteArrayElements(array, elements, JNI_ABORT)); NSK_DISPLAY0(" ... released\n"); return NSK_TRUE; @@ -264,7 +259,7 @@ { NSK_DISPLAY1("Find tested class: %s\n", TESTED_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (testedClass = - NSK_CPP_STUB2(FindClass, jni, TESTED_CLASS_NAME)) != NULL)) { + jni->FindClass(TESTED_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -272,7 +267,7 @@ NSK_DISPLAY1("Make global reference for class object: %p\n", (void*)testedClass); if (!NSK_JNI_VERIFY(jni, (testedClass = (jclass) - NSK_CPP_STUB2(NewGlobalRef, jni, testedClass)) != NULL)) { + jni->NewGlobalRef(testedClass)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -280,8 +275,7 @@ NSK_DISPLAY1("Get static methodID: %s\n", STATIC_METHOD_NAME); if (!NSK_JNI_VERIFY(jni, (staticMethodID = - NSK_CPP_STUB4(GetStaticMethodID, jni, testedClass, - STATIC_METHOD_NAME, STATIC_METHOD_SIG)) != NULL)) { + jni->GetStaticMethodID(testedClass, STATIC_METHOD_NAME, STATIC_METHOD_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -289,8 +283,7 @@ NSK_DISPLAY1("Get instance methodID: %s\n", INSTANCE_METHOD_NAME); if (!NSK_JNI_VERIFY(jni, (instanceMethodID = - NSK_CPP_STUB4(GetMethodID, jni, testedClass, - INSTANCE_METHOD_NAME, INSTANCE_METHOD_SIG)) != NULL)) { + jni->GetMethodID(testedClass, INSTANCE_METHOD_NAME, INSTANCE_METHOD_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -342,15 +335,15 @@ { NSK_DISPLAY1("Deallocate classfile bytes array: %p\n", (void*)classfileBytes); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, classfileBytes))) { + jvmti->Deallocate(classfileBytes))) { nsk_jvmti_setFailStatus(); } NSK_DISPLAY1("Delete global eference to thread: %p\n", (void*)testedThread); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, testedThread)); + NSK_TRACE(jni->DeleteGlobalRef(testedThread)); NSK_DISPLAY1("Delete global reference to class: %p\n", (void*)testedClass); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, testedClass)); + NSK_TRACE(jni->DeleteGlobalRef(testedClass)); } } @@ -394,7 +387,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_redefine_classes = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap001/iterheap001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap001/iterheap001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap001/iterheap001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -92,14 +92,14 @@ tag++; if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB3(GetObjectField, jni, firstObject, firstField)) != NULL)) { + jni->GetObjectField(firstObject, firstField)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } objectDescList[count].tag = objTag; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetTag, jvmti, obj, objTag))) { + jvmti->SetTag(obj, objTag))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -111,7 +111,7 @@ return NSK_FALSE; } - NSK_TRACE(NSK_CPP_STUB2(DeleteLocalRef, jni, obj)); + NSK_TRACE(jni->DeleteLocalRef(obj)); return success; } @@ -134,9 +134,7 @@ *objectsCount = 2 * chainLength; NSK_DISPLAY1("Allocate memory for objects list: %d objects\n", *objectsCount); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, (*objectsCount * sizeof(ObjectDesc)), - (unsigned char**)objectDescList))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate((*objectsCount * sizeof(ObjectDesc)), (unsigned char**)objectDescList))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -153,7 +151,7 @@ NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -161,7 +159,7 @@ NSK_DISPLAY1("Find root object class: %s\n", ROOT_OBJECT_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (rootObjectClass = - NSK_CPP_STUB2(FindClass, jni, ROOT_OBJECT_CLASS_NAME)) != NULL)) { + jni->FindClass(ROOT_OBJECT_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -169,7 +167,7 @@ NSK_DISPLAY1("Find chain object class: %s\n", CHAIN_OBJECT_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (chainObjectClass = - NSK_CPP_STUB2(FindClass, jni, CHAIN_OBJECT_CLASS_NAME)) != NULL)) { + jni->FindClass(CHAIN_OBJECT_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -177,8 +175,7 @@ NSK_DISPLAY1("Find static field in debugee class: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (objectField = - NSK_CPP_STUB4(GetStaticFieldID, jni, debugeeClass, - OBJECT_FIELD_NAME, ROOT_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetStaticFieldID(debugeeClass, OBJECT_FIELD_NAME, ROOT_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -186,8 +183,7 @@ NSK_DISPLAY1("Find instance field in root object class: %s\n", REACHABLE_CHAIN_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (reachableChainField = - NSK_CPP_STUB4(GetFieldID, jni, rootObjectClass, - REACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(rootObjectClass, REACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -195,8 +191,7 @@ NSK_DISPLAY1("Find instance field in root object class: %s\n", UNREACHABLE_CHAIN_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (unreachableChainField = - NSK_CPP_STUB4(GetFieldID, jni, rootObjectClass, - UNREACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(rootObjectClass, UNREACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -204,8 +199,7 @@ NSK_DISPLAY1("Find instance field in chain object class: %s\n", TAIL_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (tailField = - NSK_CPP_STUB4(GetFieldID, jni, chainObjectClass, - TAIL_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(chainObjectClass, TAIL_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -213,8 +207,7 @@ NSK_DISPLAY1("Get root object from static field: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (rootObject = - NSK_CPP_STUB3(GetStaticObjectField, jni, debugeeClass, - objectField)) != NULL)) { + jni->GetStaticObjectField(debugeeClass, objectField)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -312,7 +305,7 @@ if (objectDescList != NULL) { NSK_DISPLAY1("Deallocate objects list: 0x%p\n", (void*)objectDescList); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)objectDescList))) { + jvmti->Deallocate((unsigned char*)objectDescList))) { nsk_jvmti_setFailStatus(); } } @@ -430,9 +423,7 @@ NSK_DISPLAY0(">>> Iterate over all object in heap with filter JVMTI_HEAP_OBJECT_EITHER\n"); { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IterateOverHeap, jvmti, - JVMTI_HEAP_OBJECT_EITHER, heapObjectCallback, - &fakeUserData))) { + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_EITHER, heapObjectCallback, &fakeUserData))) { nsk_jvmti_setFailStatus(); return; } @@ -542,7 +533,7 @@ caps.can_tag_objects = 1; caps.can_generate_object_free_events = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -552,8 +543,7 @@ memset(&eventCallbacks, 0, sizeof(eventCallbacks)); eventCallbacks.ObjectFree = callbackObjectFree; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) + jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap002/iterheap002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap002/iterheap002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap002/iterheap002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -92,14 +92,14 @@ tag++; if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB3(GetObjectField, jni, firstObject, firstField)) != NULL)) { + jni->GetObjectField(firstObject, firstField)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } objectDescList[count].tag = objTag; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetTag, jvmti, obj, objTag))) { + jvmti->SetTag(obj, objTag))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -111,7 +111,7 @@ return NSK_FALSE; } - NSK_TRACE(NSK_CPP_STUB2(DeleteLocalRef, jni, obj)); + NSK_TRACE(jni->DeleteLocalRef(obj)); return success; } @@ -134,9 +134,7 @@ *objectsCount = 2 * chainLength; NSK_DISPLAY1("Allocate memory for objects list: %d objects\n", *objectsCount); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, (*objectsCount * sizeof(ObjectDesc)), - (unsigned char**)objectDescList))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate((*objectsCount * sizeof(ObjectDesc)), (unsigned char**)objectDescList))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -153,7 +151,7 @@ NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -161,7 +159,7 @@ NSK_DISPLAY1("Find root object class: %s\n", ROOT_OBJECT_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (rootObjectClass = - NSK_CPP_STUB2(FindClass, jni, ROOT_OBJECT_CLASS_NAME)) != NULL)) { + jni->FindClass(ROOT_OBJECT_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -169,7 +167,7 @@ NSK_DISPLAY1("Find chain object class: %s\n", CHAIN_OBJECT_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (chainObjectClass = - NSK_CPP_STUB2(FindClass, jni, CHAIN_OBJECT_CLASS_NAME)) != NULL)) { + jni->FindClass(CHAIN_OBJECT_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -177,8 +175,7 @@ NSK_DISPLAY1("Find static field in debugee class: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (objectField = - NSK_CPP_STUB4(GetStaticFieldID, jni, debugeeClass, - OBJECT_FIELD_NAME, ROOT_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetStaticFieldID(debugeeClass, OBJECT_FIELD_NAME, ROOT_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -186,8 +183,7 @@ NSK_DISPLAY1("Find instance field in root object class: %s\n", REACHABLE_CHAIN_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (reachableChainField = - NSK_CPP_STUB4(GetFieldID, jni, rootObjectClass, - REACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(rootObjectClass, REACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -195,8 +191,7 @@ NSK_DISPLAY1("Find instance field in root object class: %s\n", UNREACHABLE_CHAIN_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (unreachableChainField = - NSK_CPP_STUB4(GetFieldID, jni, rootObjectClass, - UNREACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(rootObjectClass, UNREACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -204,8 +199,7 @@ NSK_DISPLAY1("Find instance field in chain object class: %s\n", TAIL_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (tailField = - NSK_CPP_STUB4(GetFieldID, jni, chainObjectClass, - TAIL_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(chainObjectClass, TAIL_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -213,8 +207,7 @@ NSK_DISPLAY1("Get root object from static field: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (rootObject = - NSK_CPP_STUB3(GetStaticObjectField, jni, debugeeClass, - objectField)) != NULL)) { + jni->GetStaticObjectField(debugeeClass, objectField)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -312,7 +305,7 @@ if (objectDescList != NULL) { NSK_DISPLAY1("Deallocate objects list: 0x%p\n", (void*)objectDescList); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)objectDescList))) { + jvmti->Deallocate((unsigned char*)objectDescList))) { nsk_jvmti_setFailStatus(); } } @@ -438,9 +431,7 @@ NSK_DISPLAY0(">>> Iterate over all object in heap with filter JVMTI_HEAP_OBJECT_TAGGED\n"); { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IterateOverHeap, jvmti, - JVMTI_HEAP_OBJECT_TAGGED, heapObjectCallback, - &fakeUserData))) { + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, heapObjectCallback, &fakeUserData))) { nsk_jvmti_setFailStatus(); return; } @@ -550,7 +541,7 @@ caps.can_tag_objects = 1; caps.can_generate_object_free_events = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -560,8 +551,7 @@ memset(&eventCallbacks, 0, sizeof(eventCallbacks)); eventCallbacks.ObjectFree = callbackObjectFree; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) + jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap003/iterheap003.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap003/iterheap003.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap003/iterheap003.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -92,14 +92,14 @@ tag++; if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB3(GetObjectField, jni, firstObject, firstField)) != NULL)) { + jni->GetObjectField(firstObject, firstField)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } objectDescList[count].tag = objTag; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetTag, jvmti, obj, objTag))) { + jvmti->SetTag(obj, objTag))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -111,7 +111,7 @@ return NSK_FALSE; } - NSK_TRACE(NSK_CPP_STUB2(DeleteLocalRef, jni, obj)); + NSK_TRACE(jni->DeleteLocalRef(obj)); return success; } @@ -134,9 +134,7 @@ *objectsCount = 2 * chainLength; NSK_DISPLAY1("Allocate memory for objects list: %d objects\n", *objectsCount); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, (*objectsCount * sizeof(ObjectDesc)), - (unsigned char**)objectDescList))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate((*objectsCount * sizeof(ObjectDesc)), (unsigned char**)objectDescList))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -153,7 +151,7 @@ NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -161,7 +159,7 @@ NSK_DISPLAY1("Find root object class: %s\n", ROOT_OBJECT_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (rootObjectClass = - NSK_CPP_STUB2(FindClass, jni, ROOT_OBJECT_CLASS_NAME)) != NULL)) { + jni->FindClass(ROOT_OBJECT_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -169,7 +167,7 @@ NSK_DISPLAY1("Find chain object class: %s\n", CHAIN_OBJECT_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (chainObjectClass = - NSK_CPP_STUB2(FindClass, jni, CHAIN_OBJECT_CLASS_NAME)) != NULL)) { + jni->FindClass(CHAIN_OBJECT_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -177,8 +175,7 @@ NSK_DISPLAY1("Find static field in debugee class: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (objectField = - NSK_CPP_STUB4(GetStaticFieldID, jni, debugeeClass, - OBJECT_FIELD_NAME, ROOT_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetStaticFieldID(debugeeClass, OBJECT_FIELD_NAME, ROOT_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -186,8 +183,7 @@ NSK_DISPLAY1("Find instance field in root object class: %s\n", REACHABLE_CHAIN_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (reachableChainField = - NSK_CPP_STUB4(GetFieldID, jni, rootObjectClass, - REACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(rootObjectClass, REACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -195,8 +191,7 @@ NSK_DISPLAY1("Find instance field in root object class: %s\n", UNREACHABLE_CHAIN_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (unreachableChainField = - NSK_CPP_STUB4(GetFieldID, jni, rootObjectClass, - UNREACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(rootObjectClass, UNREACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -204,8 +199,7 @@ NSK_DISPLAY1("Find instance field in chain object class: %s\n", TAIL_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (tailField = - NSK_CPP_STUB4(GetFieldID, jni, chainObjectClass, - TAIL_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(chainObjectClass, TAIL_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -213,8 +207,7 @@ NSK_DISPLAY1("Get root object from static field: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (rootObject = - NSK_CPP_STUB3(GetStaticObjectField, jni, debugeeClass, - objectField)) != NULL)) { + jni->GetStaticObjectField(debugeeClass, objectField)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -312,7 +305,7 @@ if (objectDescList != NULL) { NSK_DISPLAY1("Deallocate objects list: 0x%p\n", (void*)objectDescList); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)objectDescList))) { + jvmti->Deallocate((unsigned char*)objectDescList))) { nsk_jvmti_setFailStatus(); } } @@ -439,9 +432,7 @@ NSK_DISPLAY0(">>> Iterate over all object in heap with filter JVMTI_HEAP_OBJECT_UNTAGGED\n"); { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IterateOverHeap, jvmti, - JVMTI_HEAP_OBJECT_UNTAGGED, heapObjectCallback, - &fakeUserData))) { + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_UNTAGGED, heapObjectCallback, &fakeUserData))) { nsk_jvmti_setFailStatus(); return; } @@ -551,7 +542,7 @@ caps.can_tag_objects = 1; caps.can_generate_object_free_events = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -561,8 +552,7 @@ memset(&eventCallbacks, 0, sizeof(eventCallbacks)); eventCallbacks.ObjectFree = callbackObjectFree; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) + jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap004/iterheap004.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap004/iterheap004.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap004/iterheap004.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -65,9 +65,7 @@ *tag_ptr = (jlong)++objectDescCount; /* Allocate memory for next list element*/ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, (sizeof(ObjectDesc)), - (unsigned char**)&objectDescBuf))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate((sizeof(ObjectDesc)), (unsigned char**)&objectDescBuf))) { nsk_jvmti_setFailStatus(); callbackAborted = 1; NSK_COMPLAIN0("heapObjectCallbackForFirstIteration: Allocation failed. Iteration aborted.\n"); @@ -97,7 +95,7 @@ /* Deallocate memory of list element*/ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)objectDescArr[ind]))) { + jvmti->Deallocate((unsigned char*)objectDescArr[ind]))) { nsk_jvmti_setFailStatus(); callbackAborted = 1; NSK_COMPLAIN0("heapObjectCallbackForSecondIteration: Deallocation failed. Iteration aborted.\n"); @@ -133,9 +131,7 @@ NSK_DISPLAY0("Calling IterateOverHeap with filter JVMTI_HEAP_OBJECT_UNTAGGED\n"); { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IterateOverHeap, jvmti, - JVMTI_HEAP_OBJECT_UNTAGGED, heapObjectCallbackForFirstIteration, - &fakeUserData))) { + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_UNTAGGED, heapObjectCallbackForFirstIteration, &fakeUserData))) { nsk_jvmti_setFailStatus(); break; } @@ -151,17 +147,13 @@ } /* Allocate memory for array to save pointers to ObjectDescList elements */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, (objectDescCount * sizeof(ObjectDesc*)), - (unsigned char**)&objectDescArr))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate((objectDescCount * sizeof(ObjectDesc*)), (unsigned char**)&objectDescArr))) { nsk_jvmti_setFailStatus(); break; } /* Allocate memory for flags array and fill with false values */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, (objectDescCount * sizeof(unsigned char)), - &deallocatedFlagsArr))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate((objectDescCount * sizeof(unsigned char)), &deallocatedFlagsArr))) { nsk_jvmti_setFailStatus(); break; } @@ -186,9 +178,7 @@ NSK_DISPLAY0("Calling IterateOverHeap with filter JVMTI_HEAP_OBJECT_TAGGED\n"); { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IterateOverHeap, jvmti, - JVMTI_HEAP_OBJECT_TAGGED, heapObjectCallbackForSecondIteration, - &fakeUserData))) { + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, heapObjectCallbackForSecondIteration, &fakeUserData))) { nsk_jvmti_setFailStatus(); } } @@ -202,7 +192,7 @@ for (ind = 0; ind < objectDescCount; ind++) { if (!deallocatedFlagsArr[ind]) { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)objectDescArr[ind]))) { + jvmti->Deallocate((unsigned char*)objectDescArr[ind]))) { NSK_COMPLAIN1("Unable to deallocate descriptor. Index = %d \n", ind); nsk_jvmti_setFailStatus(); return; @@ -211,12 +201,12 @@ } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)objectDescArr))) { + jvmti->Deallocate((unsigned char*)objectDescArr))) { nsk_jvmti_setFailStatus(); } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)deallocatedFlagsArr))) { + jvmti->Deallocate((unsigned char*)deallocatedFlagsArr))) { nsk_jvmti_setFailStatus(); } @@ -258,12 +248,11 @@ memset(&caps, 0, sizeof(caps)); caps.can_tag_objects = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.can_tag_objects) diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap005/iterheap005.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap005/iterheap005.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap005/iterheap005.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -51,54 +51,54 @@ objCounter++; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(CreateRawMonitor, st_jvmti, name, &monitor_ptr))) { + st_jvmti->CreateRawMonitor(name, &monitor_ptr))) { nsk_jvmti_setFailStatus(); return JVMTI_ITERATION_ABORT; } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(RawMonitorEnter, st_jvmti, monitor_ptr))) { + st_jvmti->RawMonitorEnter(monitor_ptr))) { nsk_jvmti_setFailStatus(); return JVMTI_ITERATION_ABORT; } /* Enter second time */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(RawMonitorEnter, st_jvmti, monitor_ptr))) { + st_jvmti->RawMonitorEnter(monitor_ptr))) { nsk_jvmti_setFailStatus(); return JVMTI_ITERATION_ABORT; } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(RawMonitorWait, st_jvmti, monitor_ptr, (jlong)100))) { + st_jvmti->RawMonitorWait(monitor_ptr, (jlong)100))) { nsk_jvmti_setFailStatus(); } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(RawMonitorNotify, st_jvmti, monitor_ptr))) { + st_jvmti->RawMonitorNotify(monitor_ptr))) { nsk_jvmti_setFailStatus(); } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(RawMonitorNotifyAll, st_jvmti, monitor_ptr))) { + st_jvmti->RawMonitorNotifyAll(monitor_ptr))) { nsk_jvmti_setFailStatus(); } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(RawMonitorExit, st_jvmti, monitor_ptr))) { + st_jvmti->RawMonitorExit(monitor_ptr))) { nsk_jvmti_setFailStatus(); return JVMTI_ITERATION_ABORT; } /* Exit second time */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(RawMonitorExit, st_jvmti, monitor_ptr))) { + st_jvmti->RawMonitorExit(monitor_ptr))) { nsk_jvmti_setFailStatus(); return JVMTI_ITERATION_ABORT; } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(DestroyRawMonitor, st_jvmti, monitor_ptr))) { + st_jvmti->DestroyRawMonitor(monitor_ptr))) { nsk_jvmti_setFailStatus(); } @@ -119,11 +119,7 @@ NSK_DISPLAY0("Calling IterateOverHeap with filter JVMTI_HEAP_OBJECT_EITHER\n"); { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IterateOverHeap, - jvmti, - JVMTI_HEAP_OBJECT_EITHER, - heapObjectCallback, - &fakeUserData))) { + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_EITHER, heapObjectCallback, &fakeUserData))) { nsk_jvmti_setFailStatus(); } } @@ -174,7 +170,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_tag_objects = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap006/iterheap006.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap006/iterheap006.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap006/iterheap006.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -46,12 +46,12 @@ void* storage_data) { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(SetEnvironmentLocalStorage, st_jvmti, storage_data ))) { + st_jvmti->SetEnvironmentLocalStorage(storage_data ))) { nsk_jvmti_setFailStatus(); } if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetEnvironmentLocalStorage, st_jvmti, &storage_ptr))) { + st_jvmti->GetEnvironmentLocalStorage(&storage_ptr))) { nsk_jvmti_setFailStatus(); } @@ -73,11 +73,7 @@ NSK_DISPLAY0("Calling IterateOverHeap with filter JVMTI_HEAP_OBJECT_EITHER\n"); { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IterateOverHeap, - jvmti, - JVMTI_HEAP_OBJECT_EITHER, - heapObjectCallback, - (void *)storage_data))) { + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_EITHER, heapObjectCallback, (void *)storage_data))) { nsk_jvmti_setFailStatus(); } } @@ -135,7 +131,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_tag_objects = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap007/iterheap007.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap007/iterheap007.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverHeap/iterheap007/iterheap007.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -46,7 +46,7 @@ void* user_data) { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, st_jvmti, &timer_info1 ))) { + st_jvmti->GetCurrentThreadCpuTimerInfo(&timer_info1 ))) { nsk_jvmti_setFailStatus(); } /* Check the returned jvmtiTimerInfo structure */ @@ -65,13 +65,13 @@ /* ---------------------------------------------------------------------- */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetCurrentThreadCpuTime, st_jvmti, &nanos ))) { + st_jvmti->GetCurrentThreadCpuTime(&nanos ))) { nsk_jvmti_setFailStatus(); } /* ---------------------------------------------------------------------- */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetTimerInfo, st_jvmti, &timer_info2 ))) { + st_jvmti->GetTimerInfo(&timer_info2 ))) { nsk_jvmti_setFailStatus(); } /* Check the returned jvmtiTimerInfo structure */ @@ -91,7 +91,7 @@ nanos = 0; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetTime, st_jvmti, &nanos ))) { + st_jvmti->GetTime(&nanos ))) { nsk_jvmti_setFailStatus(); } @@ -113,11 +113,7 @@ NSK_DISPLAY0("Calling IterateOverHeap with filter JVMTI_HEAP_OBJECT_EITHER\n"); { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IterateOverHeap, - jvmti, - JVMTI_HEAP_OBJECT_EITHER, - heapObjectCallback, - (void *)user_data))) { + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_EITHER, heapObjectCallback, (void *)user_data))) { nsk_jvmti_setFailStatus(); } } @@ -164,7 +160,7 @@ caps.can_get_current_thread_cpu_time = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls001/iterinstcls001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls001/iterinstcls001.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls001/iterinstcls001.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -92,14 +92,14 @@ tag++; if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB3(GetObjectField, jni, firstObject, firstField)) != NULL)) { + jni->GetObjectField(firstObject, firstField)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } objectDescList[count].tag = objTag; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetTag, jvmti, obj, objTag))) { + jvmti->SetTag(obj, objTag))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -111,7 +111,7 @@ return NSK_FALSE; } - NSK_TRACE(NSK_CPP_STUB2(DeleteLocalRef, jni, obj)); + NSK_TRACE(jni->DeleteLocalRef(obj)); return success; } @@ -136,9 +136,7 @@ *objectsCount = 2 * chainLength; NSK_DISPLAY1("Allocate memory for objects list: %d objects\n", *objectsCount); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, (*objectsCount * sizeof(ObjectDesc)), - (unsigned char**)objectDescList))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate((*objectsCount * sizeof(ObjectDesc)), (unsigned char**)objectDescList))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -155,7 +153,7 @@ NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -163,7 +161,7 @@ NSK_DISPLAY1("Find root object class: %s\n", ROOT_OBJECT_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (rootObjectClass = - NSK_CPP_STUB2(FindClass, jni, ROOT_OBJECT_CLASS_NAME)) != NULL)) { + jni->FindClass(ROOT_OBJECT_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -171,7 +169,7 @@ NSK_DISPLAY1("Find chain object class: %s\n", CHAIN_OBJECT_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (chainObjectClass = - NSK_CPP_STUB2(FindClass, jni, CHAIN_OBJECT_CLASS_NAME)) != NULL)) { + jni->FindClass(CHAIN_OBJECT_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -179,7 +177,7 @@ NSK_DISPLAY1("Create global ref to tested class: 0x%p\n", chainObjectClass); if (!NSK_JNI_VERIFY(jni, (*testedClass = (jclass) - NSK_CPP_STUB2(NewGlobalRef, jni, chainObjectClass)) != NULL)) { + jni->NewGlobalRef(chainObjectClass)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -187,8 +185,7 @@ NSK_DISPLAY1("Find static field in debugee class: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (objectField = - NSK_CPP_STUB4(GetStaticFieldID, jni, debugeeClass, - OBJECT_FIELD_NAME, ROOT_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetStaticFieldID(debugeeClass, OBJECT_FIELD_NAME, ROOT_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -196,8 +193,7 @@ NSK_DISPLAY1("Find instance field in root object class: %s\n", REACHABLE_CHAIN_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (reachableChainField = - NSK_CPP_STUB4(GetFieldID, jni, rootObjectClass, - REACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(rootObjectClass, REACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -205,8 +201,7 @@ NSK_DISPLAY1("Find instance field in root object class: %s\n", UNREACHABLE_CHAIN_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (unreachableChainField = - NSK_CPP_STUB4(GetFieldID, jni, rootObjectClass, - UNREACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(rootObjectClass, UNREACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -214,8 +209,7 @@ NSK_DISPLAY1("Find instance field in chain object class: %s\n", TAIL_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (tailField = - NSK_CPP_STUB4(GetFieldID, jni, chainObjectClass, - TAIL_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(chainObjectClass, TAIL_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -223,8 +217,7 @@ NSK_DISPLAY1("Get root object from static field: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (rootObject = - NSK_CPP_STUB3(GetStaticObjectField, jni, debugeeClass, - objectField)) != NULL)) { + jni->GetStaticObjectField(debugeeClass, objectField)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -234,7 +227,7 @@ NSK_DISPLAY0(" tested class object:\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetTag, jvmti, *testedClass, testedClassTag))) { + jvmti->SetTag(*testedClass, testedClassTag))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -329,13 +322,13 @@ ObjectDesc* objectDescList, jclass testedClass) { if (testedClass != NULL) { NSK_DISPLAY1("Release object reference to tested class: 0x%p\n", testedClass); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, testedClass)); + NSK_TRACE(jni->DeleteGlobalRef(testedClass)); } if (objectDescList != NULL) { NSK_DISPLAY1("Deallocate objects list: 0x%p\n", (void*)objectDescList); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)objectDescList))) { + jvmti->Deallocate((unsigned char*)objectDescList))) { nsk_jvmti_setFailStatus(); } } @@ -450,9 +443,7 @@ NSK_DISPLAY0(">>> Iterate over instances of tested class with filter JVMTI_HEAP_OBJECT_EITHER\n"); { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, - testedClass, JVMTI_HEAP_OBJECT_EITHER, - heapObjectCallback, &fakeUserData))) { + jvmti->IterateOverInstancesOfClass(testedClass, JVMTI_HEAP_OBJECT_EITHER, heapObjectCallback, &fakeUserData))) { nsk_jvmti_setFailStatus(); return; } @@ -561,7 +552,7 @@ caps.can_tag_objects = 1; caps.can_generate_object_free_events = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -571,8 +562,7 @@ memset(&eventCallbacks, 0, sizeof(eventCallbacks)); eventCallbacks.ObjectFree = callbackObjectFree; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) + jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls002/iterinstcls002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls002/iterinstcls002.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls002/iterinstcls002.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -92,14 +92,14 @@ tag++; if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB3(GetObjectField, jni, firstObject, firstField)) != NULL)) { + jni->GetObjectField(firstObject, firstField)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } objectDescList[count].tag = objTag; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetTag, jvmti, obj, objTag))) { + jvmti->SetTag(obj, objTag))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -111,7 +111,7 @@ return NSK_FALSE; } - NSK_TRACE(NSK_CPP_STUB2(DeleteLocalRef, jni, obj)); + NSK_TRACE(jni->DeleteLocalRef(obj)); return success; } @@ -136,9 +136,7 @@ *objectsCount = 2 * chainLength; NSK_DISPLAY1("Allocate memory for objects list: %d objects\n", *objectsCount); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, (*objectsCount * sizeof(ObjectDesc)), - (unsigned char**)objectDescList))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate((*objectsCount * sizeof(ObjectDesc)), (unsigned char**)objectDescList))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -155,7 +153,7 @@ NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -163,7 +161,7 @@ NSK_DISPLAY1("Find root object class: %s\n", ROOT_OBJECT_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (rootObjectClass = - NSK_CPP_STUB2(FindClass, jni, ROOT_OBJECT_CLASS_NAME)) != NULL)) { + jni->FindClass(ROOT_OBJECT_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -171,7 +169,7 @@ NSK_DISPLAY1("Find chain object class: %s\n", CHAIN_OBJECT_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (chainObjectClass = - NSK_CPP_STUB2(FindClass, jni, CHAIN_OBJECT_CLASS_NAME)) != NULL)) { + jni->FindClass(CHAIN_OBJECT_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -179,7 +177,7 @@ NSK_DISPLAY1("Create global ref to tested class: 0x%p\n", chainObjectClass); if (!NSK_JNI_VERIFY(jni, (*testedClass = (jclass) - NSK_CPP_STUB2(NewGlobalRef, jni, chainObjectClass)) != NULL)) { + jni->NewGlobalRef(chainObjectClass)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -187,8 +185,7 @@ NSK_DISPLAY1("Find static field in debugee class: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (objectField = - NSK_CPP_STUB4(GetStaticFieldID, jni, debugeeClass, - OBJECT_FIELD_NAME, ROOT_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetStaticFieldID(debugeeClass, OBJECT_FIELD_NAME, ROOT_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -196,8 +193,7 @@ NSK_DISPLAY1("Find instance field in root object class: %s\n", REACHABLE_CHAIN_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (reachableChainField = - NSK_CPP_STUB4(GetFieldID, jni, rootObjectClass, - REACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(rootObjectClass, REACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -205,8 +201,7 @@ NSK_DISPLAY1("Find instance field in root object class: %s\n", UNREACHABLE_CHAIN_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (unreachableChainField = - NSK_CPP_STUB4(GetFieldID, jni, rootObjectClass, - UNREACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(rootObjectClass, UNREACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -214,8 +209,7 @@ NSK_DISPLAY1("Find instance field in chain object class: %s\n", TAIL_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (tailField = - NSK_CPP_STUB4(GetFieldID, jni, chainObjectClass, - TAIL_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(chainObjectClass, TAIL_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -223,8 +217,7 @@ NSK_DISPLAY1("Get root object from static field: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (rootObject = - NSK_CPP_STUB3(GetStaticObjectField, jni, debugeeClass, - objectField)) != NULL)) { + jni->GetStaticObjectField(debugeeClass, objectField)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -234,7 +227,7 @@ NSK_DISPLAY0(" tested class object:\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetTag, jvmti, *testedClass, testedClassTag))) { + jvmti->SetTag(*testedClass, testedClassTag))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -329,13 +322,13 @@ ObjectDesc* objectDescList, jclass testedClass) { if (testedClass != NULL) { NSK_DISPLAY1("Release object reference to tested class: 0x%p\n", testedClass); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, testedClass)); + NSK_TRACE(jni->DeleteGlobalRef(testedClass)); } if (objectDescList != NULL) { NSK_DISPLAY1("Deallocate objects list: 0x%p\n", (void*)objectDescList); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)objectDescList))) { + jvmti->Deallocate((unsigned char*)objectDescList))) { nsk_jvmti_setFailStatus(); } } @@ -458,9 +451,7 @@ NSK_DISPLAY0(">>> Iterate over instances of tested class with filter JVMTI_HEAP_OBJECT_TAGGED\n"); { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, - testedClass, JVMTI_HEAP_OBJECT_TAGGED, - heapObjectCallback, &fakeUserData))) { + jvmti->IterateOverInstancesOfClass(testedClass, JVMTI_HEAP_OBJECT_TAGGED, heapObjectCallback, &fakeUserData))) { nsk_jvmti_setFailStatus(); return; } @@ -569,7 +560,7 @@ caps.can_tag_objects = 1; caps.can_generate_object_free_events = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -579,8 +570,7 @@ memset(&eventCallbacks, 0, sizeof(eventCallbacks)); eventCallbacks.ObjectFree = callbackObjectFree; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) + jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls003/iterinstcls003.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls003/iterinstcls003.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls003/iterinstcls003.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -92,14 +92,14 @@ tag++; if (!NSK_JNI_VERIFY(jni, (obj = - NSK_CPP_STUB3(GetObjectField, jni, firstObject, firstField)) != NULL)) { + jni->GetObjectField(firstObject, firstField)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } objectDescList[count].tag = objTag; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetTag, jvmti, obj, objTag))) { + jvmti->SetTag(obj, objTag))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -111,7 +111,7 @@ return NSK_FALSE; } - NSK_TRACE(NSK_CPP_STUB2(DeleteLocalRef, jni, obj)); + NSK_TRACE(jni->DeleteLocalRef(obj)); return success; } @@ -136,9 +136,7 @@ *objectsCount = 2 * chainLength; NSK_DISPLAY1("Allocate memory for objects list: %d objects\n", *objectsCount); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti, (*objectsCount * sizeof(ObjectDesc)), - (unsigned char**)objectDescList))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate((*objectsCount * sizeof(ObjectDesc)), (unsigned char**)objectDescList))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -155,7 +153,7 @@ NSK_DISPLAY1("Find debugee class: %s\n", DEBUGEE_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (debugeeClass = - NSK_CPP_STUB2(FindClass, jni, DEBUGEE_CLASS_NAME)) != NULL)) { + jni->FindClass(DEBUGEE_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -163,7 +161,7 @@ NSK_DISPLAY1("Find root object class: %s\n", ROOT_OBJECT_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (rootObjectClass = - NSK_CPP_STUB2(FindClass, jni, ROOT_OBJECT_CLASS_NAME)) != NULL)) { + jni->FindClass(ROOT_OBJECT_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -171,7 +169,7 @@ NSK_DISPLAY1("Find chain object class: %s\n", CHAIN_OBJECT_CLASS_NAME); if (!NSK_JNI_VERIFY(jni, (chainObjectClass = - NSK_CPP_STUB2(FindClass, jni, CHAIN_OBJECT_CLASS_NAME)) != NULL)) { + jni->FindClass(CHAIN_OBJECT_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -179,7 +177,7 @@ NSK_DISPLAY1("Create global ref to tested class: 0x%p\n", chainObjectClass); if (!NSK_JNI_VERIFY(jni, (*testedClass = (jclass) - NSK_CPP_STUB2(NewGlobalRef, jni, chainObjectClass)) != NULL)) { + jni->NewGlobalRef(chainObjectClass)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -187,8 +185,7 @@ NSK_DISPLAY1("Find static field in debugee class: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (objectField = - NSK_CPP_STUB4(GetStaticFieldID, jni, debugeeClass, - OBJECT_FIELD_NAME, ROOT_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetStaticFieldID(debugeeClass, OBJECT_FIELD_NAME, ROOT_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -196,8 +193,7 @@ NSK_DISPLAY1("Find instance field in root object class: %s\n", REACHABLE_CHAIN_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (reachableChainField = - NSK_CPP_STUB4(GetFieldID, jni, rootObjectClass, - REACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(rootObjectClass, REACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -205,8 +201,7 @@ NSK_DISPLAY1("Find instance field in root object class: %s\n", UNREACHABLE_CHAIN_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (unreachableChainField = - NSK_CPP_STUB4(GetFieldID, jni, rootObjectClass, - UNREACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(rootObjectClass, UNREACHABLE_CHAIN_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -214,8 +209,7 @@ NSK_DISPLAY1("Find instance field in chain object class: %s\n", TAIL_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (tailField = - NSK_CPP_STUB4(GetFieldID, jni, chainObjectClass, - TAIL_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { + jni->GetFieldID(chainObjectClass, TAIL_FIELD_NAME, CHAIN_OBJECT_CLASS_SIG)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -223,8 +217,7 @@ NSK_DISPLAY1("Get root object from static field: %s\n", OBJECT_FIELD_NAME); if (!NSK_JNI_VERIFY(jni, (rootObject = - NSK_CPP_STUB3(GetStaticObjectField, jni, debugeeClass, - objectField)) != NULL)) { + jni->GetStaticObjectField(debugeeClass, objectField)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -234,7 +227,7 @@ NSK_DISPLAY0(" tested class object:\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetTag, jvmti, *testedClass, testedClassTag))) { + jvmti->SetTag(*testedClass, testedClassTag))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -329,13 +322,13 @@ ObjectDesc* objectDescList, jclass testedClass) { if (testedClass != NULL) { NSK_DISPLAY1("Release object reference to tested class: 0x%p\n", testedClass); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, testedClass)); + NSK_TRACE(jni->DeleteGlobalRef(testedClass)); } if (objectDescList != NULL) { NSK_DISPLAY1("Deallocate objects list: 0x%p\n", (void*)objectDescList); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)objectDescList))) { + jvmti->Deallocate((unsigned char*)objectDescList))) { nsk_jvmti_setFailStatus(); } } @@ -459,9 +452,7 @@ NSK_DISPLAY0(">>> Iterate over instances of tested class with filter JVMTI_HEAP_OBJECT_UNTAGGED\n"); { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, - testedClass, JVMTI_HEAP_OBJECT_UNTAGGED, - heapObjectCallback, &fakeUserData))) { + jvmti->IterateOverInstancesOfClass(testedClass, JVMTI_HEAP_OBJECT_UNTAGGED, heapObjectCallback, &fakeUserData))) { nsk_jvmti_setFailStatus(); return; } @@ -570,7 +561,7 @@ caps.can_tag_objects = 1; caps.can_generate_object_free_events = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } @@ -580,8 +571,7 @@ memset(&eventCallbacks, 0, sizeof(eventCallbacks)); eventCallbacks.ObjectFree = callbackObjectFree; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, sizeof(eventCallbacks)))) + jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) return JNI_ERR; } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls004/iterinstcls004.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls004/iterinstcls004.cpp Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateOverInstancesOfClass/iterinstcls004/iterinstcls004.cpp Mon Oct 08 18:23:05 2018 -0400 @@ -61,9 +61,7 @@ /* Set tag */ *tag_ptr = objectCount; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, st_jvmti, (sizeof(ObjectDesc)), - (unsigned char**)&objectDescBuf))) { + if (!NSK_JVMTI_VERIFY(st_jvmti->Allocate((sizeof(ObjectDesc)), (unsigned char**)&objectDescBuf))) { nsk_jvmti_setFailStatus(); allocationError = 1; } @@ -83,8 +81,7 @@ objectCount--; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, st_jvmti, (unsigned char*)objectDescBuf))) { + if (!NSK_JVMTI_VERIFY(st_jvmti->Deallocate((unsigned char*)objectDescBuf))) { nsk_jvmti_setFailStatus(); } @@ -115,12 +112,7 @@ NSK_DISPLAY0("Calling IterateOverInstancesOfClass with filter JVMTI_HEAP_OBJECT_UNTAGGED\n"); { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5(IterateOverInstancesOfClass, - jvmti, - debugeeClass, - JVMTI_HEAP_OBJECT_UNTAGGED, - heapObjectCallback1, - &userData))) { + jvmti->IterateOverInstancesOfClass(debugeeClass, JVMTI_HEAP_OBJECT_UNTAGGED, heapObjectCallback1, &userData))) { nsk_jvmti_setFailStatus(); break; } @@ -139,12 +131,7 @@ NSK_DISPLAY0("Calling IterateOverInstancesOfClass with filter JVMTI_HEAP_OBJECT_TAGGED\n"); { if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5(IterateOverInstancesOfClass, - jvmti, - debugeeClass, - JVMTI_HEAP_OBJECT_TAGGED, - heapObjectCallback2, - &userData))) { + jvmti->IterateOverInstancesOfClass(debugeeClass, JVMTI_HEAP_OBJECT_TAGGED, heapObjectCallback2, &userData))) { nsk_jvmti_setFailStatus(); break; } @@ -200,7 +187,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_tag_objects = 1; if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) { + jvmti->AddCapabilities(&caps))) { return JNI_ERR; } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM02/cm02t001.java --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM02/cm02t001.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM02/cm02t001.java Mon Oct 08 18:23:05 2018 -0400 @@ -81,8 +81,8 @@ return status; thread.letFinish(); - // pause to provoke contention - Thread.sleep(100); + // pause to provoke contention on thread.endingMonitor + Thread.sleep(1000); } catch (InterruptedException e) { throw new Failure(e); } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/jdk/ProblemList.txt --- a/test/jdk/ProblemList.txt Mon Oct 08 18:17:37 2018 -0400 +++ b/test/jdk/ProblemList.txt Mon Oct 08 18:23:05 2018 -0400 @@ -565,7 +565,6 @@ java/nio/channels/DatagramChannel/ChangingAddress.java 7141822 macosx-all java/nio/channels/Selector/Wakeup.java 6963118 windows-all -java/nio/channels/Selector/RacyDeregister.java 8201765 windows-all java/nio/file/WatchService/Basic.java 7158947 solaris-all Solaris 11 java/nio/file/WatchService/MayFlies.java 7158947 solaris-all Solaris 11 @@ -867,6 +866,8 @@ javax/rmi/ssl/SSLSocketParametersTest.sh 8162906 generic-all +javax/naming/module/RunBasic.java 8211850 generic-all + ############################################################################ ########################################################################### diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/jdk/java/util/jar/JarFile/Constructor.java --- a/test/jdk/java/util/jar/JarFile/Constructor.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/jdk/java/util/jar/JarFile/Constructor.java Mon Oct 08 18:23:05 2018 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2018 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 @@ -23,7 +23,7 @@ /** * @test - * @bug 4842702 + * @bug 4842702 8211765 * @summary Check that constructors throw specified exceptions * @author Martin Buchholz */ @@ -63,5 +63,13 @@ try { Unreached (new JarFile (new File ("NoSuchJar.jar"))); } catch (IOException e) {} + + // Test that an IOExcception is thrown when an invalid charater + // is part of the path on Windows and Unix + final String invalidOSPath = System.getProperty("os.name") + .startsWith("Windows") ? "C:\\*" : "foo\u0000bar"; + + try { Unreached (new JarFile (invalidOSPath)); } + catch (IOException e) {} } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/jdk/java/util/jar/JarFile/mrjar/TestVersionedStream.java --- a/test/jdk/java/util/jar/JarFile/mrjar/TestVersionedStream.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/jdk/java/util/jar/JarFile/mrjar/TestVersionedStream.java Mon Oct 08 18:23:05 2018 -0400 @@ -23,7 +23,7 @@ /* * @test - * @bug 8163798 8189611 + * @bug 8163798 8189611 8211728 * @summary basic tests for multi-release jar versioned streams * @library /test/lib * @modules jdk.jartool/sun.tools.jar java.base/jdk.internal.util.jar @@ -82,7 +82,8 @@ "v10/p/Foo.class", "v10/q/Bar.class", "v" + LATEST_VERSION + "/p/Bar.class", - "v" + LATEST_VERSION + "/p/Foo.class" + "v" + LATEST_VERSION + "/p/Foo.class", + "v" + LATEST_VERSION + "/META-INF/Foo.class" ); jar("cf mmr.jar -C base . " + @@ -224,6 +225,11 @@ throw new UncheckedIOException(x); } }); + + if (!unversionedEntryNames.contains("META-INF/Foo.class") || + versionedNames.indexOf("META-INF/Foo.class") != -1) { + Assert.fail("versioned META-INF/Foo.class test failed"); + } } } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/jdk/javax/imageio/plugins/png/ItxtUtf8Test.java --- a/test/jdk/javax/imageio/plugins/png/ItxtUtf8Test.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/jdk/javax/imageio/plugins/png/ItxtUtf8Test.java Mon Oct 08 18:23:05 2018 -0400 @@ -30,7 +30,7 @@ * * @run main ItxtUtf8Test * - * @run main/othervm/timeout=10 -Xmx4m ItxtUtf8Test truncate + * @run main/othervm/timeout=10 -Xmx6m ItxtUtf8Test truncate */ import java.awt.image.BufferedImage; diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/langtools/jdk/javadoc/doclet/testSerialTag/TestSerialTag.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/langtools/jdk/javadoc/doclet/testSerialTag/TestSerialTag.java Mon Oct 08 18:23:05 2018 -0400 @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2018, 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. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8207214 + * @summary Test package-level at-serial tags + * @library /tools/lib ../lib + * @modules jdk.javadoc/jdk.javadoc.internal.tool + * @build JavadocTester toolbox.ToolBox + * @run main TestSerialTag + */ + +import java.io.IOException; +import java.nio.file.Path; + +import toolbox.ToolBox; + +public class TestSerialTag extends JavadocTester { + public static void main(String... args) throws Exception { + TestSerialTag tester = new TestSerialTag(); + tester.runTests(m -> new Object[] { Path.of(m.getName()) }); + } + + private final ToolBox tb; + + TestSerialTag() { + tb = new ToolBox(); + } + + @Test + public void testCombo(Path base) throws IOException { + boolean[] moduleValues = { false, true }; + String[] tagValues = { "", "@serial include", "@serial exclude" }; + for (boolean module : moduleValues ) { + for (String tag : tagValues ) { + String name = (module ? "module-" : "") + + (tag.isEmpty() ? "default" : tag.replace("@serial ", "")); + Path dir = base.resolve(name); + test(dir, module, tag); + } + } + + } + + void test(Path base, boolean module, String tag) throws IOException { + out.println("Test: module:" + module + ", tag:" + tag); + + Path srcDir = generateSource(base, module, tag); + + Path outDir = base.resolve("out"); + if (module) { + javadoc("-d", outDir.toString(), + "--module-source-path", srcDir.toString(), + "--module", "m"); + } else { + javadoc("-d", outDir.toString(), + "-sourcepath", srcDir.toString(), + "p", "q"); + } + checkExit(Exit.OK); + + boolean expectLink = !tag.equals("@serial exclude"); + checkSeeSerializedForm(module, expectLink); + } + + /** + * Generates source for a test case. + * Two classes are generated, in two different packages. + * One package has a variable at-serial tag to test; + * The other package is a control and always has no special tag. + * + * @param base the working directory for the test case + * @param module whether or not to enclose the packages in a module + * @param tag the at-serial tag to be tested + * @return the directory in which the source was created + */ + Path generateSource(Path base, boolean module, String tag) throws IOException { + Path srcDir = base.resolve("src"); + + Path dir; + if (module) { + dir = srcDir.resolve("m"); + tb.writeJavaFiles(dir, + "module m { exports p; exports q; }"); + } else { + dir = srcDir; + } + + tb.writeJavaFiles(dir, + "/** This is package p;\n * " + tag + "\n */\n" + + "package p;", + "/** This is class p.C1;\n */\n" + + "package p; public class C1 implements java.io.Serializable { }", + "/** This is package q;\n */\n" + + "package q;", + "/** This is class q.C2;\n */\n" + + "package q; public class C2 implements java.io.Serializable { }" + ); + + return srcDir; + } + + /** + * Checks the link to the serialized form page, + * and whether classes are documented on that page. + * + * @param module whether or not the output is module-oriented + * @param b whether or not class p.C1 should be documented as serializable + */ + void checkSeeSerializedForm(boolean module, boolean b) { + String prefix = module ? "m/" : ""; + + checkOutput(prefix + "p/C1.html", b, + "serialized-form.html"); + checkOutput("serialized-form.html", b, + "C1"); + + checkOutput(prefix + "q/C2.html", true, + "serialized-form.html"); + checkOutput("serialized-form.html", true, + "C2"); + } +} + diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/langtools/tools/javac/lambda/T8209407/VerifierErrorInnerPlusLambda.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/langtools/tools/javac/lambda/T8209407/VerifierErrorInnerPlusLambda.java Mon Oct 08 18:23:05 2018 -0400 @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2018, 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. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8209407 + * @summary VerifyError is thrown for inner class with lambda + */ + +import java.util.function.Supplier; + +public class VerifierErrorInnerPlusLambda { + public static void main(String[] args) { + Object a = new Object(); + class Local { Object ref = a; } + new Object() { + void unused() { + Supplier s = () -> new Local(); + } + }; + } +} diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/lib/jdk/test/lib/Platform.java --- a/test/lib/jdk/test/lib/Platform.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/lib/jdk/test/lib/Platform.java Mon Oct 08 18:23:05 2018 -0400 @@ -325,6 +325,19 @@ } } + public static boolean isDefaultCDSArchiveSupported() { + return (is64bit() && + isServer() && + (isLinux() || + isOSX() || + isSolaris() || + isWindows()) && + !isZero() && + !isMinimal() && + !isAArch64() && + !isARM()); + } + /* * This should match the #if condition in ClassListParser::load_class_from_source(). */ diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/lib/jdk/test/lib/SecurityTools.java --- a/test/lib/jdk/test/lib/SecurityTools.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/lib/jdk/test/lib/SecurityTools.java Mon Oct 08 18:23:05 2018 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2018, 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 @@ -28,7 +28,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -36,10 +35,23 @@ import jdk.test.lib.process.OutputAnalyzer; import jdk.test.lib.process.ProcessTools; +/** + * Run security tools (including jarsigner and keytool) in a new process. + * The en_US locale is always used so a test can always match output to + * English text. {@code /dev/urandom} is used as entropy source so tool will + * not block because of entropy scarcity. {@code -Jvm-options} is supported + * as an argument. + */ public class SecurityTools { + /** + * The response file name for keytool. Use {@link #setResponse} to + * create one. Do NOT manipulate it directly. + */ public static final String RESPONSE_FILE = "security_tools_response.txt"; + private SecurityTools() {} + private static ProcessBuilder getProcessBuilder(String tool, List args) { JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK(tool) .addVMArg("-Duser.language=en") @@ -57,8 +69,13 @@ return new ProcessBuilder(launcher.getCommand()); } - // keytool - + /** + * Runs keytool. + * + * @param args arguments to keytool + * @return an {@link OutputAnalyzer} object + * @throws Exception if there is an error + */ public static OutputAnalyzer keytool(List args) throws Exception { @@ -77,15 +94,46 @@ } } - // Only call this if there is no white space in every argument + /** + * Runs keytool. + * + * @param args arguments to keytool in a single string. Only call this if + * there is no white space inside an argument. This string will + * be split with {@code \s+}. + * @return an {@link OutputAnalyzer} object + * @throws Exception if there is an error + */ public static OutputAnalyzer keytool(String args) throws Exception { return keytool(args.split("\\s+")); } + /** + * Runs keytool. + * + * @param args arguments to keytool + * @return an {@link OutputAnalyzer} object + * @throws Exception if there is an error + */ public static OutputAnalyzer keytool(String... args) throws Exception { return keytool(List.of(args)); } + + /** + * Sets the responses (user input) for keytool. + *

+ * For example, if keytool requires entering a password twice, call + * {@code setResponse("password", "password")}. Do NOT append a newline + * character to each response. If there are useless responses at the end, + * they will be discarded silently. If there are less responses than + * necessary, keytool will read EOF. The responses will be written into + * {@linkplain #RESPONSE_FILE a local file} and will only be used by the + * next keytool run. After the run, the file is removed. Calling this + * method will always overwrite the previous response file (if exists). + * + * @param responses response to keytool + * @throws IOException if there is an error + */ public static void setResponse(String... responses) throws IOException { String text; if (responses.length > 0) { @@ -97,8 +145,13 @@ Files.write(Paths.get(RESPONSE_FILE), text.getBytes()); } - // jarsigner - + /** + * Runs jarsigner. + * + * @param args arguments to jarsigner + * @return an {@link OutputAnalyzer} object + * @throws Exception if there is an error + */ public static OutputAnalyzer jarsigner(List args) throws Exception { return execute(getProcessBuilder("jarsigner", args)); @@ -118,12 +171,27 @@ } } - // Only call this if there is no white space in every argument + /** + * Runs jarsigner. + * + * @param args arguments to jarsigner in a single string. Only call this if + * there is no white space inside an argument. This string will + * be split with {@code \s+}. + * @return an {@link OutputAnalyzer} object + * @throws Exception if there is an error + */ public static OutputAnalyzer jarsigner(String args) throws Exception { return jarsigner(args.split("\\s+")); } + /** + * Runs jarsigner. + * + * @param args arguments to jarsigner + * @return an {@link OutputAnalyzer} object + * @throws Exception if there is an error + */ public static OutputAnalyzer jarsigner(String... args) throws Exception { return jarsigner(List.of(args)); } diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/lib/jdk/test/lib/util/JarUtils.java --- a/test/lib/jdk/test/lib/util/JarUtils.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/lib/jdk/test/lib/util/JarUtils.java Mon Oct 08 18:23:05 2018 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2018, 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 @@ -222,6 +222,7 @@ * be either updated or added. The files in the 2nd group * will be removed. If no "-" exists, all files belong to * the 1st group. + * @throws IOException if there is an error */ @Deprecated public static void updateJar(String src, String dest, String... files) @@ -259,7 +260,7 @@ * Value can be Path, byte[] or String. If key exists in * src but value is Boolean FALSE. The entry is removed. * Existing entries in src not a key is unmodified. - * @throws IOException + * @throws IOException if there is an error */ @Deprecated public static void updateJar(String src, String dest, diff -r 20568f1e1aa7 -r cf8d1b2388b8 test/lib/sun/hotspot/WhiteBox.java --- a/test/lib/sun/hotspot/WhiteBox.java Mon Oct 08 18:17:37 2018 -0400 +++ b/test/lib/sun/hotspot/WhiteBox.java Mon Oct 08 18:23:05 2018 -0400 @@ -512,6 +512,8 @@ public native void assertMatchingSafepointCalls(boolean mutexSafepointValue, boolean attemptedNoSafepointValue); // Sharing & archiving + public native String getDefaultArchivePath(); + public native boolean isSharingEnabled(); public native boolean isShared(Object o); public native boolean isSharedClass(Class c); public native boolean areSharedStringsIgnored();