# HG changeset patch # User erikj # Date 1539274807 25200 # Node ID 4762fcec08d4cbf4e988117fb9a98fda25f499ff # Parent 2ea07b19b446ee29cd9564dee5466cc86fc82f6b# Parent 8419d77e3635171daedf5f8b6e174362f365e29b Merge from default diff -r 2ea07b19b446 -r 4762fcec08d4 .hgtags --- a/.hgtags Thu Oct 11 16:41:13 2018 +0200 +++ b/.hgtags Thu Oct 11 09:20:07 2018 -0700 @@ -517,3 +517,4 @@ 8897e41b327c0a5601c6ba2bba5d07f15a3ffc91 jdk-12+14 8897e41b327c0a5601c6ba2bba5d07f15a3ffc91 jdk-12+14 6f04692c7d5137ee34a6bd94c0c8a6c9219cb127 jdk-12+14 +f8626bcc169813a4b2a15880386b952719d1d6d1 jdk-12+15 diff -r 2ea07b19b446 -r 4762fcec08d4 make/BuildStatic.gmk --- a/make/BuildStatic.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/BuildStatic.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -42,7 +42,7 @@ $(GLOBAL_SYMBOLS_FILE): $(MODULES_SYMBOLS_FILES) $(call LogInfo, Generating global exported.symbols file) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(CAT) $^ > $@ TARGETS += $(GLOBAL_SYMBOLS_FILE) diff -r 2ea07b19b446 -r 4762fcec08d4 make/Bundles.gmk --- a/make/Bundles.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/Bundles.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -70,6 +70,7 @@ $$(call SetIfEmpty, $1_UNZIP_DEBUGINFO, false) $(BUNDLES_OUTPUTDIR)/$$($1_BUNDLE_NAME): $$($1_FILES) + $$(call MakeTargetDir) # If any of the files contain a space in the file name, CacheFind # will have replaced it with ?. Tar does not accept that so need to # switch it back. @@ -79,7 +80,6 @@ $$(CAT) $$($1_$$d_LIST_FILE) | $$(TR) '?' ' ' > $$($1_$$d_LIST_FILE).tmp \ && $(MV) $$($1_$$d_LIST_FILE).tmp $$($1_$$d_LIST_FILE) $$(NEWLINE) \ ) - $$(call MakeDir, $$(@D)) ifneq ($$($1_SPECIAL_INCLUDES), ) $$(foreach i, $$($1_SPECIAL_INCLUDES), \ $$(foreach d, $$($1_BASE_DIRS), \ diff -r 2ea07b19b446 -r 4762fcec08d4 make/CopyInterimCLDRConverter.gmk --- a/make/CopyInterimCLDRConverter.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/CopyInterimCLDRConverter.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -33,7 +33,7 @@ ### CLDRConverter needs the JRE time zone names from the java.base source. define cldrconverter_copytznames - $(MKDIR) -p '$(@D)' + $(call MakeTargetDir) $(RM) '$@' $(SED) -e "s/package sun.util.resources/package build.tools.cldrconverter/" \ -e "s/extends TimeZoneNamesBundle//" \ @@ -46,7 +46,7 @@ DEST := $(BUILDTOOLS_OUTPUTDIR)/interim_cldrconverter_classes/build/tools/cldrconverter, \ FILES := TimeZoneNames.java, \ MACRO := cldrconverter_copytznames)) - + ########################################################################################## all: $(COPY_INTERIM_CLDRCONVERTER) diff -r 2ea07b19b446 -r 4762fcec08d4 make/CreateBuildJdkCopy.gmk --- a/make/CreateBuildJdkCopy.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/CreateBuildJdkCopy.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -41,7 +41,7 @@ $(COPY_CLASSES_TARGET): $(call CacheFind, $(wildcard \ $(addprefix $(JDK_OUTPUTDIR)/modules/, $(MODULES_TO_COPY)))) - $(ECHO) $(LOG_INFO) "Copying java modules to buildjdk: $(MODULES_TO_COPY)" + $(call LogInfo, Copying java modules to buildjdk: $(MODULES_TO_COPY)) $(RM) -r $(BUILDJDK_OUTPUTDIR)/jdk/modules $(MKDIR) -p $(BUILDJDK_OUTPUTDIR)/jdk/modules $(foreach m, $(MODULES_TO_COPY), \ diff -r 2ea07b19b446 -r 4762fcec08d4 make/GenerateModuleSummary.gmk --- a/make/GenerateModuleSummary.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/GenerateModuleSummary.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -35,18 +35,18 @@ TOOLS_MODULE_SRCDIR := $(TOPDIR)/make/jdk/src/classes/build/tools/jigsaw $(GENGRAPHS_DIR)/jdk.dot: $(BUILD_JIGSAW_TOOLS) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(TOOL_GENGRAPHS) --output $(GENGRAPHS_DIR) $(SPEC_DOTFILES_DIR)/java.se.dot: $(BUILD_JIGSAW_TOOLS) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(TOOL_GENGRAPHS) --spec --output $(SPEC_DOTFILES_DIR) $(GENGRAPHS_DIR)/technology-summary.html: $(TOOLS_MODULE_SRCDIR)/technology-summary.html $(install-file) $(GENGRAPHS_DIR)/module-summary.html: $(BUILD_JIGSAW_TOOLS) $(GENGRAPHS_DIR)/technology-summary.html - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(TOOL_MODULESUMMARY) -o $@ --module-path $(IMAGES_OUTPUTDIR)/jmods all: $(GENGRAPHS_DIR)/jdk.dot $(GENGRAPHS_DIR)/module-summary.html $(SPEC_DOTFILES_DIR)/java.se.dot diff -r 2ea07b19b446 -r 4762fcec08d4 make/GensrcModuleInfo.gmk --- a/make/GensrcModuleInfo.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/GensrcModuleInfo.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -79,7 +79,7 @@ $(BUILD_TOOLS_JDK) \ $(MOD_FILES) \ $(call DependOnVariable, ALL_MODULES) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(RM) $@ $@.tmp $(TOOL_GENMODULEINFOSOURCE) -o $@.tmp \ --source-file $< \ diff -r 2ea07b19b446 -r 4762fcec08d4 make/MacBundles.gmk --- a/make/MacBundles.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/MacBundles.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -63,13 +63,13 @@ $(JDK_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib: $(call LogInfo, Creating link $(patsubst $(OUTPUTDIR)/%,%,$@)) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(RM) $@ $(LN) -s ../Home/lib/libjli.dylib $@ $(JRE_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib: $(call LogInfo, Creating link $(patsubst $(OUTPUTDIR)/%,%,$@)) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(RM) $@ $(LN) -s ../Home/lib/libjli.dylib $@ diff -r 2ea07b19b446 -r 4762fcec08d4 make/autoconf/basics.m4 --- a/make/autoconf/basics.m4 Thu Oct 11 16:41:13 2018 +0200 +++ b/make/autoconf/basics.m4 Thu Oct 11 09:20:07 2018 -0700 @@ -569,7 +569,8 @@ BASIC_REQUIRE_PROGS(GZIP, pigz gzip) BASIC_REQUIRE_PROGS(LN, ln) BASIC_REQUIRE_PROGS(LS, ls) - BASIC_REQUIRE_PROGS(MKDIR, mkdir) + # gmkdir is known to be safe for concurrent invocations with -p flag. + BASIC_REQUIRE_PROGS(MKDIR, [gmkdir mkdir]) BASIC_REQUIRE_PROGS(MKTEMP, mktemp) BASIC_REQUIRE_PROGS(MV, mv) BASIC_REQUIRE_PROGS(NAWK, [nawk gawk awk]) diff -r 2ea07b19b446 -r 4762fcec08d4 make/common/JarArchive.gmk --- a/make/common/JarArchive.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/common/JarArchive.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -237,10 +237,8 @@ # Here is the rule that creates/updates the jar file. $$($1_JAR) : $$($1_DEPENDENCIES) $$($1_MANIFEST) $$($1_VARDEPS_FILE) - $(MKDIR) -p $$($1_BIN) - ifneq ($$($1_JAR_OUTPUT_DIR), $$($1_BIN)) - $(MKDIR) -p $$($1_JAR_OUTPUT_DIR) - endif + $$(call MakeTargetDir) + $$(call MakeDir, $$($1_BIN)) $$($1_GREP_INCLUDE_OUTPUT) $$($1_GREP_EXCLUDE_OUTPUT) # If the vardeps file is part of the newer prereq list, it means that diff -r 2ea07b19b446 -r 4762fcec08d4 make/common/JavaCompilation.gmk --- a/make/common/JavaCompilation.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/common/JavaCompilation.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -423,7 +423,7 @@ $1_HEADERS_ARG := -h $$($1_HEADERS).$1.tmp $$($1_HEADERS)/_the.$1_headers: $$($1_COMPILE_TARGET) - $(MKDIR) -p $$(@D) + $$(call MakeTargetDir) if [ -d "$$($1_HEADERS).$1.tmp" ]; then \ for f in `$(CD) $$($1_HEADERS).$1.tmp && $(FIND) . -type f`; do \ if [ ! -f "$$($1_HEADERS)/$$$$f" ] \ diff -r 2ea07b19b446 -r 4762fcec08d4 make/common/Modules.gmk --- a/make/common/Modules.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/common/Modules.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -321,7 +321,7 @@ $(MODULE_DEPS_MAKEFILE): $(MODULE_INFOS) \ $(call DependOnVariable, MODULE_INFOS, $(MAKESUPPORT_OUTPUTDIR)/MODULE_INFOS.vardeps) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(RM) $@ $(foreach m, $(MODULE_INFOS), \ ( $(PRINTF) "DEPS_$(call GetModuleNameFromModuleInfo, $m) :=" && \ diff -r 2ea07b19b446 -r 4762fcec08d4 make/common/ZipArchive.gmk --- a/make/common/ZipArchive.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/common/ZipArchive.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -124,8 +124,8 @@ # If zip has nothing to do, it returns 12 and would fail the build. Check for 12 # and only fail if it's not. $$($1_ZIP) : $$($1_ALL_SRCS) $$($1_EXTRA_DEPS) - $(MKDIR) -p $$(@D) - $(ECHO) Updating $$($1_NAME) + $$(call LogWarn, Updating $$($1_NAME)) + $$(call MakeTargetDir) $$(foreach s,$$($1_SRC),(cd $$s && $(ZIPEXE) -qru $$($1_ZIP_OPTIONS) $$@ . \ $$($1_ZIP_INCLUDES) $$($1_ZIP_EXCLUDES) -x \*_the.\* \ $$($1_ZIP_EXCLUDES_$$s) \ diff -r 2ea07b19b446 -r 4762fcec08d4 make/copy/Copy-java.base.gmk --- a/make/copy/Copy-java.base.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/copy/Copy-java.base.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -128,7 +128,7 @@ POLICY_SRC_LIST := $(POLICY_SRC) $(POLICY_DST): $(POLICY_SRC_LIST) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(RM) $@ $@.tmp $(foreach f,$(POLICY_SRC_LIST),$(CAT) $(f) >> $@.tmp;) $(MV) $@.tmp $@ @@ -153,7 +153,7 @@ endif $(DEF_POLICY_DST): $(DEF_POLICY_SRC_LIST) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(RM) $@ $@.tmp $(foreach f,$(DEF_POLICY_SRC_LIST),$(CAT) $(f) >> $@.tmp;) $(MV) $@.tmp $@ diff -r 2ea07b19b446 -r 4762fcec08d4 make/data/jdwp/jdwp.spec --- a/make/data/jdwp/jdwp.spec Thu Oct 11 16:41:13 2018 +0200 +++ b/make/data/jdwp/jdwp.spec Thu Oct 11 09:20:07 2018 -0700 @@ -2185,7 +2185,7 @@ "in this thread group. Threads and thread groups in child " "thread groups are not included. " "A thread is alive if it has been started and has not yet been stopped. " - "See java.lang.ThreadGroup + "See java.lang.ThreadGroup "for information about active ThreadGroups. (Out (threadGroupObject group "The thread group object ID. ") diff -r 2ea07b19b446 -r 4762fcec08d4 make/gendata/GendataFontConfig.gmk --- a/make/gendata/GendataFontConfig.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/gendata/GendataFontConfig.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -38,7 +38,7 @@ $(GENDATA_FONT_CONFIG_DST)/%.bfc: \ $(GENDATA_FONT_CONFIG_DATA_DIR)/$(OPENJDK_TARGET_OS).%.properties \ $(BUILD_TOOLS_JDK) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(RM) $@ $(TOOL_COMPILEFONTCONFIG) $< $@ $(CHMOD) 444 $@ diff -r 2ea07b19b446 -r 4762fcec08d4 make/gendata/GendataHtml32dtd.gmk --- a/make/gendata/GendataHtml32dtd.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/gendata/GendataHtml32dtd.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -28,7 +28,7 @@ HTML32DTD = $(JDK_OUTPUTDIR)/modules/java.desktop/javax/swing/text/html/parser/html32.bdtd $(HTML32DTD): $(BUILD_TOOLS_JDK) $(call LogInfo, Generating HTML DTD file) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(RM) $@ ($(TOOL_DTDBUILDER) html32 > $@) || exit 1 diff -r 2ea07b19b446 -r 4762fcec08d4 make/gendata/GendataTZDB.gmk --- a/make/gendata/GendataTZDB.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/gendata/GendataTZDB.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -35,8 +35,8 @@ GENDATA_TZDB_DAT := $(SUPPORT_OUTPUTDIR)/modules_libs/$(MODULE)/tzdb.dat $(GENDATA_TZDB_DAT): $(TZDATA_TZFILES) + $(call MakeTargetDir) $(RM) $(GENDATA_TZDB_DAT) - $(MKDIR) -p $(@D) $(TOOL_TZDB) -srcdir $(TZDATA_DIR) -dstfile $(GENDATA_TZDB_DAT) $(TZDATA_TZFILE) TARGETS += $(GENDATA_TZDB_DAT) diff -r 2ea07b19b446 -r 4762fcec08d4 make/gensrc/GensrcCLDR.gmk --- a/make/gensrc/GensrcCLDR.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/gensrc/GensrcCLDR.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -50,7 +50,7 @@ $(wildcard $(CLDRSRCDIR)/supplemental/*.xml) \ $(ZONENAME_TEMPLATE) \ $(BUILD_TOOLS_JDK) - $(MKDIR) -p $(GENSRC_BASEDIR) + $(call MakeDir, $(GENSRC_BASEDIR)) $(TOOL_CLDRCONVERTER) -base $(CLDRSRCDIR) \ -baselocales $(CLDR_BASE_LOCALES) \ -o $(GENSRC_BASEDIR) \ @@ -62,7 +62,7 @@ $(wildcard $(CLDRSRCDIR)/main/*.xml) \ $(wildcard $(CLDRSRCDIR)/supplemental/*.xml) \ $(BUILD_TOOLS_JDK) - $(MKDIR) -p $(GENSRC_DIR) + $(call MakeDir, $(GENSRC_DIR)) $(TOOL_CLDRCONVERTER) -base $(CLDRSRCDIR) \ -baselocales $(CLDR_BASE_LOCALES) \ -o $(GENSRC_DIR) diff -r 2ea07b19b446 -r 4762fcec08d4 make/gensrc/GensrcCharsetCoder.gmk --- a/make/gensrc/GensrcCharsetCoder.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/gensrc/GensrcCharsetCoder.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -34,8 +34,8 @@ ################################################################################ $(GENSRC_CHARSETCODER_DST)/CharsetDecoder.java: $(GENSRC_CHARSETCODER_TEMPLATE) - $(MKDIR) -p $(@D) - -$(RM) $@.tmp + $(call MakeTargetDir) + $(RM) $@.tmp $(TOOL_SPP) < $< >$@.tmp \ -Kdecoder \ -DA='A' \ @@ -69,8 +69,8 @@ ################################################################################ $(GENSRC_CHARSETCODER_DST)/CharsetEncoder.java: $(GENSRC_CHARSETCODER_TEMPLATE) - $(MKDIR) -p $(@D) - -$(RM) $@.tmp + $(call MakeTargetDir) + $(RM) $@.tmp $(TOOL_SPP) < $< >$@.tmp \ -Kencoder \ -DA='An' \ diff -r 2ea07b19b446 -r 4762fcec08d4 make/gensrc/GensrcCommonLangtools.gmk --- a/make/gensrc/GensrcCommonLangtools.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/gensrc/GensrcCommonLangtools.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -49,7 +49,7 @@ # root. define SetupVersionProperties $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/$$(strip $2): - $(MKDIR) -p $$(@D) + $$(call MakeTargetDir) $(PRINTF) "jdk=$(VERSION_NUMBER)\nfull=$(VERSION_STRING)\nrelease=$(VERSION_SHORT)\n" \ > $$@ @@ -92,7 +92,7 @@ # Now setup the rule for the generation of the resource bundles. $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/_the_props: $$(PROPSOURCES) - $(MKDIR) -p $$(@D) $$(PROPDIRS) + $$(call MakeDir, $$(@D) $$(PROPDIRS)) $(FIND) $$(@D) -name "*.java" -a ! -name "*Properties.java" $(FIND_DELETE) $(ECHO) Compiling $$(words $$(PROPSOURCES)) properties into resource bundles for $(MODULE) $(TOOL_COMPILEPROPS_CMD) $$(PROPCMDLINE) @@ -122,7 +122,7 @@ # Now setup the rule for the generation of the resource bundles. $(SUPPORT_OUTPUTDIR)/gensrc/$(MODULE)/_the_parsed_props: $$(PARSEPROPSOURCES) - $(MKDIR) -p $$(@D) $$(PARSEPROPDIRS) + $$(call MakeDir, $$(@D) $$(PARSEPROPDIRS)) $(FIND) $$(@D) -name "*Properties.java" $(FIND_DELETE) $(ECHO) Parsing $$(words $$(PARSEPROPSOURCES)) properties into enum-like class for $(MODULE) $(TOOL_PARSEPROPS_CMD) $$(PARSEPROPCMDLINE) diff -r 2ea07b19b446 -r 4762fcec08d4 make/gensrc/GensrcLocaleData.gmk --- a/make/gensrc/GensrcLocaleData.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/gensrc/GensrcLocaleData.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -131,7 +131,7 @@ $(SUPPORT_OUTPUTDIR)/gensrc/java.base/sun/util/locale/provider/BaseLocaleDataMetaInfo.java: \ $(TOPDIR)/src/java.base/share/classes/sun/util/locale/provider/LocaleDataMetaInfo-XLocales.java.template $(call LogInfo, Creating sun/util/locale/provider/BaseLocaleDataMetaInfo.java from $(words $(LOCALE_RESOURCES)) found resources) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(PRINTF) "PREV_LOCALE_RESOURCES:=$(LOCALE_RESOURCES)" \ > $(SUPPORT_OUTPUTDIR)/gensrc/java.base/_the.locale_resources $(SED) $(SED_BASEARGS) $< > $@ @@ -139,7 +139,7 @@ $(SUPPORT_OUTPUTDIR)/gensrc/jdk.localedata/sun/util/resources/provider/NonBaseLocaleDataMetaInfo.java: \ $(TOPDIR)/src/java.base/share/classes/sun/util/locale/provider/LocaleDataMetaInfo-XLocales.java.template $(call LogInfo, Creating sun/util/resources/provider/NonBaseLocaleDataMetaInfo.java from $(words $(LOCALE_RESOURCES)) found resources) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(PRINTF) "PREV_LOCALE_RESOURCES:=$(LOCALE_RESOURCES)" \ > $(SUPPORT_OUTPUTDIR)/gensrc/jdk.localedata/_the.locale_resources $(SED) $(SED_NONBASEARGS) $< > $@ diff -r 2ea07b19b446 -r 4762fcec08d4 make/gensrc/GensrcModuleLoaderMap.gmk --- a/make/gensrc/GensrcModuleLoaderMap.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/gensrc/GensrcModuleLoaderMap.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -46,7 +46,7 @@ $(SUPPORT_OUTPUTDIR)/gensrc/java.base/jdk/internal/module/ModuleLoaderMap.java: \ $(TOPDIR)/src/java.base/share/classes/jdk/internal/module/ModuleLoaderMap.java \ $(VARDEPS_FILE) $(BUILD_TOOLS_JDK) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(RM) $@ $@.tmp $(TOOL_GENCLASSLOADERMAP) -boot $(BOOT_MODULES_LIST) \ -platform $(PLATFORM_MODULES_LIST) -o $@.tmp $< diff -r 2ea07b19b446 -r 4762fcec08d4 make/gensrc/GensrcProperties.gmk --- a/make/gensrc/GensrcProperties.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/gensrc/GensrcProperties.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -34,7 +34,7 @@ $$(subst _zh_TW,_zh_HK, $2)) $$($1_$2_TARGET): $2 - $(MKDIR) -p $$(@D) + $$(call MakeTargetDir) $(CAT) $$< | $(SED) -e '/class/s/_zh_TW/_zh_HK/' > $$@ $1 += $$($1_$2_TARGET) @@ -105,8 +105,8 @@ # Now setup the rule for the generation of the resource bundles. $$($1_TARGET): $$($1_SRC_FILES) $$($1_JAVAS) $(BUILD_TOOLS_JDK) - $(MKDIR) -p $$(@D) $$($1_DIRS) - $(ECHO) Compiling $$(words $$($1_SRC_FILES)) properties into resource bundles for $(MODULE) + $$(call LogWarn, Compiling $$(words $$($1_SRC_FILES)) properties into resource bundles for $(MODULE)) + $$(call MakeDir, $$(@D) $$($1_DIRS)) $$(eval $$(call ListPathsSafely, $1_CMDLINE, $$($1_CMDLINE_FILE))) $(TOOL_COMPILEPROPERTIES) -quiet @$$($1_CMDLINE_FILE) $(TOUCH) $$@ diff -r 2ea07b19b446 -r 4762fcec08d4 make/gensrc/GensrcSwing.gmk --- a/make/gensrc/GensrcSwing.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/gensrc/GensrcSwing.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -32,7 +32,7 @@ $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop/_the.generated_nimbus: $(NIMBUS_SKIN_FILE) $(BUILD_TOOLS_JDK) $(call LogInfo, Generating Nimbus source files) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(TOOL_GENERATENIMBUS) $(LOG_DEBUG) \ -skinFile $(NIMBUS_SKIN_FILE) -buildDir $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop \ -packagePrefix $(NIMBUS_PACKAGE).nimbus -lafName Nimbus diff -r 2ea07b19b446 -r 4762fcec08d4 make/launcher/Launcher-java.base.gmk --- a/make/launcher/Launcher-java.base.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/launcher/Launcher-java.base.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -45,7 +45,7 @@ )) $(SUPPORT_OUTPUTDIR)/modules_cmds/java.base/java$(EXE_SUFFIX): $(BUILD_LAUNCHER_java) - $(MKDIR) -p $(@D) + $(call MakeTargetDir) $(RM) $@ $(CP) $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/java_objs/java$(EXE_SUFFIX) $@ diff -r 2ea07b19b446 -r 4762fcec08d4 make/rmic/Rmic-java.management.rmi.gmk --- a/make/rmic/Rmic-java.management.rmi.gmk Thu Oct 11 16:41:13 2018 +0200 +++ b/make/rmic/Rmic-java.management.rmi.gmk Thu Oct 11 09:20:07 2018 -0700 @@ -51,7 +51,7 @@ $(foreach src, $(classfiles), \ $(eval target := $(patsubst $(RMIC_GENSRC_DIR)/%, \ $(STUB_CLASSES_DIR)/%, $(src))) \ - $(MKDIR) -p $(dir $(target)) ; \ + $(call MakeDir, $(dir $(target))) \ $(MV) $(src) $(target) $(NEWLINE)) $(TOUCH) $@ diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/cpu/ppc/c2_globals_ppc.hpp --- a/src/hotspot/cpu/ppc/c2_globals_ppc.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/cpu/ppc/c2_globals_ppc.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -62,7 +62,7 @@ define_pd_global(bool, UseCISCSpill, false); define_pd_global(bool, OptoBundling, false); define_pd_global(bool, OptoRegScheduling, false); -define_pd_global(bool, SuperWordLoopUnrollAnalysis, false); +define_pd_global(bool, SuperWordLoopUnrollAnalysis, true); // GL: // Detected a problem with unscaled compressed oops and // narrow_oop_use_complex_address() == false. diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/cpu/s390/frame_s390.cpp --- a/src/hotspot/cpu/s390/frame_s390.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/cpu/s390/frame_s390.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -53,14 +53,135 @@ bool frame::safe_for_sender(JavaThread *thread) { bool safe = false; - address cursp = (address)sp(); - address curfp = (address)fp(); - if ((cursp != NULL && curfp != NULL && - (cursp <= thread->stack_base() && cursp >= thread->stack_base() - thread->stack_size())) && - (curfp <= thread->stack_base() && curfp >= thread->stack_base() - thread->stack_size())) { - safe = true; + address sp = (address)_sp; + address fp = (address)_fp; + address unextended_sp = (address)_unextended_sp; + + // Consider stack guards when trying to determine "safe" stack pointers + static size_t stack_guard_size = os::uses_stack_guard_pages() ? + JavaThread::stack_red_zone_size() + JavaThread::stack_yellow_reserved_zone_size() : 0; + size_t usable_stack_size = thread->stack_size() - stack_guard_size; + + // sp must be within the usable part of the stack (not in guards) + bool sp_safe = (sp < thread->stack_base()) && + (sp >= thread->stack_base() - usable_stack_size); + + + if (!sp_safe) { + return false; + } + + // Unextended sp must be within the stack + bool unextended_sp_safe = (unextended_sp < thread->stack_base()); + + if (!unextended_sp_safe) { + return false; } - return safe; + + // An fp must be within the stack and above (but not equal) sp. + bool fp_safe = (fp <= thread->stack_base()) && (fp > sp); + // An interpreter fp must be within the stack and above (but not equal) sp. + // Moreover, it must be at least the size of the z_ijava_state structure. + bool fp_interp_safe = (fp <= thread->stack_base()) && (fp > sp) && + ((fp - sp) >= z_ijava_state_size); + + // We know sp/unextended_sp are safe, only fp is questionable here + + // If the current frame is known to the code cache then we can attempt to + // to construct the sender and do some validation of it. This goes a long way + // toward eliminating issues when we get in frame construction code + + if (_cb != NULL ) { + // Entry frame checks + if (is_entry_frame()) { + // An entry frame must have a valid fp. + return fp_safe && is_entry_frame_valid(thread); + } + + // Now check if the frame is complete and the test is + // reliable. Unfortunately we can only check frame completeness for + // runtime stubs. Other generic buffer blobs are more + // problematic so we just assume they are OK. Adapter blobs never have a + // complete frame and are never OK. nmethods should be OK on s390. + if (!_cb->is_frame_complete_at(_pc)) { + if (_cb->is_adapter_blob() || _cb->is_runtime_stub()) { + return false; + } + } + + // Could just be some random pointer within the codeBlob. + if (!_cb->code_contains(_pc)) { + return false; + } + + if (is_interpreted_frame() && !fp_interp_safe) { + return false; + } + + z_abi_160* sender_abi = (z_abi_160*) fp; + intptr_t* sender_sp = (intptr_t*) sender_abi->callers_sp; + address sender_pc = (address) sender_abi->return_pc; + + // We must always be able to find a recognizable pc. + CodeBlob* sender_blob = CodeCache::find_blob_unsafe(sender_pc); + if (sender_blob == NULL) { + return false; + } + + // Could be a zombie method + if (sender_blob->is_zombie() || sender_blob->is_unloaded()) { + return false; + } + + // It should be safe to construct the sender though it might not be valid. + + frame sender(sender_sp, sender_pc); + + // Do we have a valid fp? + address sender_fp = (address) sender.fp(); + + // sender_fp must be within the stack and above (but not + // equal) current frame's fp. + if (sender_fp > thread->stack_base() || sender_fp <= fp) { + return false; + } + + // If the potential sender is the interpreter then we can do some more checking. + if (Interpreter::contains(sender_pc)) { + return sender.is_interpreted_frame_valid(thread); + } + + // Could just be some random pointer within the codeBlob. + if (!sender.cb()->code_contains(sender_pc)) { + return false; + } + + // We should never be able to see an adapter if the current frame is something from code cache. + if (sender_blob->is_adapter_blob()) { + return false; + } + + if (sender.is_entry_frame()) { + return sender.is_entry_frame_valid(thread); + } + + // Frame size is always greater than zero. If the sender frame size is zero or less, + // something is really weird and we better give up. + if (sender_blob->frame_size() <= 0) { + return false; + } + + return true; + } + + // Must be native-compiled frame. Since sender will try and use fp to find + // linkages it must be safe + + if (!fp_safe) { + return false; + } + + return true; } bool frame::is_interpreted_frame() const { diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/cpu/s390/frame_s390.hpp --- a/src/hotspot/cpu/s390/frame_s390.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/cpu/s390/frame_s390.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -491,9 +491,12 @@ static int interpreter_frame_interpreterstate_size_in_bytes(); static int interpreter_frame_monitor_size_in_bytes(); + + // template interpreter state + inline z_ijava_state* ijava_state_unchecked() const; + private: - // template interpreter state inline z_ijava_state* ijava_state() const; // Where z_ijava_state.monitors is saved. diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/cpu/s390/frame_s390.inline.hpp --- a/src/hotspot/cpu/s390/frame_s390.inline.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/cpu/s390/frame_s390.inline.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -77,8 +77,13 @@ #endif // template interpreter state +inline frame::z_ijava_state* frame::ijava_state_unchecked() const { + z_ijava_state* state = (z_ijava_state*) ((uintptr_t)fp() - z_ijava_state_size); + return state; +} + inline frame::z_ijava_state* frame::ijava_state() const { - z_ijava_state* state = (z_ijava_state*) ((uintptr_t)fp() - z_ijava_state_size); + z_ijava_state* state = ijava_state_unchecked(); assert(state->magic == (intptr_t) frame::z_istate_magic_number, "wrong z_ijava_state in interpreter frame (no magic found)"); return state; diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/cpu/x86/stubRoutines_x86.hpp --- a/src/hotspot/cpu/x86/stubRoutines_x86.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/cpu/x86/stubRoutines_x86.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -33,7 +33,7 @@ enum platform_dependent_constants { code_size1 = 20000 LP64_ONLY(+10000), // simply increase if too small (assembler will crash if too small) - code_size2 = 33800 LP64_ONLY(+10000) // simply increase if too small (assembler will crash if too small) + code_size2 = 35300 LP64_ONLY(+10000) // simply increase if too small (assembler will crash if too small) }; class x86 { diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/os_cpu/linux_s390/thread_linux_s390.cpp --- a/src/hotspot/os_cpu/linux_s390/thread_linux_s390.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/os_cpu/linux_s390/thread_linux_s390.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -42,10 +42,51 @@ } bool JavaThread::pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext, bool isInJava) { - ucontext_t* uc = (ucontext_t*) ucontext; - *fr_addr = frame((intptr_t*)uc->uc_mcontext.gregs[15/*REG_SP*/], + assert(this->is_Java_thread(), "must be JavaThread"); + + // If we have a last_Java_frame, then we should use it even if + // isInJava == true. It should be more reliable than ucontext info. + if (has_last_Java_frame() && frame_anchor()->walkable()) { + *fr_addr = pd_last_frame(); + return true; + } + + if (isInJava) { + ucontext_t* uc = (ucontext_t*) ucontext; + frame ret_frame((intptr_t*)uc->uc_mcontext.gregs[15/*Z_SP*/], (address)uc->uc_mcontext.psw.addr); - return true; + + if (ret_frame.pc() == NULL) { + // ucontext wasn't useful + return false; + } + + if (ret_frame.is_interpreted_frame()) { + frame::z_ijava_state* istate = ret_frame.ijava_state_unchecked(); + if (!((Method*)(istate->method))->is_metaspace_object()) { + return false; + } + uint64_t reg_bcp = uc->uc_mcontext.gregs[13/*Z_BCP*/]; + uint64_t istate_bcp = istate->bcp; + uint64_t code_start = (uint64_t)(((Method*)(istate->method))->code_base()); + uint64_t code_end = (uint64_t)(((Method*)istate->method)->code_base() + ((Method*)istate->method)->code_size()); + if (istate_bcp >= code_start && istate_bcp < code_end) { + // we have a valid bcp, don't touch it, do nothing + } else if (reg_bcp >= code_start && reg_bcp < code_end) { + istate->bcp = reg_bcp; + } else { + return false; + } + } + if (!ret_frame.safe_for_sender(this)) { + // nothing else to try if the frame isn't good + return false; + } + *fr_addr = ret_frame; + return true; + } + // nothing else to try + return false; } // Forte Analyzer AsyncGetCallTrace profiling support is not implemented on Linux/S390x. diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/classfile/classLoader.cpp --- a/src/hotspot/share/classfile/classLoader.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/classfile/classLoader.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -135,7 +135,6 @@ PerfCounter* ClassLoader::_sync_JVMDefineClassLockFreeCounter = NULL; PerfCounter* ClassLoader::_sync_JNIDefineClassLockFreeCounter = NULL; PerfCounter* ClassLoader::_unsafe_defineClassCallCounter = NULL; -PerfCounter* ClassLoader::_load_instance_class_failCounter = NULL; GrowableArray* ClassLoader::_patch_mod_entries = NULL; GrowableArray* ClassLoader::_exploded_entries = NULL; @@ -1604,9 +1603,6 @@ NEWPERFEVENTCOUNTER(_unsafe_defineClassCallCounter, SUN_CLS, "unsafeDefineClassCalls"); - - NEWPERFEVENTCOUNTER(_load_instance_class_failCounter, SUN_CLS, - "loadInstanceClassFailRate"); } // lookup zip library entry points diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/classfile/classLoader.hpp --- a/src/hotspot/share/classfile/classLoader.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/classfile/classLoader.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -192,7 +192,6 @@ static PerfCounter* _sync_JNIDefineClassLockFreeCounter; static PerfCounter* _unsafe_defineClassCallCounter; - static PerfCounter* _load_instance_class_failCounter; // The boot class path consists of 3 ordered pieces: // 1. the module/path pairs specified to --patch-module @@ -340,12 +339,6 @@ return _unsafe_defineClassCallCounter; } - // Record how many times SystemDictionary::load_instance_class call - // fails with linkageError when Unsyncloadclass flag is set. - static PerfCounter* load_instance_class_failCounter() { - return _load_instance_class_failCounter; - } - // Modular java runtime image is present vs. a build with exploded modules static bool has_jrt_entry() { return (_jrt_entry != NULL); } static ClassPathEntry* get_jrt_entry() { return _jrt_entry; } diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/classfile/javaClasses.cpp --- a/src/hotspot/share/classfile/javaClasses.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/classfile/javaClasses.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -36,8 +36,9 @@ #include "interpreter/linkResolver.hpp" #include "logging/log.hpp" #include "logging/logStream.hpp" +#include "memory/heapShared.inline.hpp" +#include "memory/metaspaceShared.hpp" #include "memory/oopFactory.hpp" -#include "memory/metaspaceShared.inline.hpp" #include "memory/resourceArea.hpp" #include "memory/universe.hpp" #include "oops/fieldStreams.hpp" @@ -750,7 +751,7 @@ { assert(fd->signature() == vmSymbols::string_signature(), "just checking"); - if (DumpSharedSpaces && MetaspaceShared::is_archive_object(mirror())) { + if (DumpSharedSpaces && HeapShared::is_archived_object(mirror())) { // Archive the String field and update the pointer. oop s = mirror()->obj_field(fd->offset()); oop archived_s = StringTable::create_archived_string(s, CHECK); @@ -788,7 +789,7 @@ } if (k->is_shared() && k->has_raw_archived_mirror()) { - if (MetaspaceShared::open_archive_heap_region_mapped()) { + if (HeapShared::open_archive_heap_region_mapped()) { bool present = restore_archived_mirror(k, Handle(), Handle(), Handle(), CHECK); assert(present, "Missing archived mirror for %s", k->external_name()); return; @@ -1011,14 +1012,14 @@ }; void java_lang_Class::archive_basic_type_mirrors(TRAPS) { - assert(MetaspaceShared::is_heap_object_archiving_allowed(), - "MetaspaceShared::is_heap_object_archiving_allowed() must be true"); + assert(HeapShared::is_heap_object_archiving_allowed(), + "HeapShared::is_heap_object_archiving_allowed() must be true"); for (int t = 0; t <= T_VOID; t++) { oop m = Universe::_mirrors[t]; if (m != NULL) { // Update the field at _array_klass_offset to point to the relocated array klass. - oop archived_m = MetaspaceShared::archive_heap_object(m, THREAD); + oop archived_m = HeapShared::archive_heap_object(m, THREAD); assert(archived_m != NULL, "sanity"); Klass *ak = (Klass*)(archived_m->metadata_field(_array_klass_offset)); assert(ak != NULL || t == T_VOID, "should not be NULL"); @@ -1071,8 +1072,8 @@ // be used at runtime, new mirror object is created for the shared // class. The _has_archived_raw_mirror is cleared also during the process. oop java_lang_Class::archive_mirror(Klass* k, TRAPS) { - assert(MetaspaceShared::is_heap_object_archiving_allowed(), - "MetaspaceShared::is_heap_object_archiving_allowed() must be true"); + assert(HeapShared::is_heap_object_archiving_allowed(), + "HeapShared::is_heap_object_archiving_allowed() must be true"); // Mirror is already archived if (k->has_raw_archived_mirror()) { @@ -1101,7 +1102,7 @@ } // Now start archiving the mirror object - oop archived_mirror = MetaspaceShared::archive_heap_object(mirror, THREAD); + oop archived_mirror = HeapShared::archive_heap_object(mirror, THREAD); if (archived_mirror == NULL) { return NULL; } @@ -1139,7 +1140,7 @@ if (k->is_typeArray_klass()) { // The primitive type mirrors are already archived. Get the archived mirror. oop comp_mirror = java_lang_Class::component_mirror(mirror); - archived_comp_mirror = MetaspaceShared::find_archived_heap_object(comp_mirror); + archived_comp_mirror = HeapShared::find_archived_heap_object(comp_mirror); assert(archived_comp_mirror != NULL, "Must be"); } else { assert(k->is_objArray_klass(), "Must be"); @@ -1202,7 +1203,7 @@ return true; } - oop m = MetaspaceShared::materialize_archived_object(k->archived_java_mirror_raw_narrow()); + oop m = HeapShared::materialize_archived_object(k->archived_java_mirror_raw_narrow()); if (m == NULL) { return false; @@ -1211,7 +1212,7 @@ log_debug(cds, mirror)("Archived mirror is: " PTR_FORMAT, p2i(m)); // mirror is archived, restore - assert(MetaspaceShared::is_archive_object(m), "must be archived mirror object"); + assert(HeapShared::is_archived_object(m), "must be archived mirror object"); Handle mirror(THREAD, m); if (!k->is_array_klass()) { diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/classfile/stringTable.cpp --- a/src/hotspot/share/classfile/stringTable.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/classfile/stringTable.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -36,7 +36,6 @@ #include "memory/allocation.inline.hpp" #include "memory/filemap.hpp" #include "memory/heapShared.inline.hpp" -#include "memory/metaspaceShared.inline.hpp" #include "memory/resourceArea.hpp" #include "memory/universe.hpp" #include "oops/access.inline.hpp" @@ -798,18 +797,17 @@ oop StringTable::create_archived_string(oop s, Thread* THREAD) { assert(DumpSharedSpaces, "this function is only used with -Xshare:dump"); - if (MetaspaceShared::is_archive_object(s)) { + if (HeapShared::is_archived_object(s)) { return s; } oop new_s = NULL; typeArrayOop v = java_lang_String::value_no_keepalive(s); - typeArrayOop new_v = - (typeArrayOop)MetaspaceShared::archive_heap_object(v, THREAD); + typeArrayOop new_v = (typeArrayOop)HeapShared::archive_heap_object(v, THREAD); if (new_v == NULL) { return NULL; } - new_s = MetaspaceShared::archive_heap_object(s, THREAD); + new_s = HeapShared::archive_heap_object(s, THREAD); if (new_s == NULL) { return NULL; } @@ -847,14 +845,14 @@ }; void StringTable::copy_shared_string_table(CompactHashtableWriter* writer) { - assert(MetaspaceShared::is_heap_object_archiving_allowed(), "must be"); + assert(HeapShared::is_heap_object_archiving_allowed(), "must be"); CopyToArchive copy(writer); StringTable::the_table()->_local_table->do_scan(Thread::current(), copy); } void StringTable::write_to_archive() { - assert(MetaspaceShared::is_heap_object_archiving_allowed(), "must be"); + assert(HeapShared::is_heap_object_archiving_allowed(), "must be"); _shared_table.reset(); int num_buckets = CompactHashtableWriter::default_num_buckets( diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/classfile/systemDictionary.cpp --- a/src/hotspot/share/classfile/systemDictionary.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/classfile/systemDictionary.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -52,6 +52,7 @@ #include "logging/log.hpp" #include "logging/logStream.hpp" #include "memory/filemap.hpp" +#include "memory/heapShared.hpp" #include "memory/metaspaceClosure.hpp" #include "memory/oopFactory.hpp" #include "memory/resourceArea.hpp" @@ -2037,13 +2038,13 @@ // ConstantPool::restore_unshareable_info (restores the archived // resolved_references array object). // - // MetaspaceShared::fixup_mapped_heap_regions() fills the empty + // HeapShared::fixup_mapped_heap_regions() fills the empty // spaces in the archived heap regions and may use // SystemDictionary::Object_klass(), so we can do this only after // Object_klass is resolved. See the above resolve_wk_klasses_through() // call. No mirror objects are accessed/restored in the above call. // Mirrors are restored after java.lang.Class is loaded. - MetaspaceShared::fixup_mapped_heap_regions(); + HeapShared::fixup_mapped_heap_regions(); // Initialize the constant pool for the Object_class Object_klass()->constants()->restore_unshareable_info(CHECK); diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/classfile/verificationType.cpp --- a/src/hotspot/share/classfile/verificationType.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/classfile/verificationType.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -111,7 +111,7 @@ VerificationType comp_from = from.get_component(context, CHECK_false); if (!comp_this.is_bogus() && !comp_from.is_bogus()) { return comp_this.is_component_assignable_from(comp_from, context, - from_field_is_protected, CHECK_false); + from_field_is_protected, THREAD); } } return false; diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/classfile/verificationType.hpp --- a/src/hotspot/share/classfile/verificationType.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/classfile/verificationType.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -312,7 +312,7 @@ case Short: return false; default: - return is_assignable_from(from, context, from_field_is_protected, CHECK_false); + return is_assignable_from(from, context, from_field_is_protected, THREAD); } } } diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/code/nmethod.cpp --- a/src/hotspot/share/code/nmethod.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/code/nmethod.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -2340,7 +2340,7 @@ for (int i = 0; i < oops_count(); i++) { oop o = oop_at(i); tty->print("#%3d: " INTPTR_FORMAT " ", i, p2i(o)); - if (o == (oop)Universe::non_oop_word()) { + if (o == Universe::non_oop_word()) { tty->print("non-oop word"); } else { if (o != NULL) { diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/code/relocInfo.cpp --- a/src/hotspot/share/code/relocInfo.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/code/relocInfo.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -574,7 +574,7 @@ oop oop_Relocation::oop_value() { oop v = *oop_addr(); // clean inline caches store a special pseudo-null - if (v == (oop)Universe::non_oop_word()) v = NULL; + if (v == Universe::non_oop_word()) v = NULL; return v; } diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/compiler/oopMap.cpp --- a/src/hotspot/share/compiler/oopMap.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/compiler/oopMap.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -350,7 +350,7 @@ // implicit null check is used in compiled code. // The narrow_oop_base could be NULL or be the address // of the page below heap depending on compressed oops mode. - if (base_loc != NULL && *base_loc != (oop)NULL && !Universe::is_narrow_oop_base(*base_loc)) { + if (base_loc != NULL && *base_loc != NULL && !Universe::is_narrow_oop_base(*base_loc)) { derived_oop_fn(base_loc, derived_loc); } oms.next(); @@ -371,7 +371,7 @@ guarantee(loc != NULL, "missing saved register"); if ( omv.type() == OopMapValue::oop_value ) { oop val = *loc; - if (val == (oop)NULL || Universe::is_narrow_oop_base(val)) { + if (val == NULL || Universe::is_narrow_oop_base(val)) { // Ignore NULL oops and decoded NULL narrow oops which // equal to Universe::narrow_oop_base when a narrow oop // implicit null check is used in compiled code. @@ -769,7 +769,7 @@ assert(Universe::heap()->is_in_or_null(*base_loc), "not an oop"); assert(derived_loc != base_loc, "Base and derived in same location"); if (_active) { - assert(*derived_loc != (oop)base_loc, "location already added"); + assert(*derived_loc != (void*)base_loc, "location already added"); assert(_list != NULL, "list must exist"); intptr_t offset = value_of_loc(derived_loc) - value_of_loc(base_loc); // This assert is invalid because derived pointers can be diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/gc/epsilon/epsilonHeap.cpp --- a/src/hotspot/share/gc/epsilon/epsilonHeap.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/gc/epsilon/epsilonHeap.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -118,6 +118,8 @@ } HeapWord* EpsilonHeap::allocate_work(size_t size) { + assert(is_object_aligned(size), "Allocation size should be aligned: " SIZE_FORMAT, size); + HeapWord* res = _space->par_allocate(size); while (res == NULL) { @@ -168,6 +170,7 @@ } } + assert(is_object_aligned(res), "Object should be aligned: " PTR_FORMAT, p2i(res)); return res; } @@ -211,6 +214,9 @@ // Always honor boundaries size = MAX2(min_size, MIN2(_max_tlab_size, size)); + // Always honor alignment + size = align_up(size, MinObjAlignment); + if (log_is_enabled(Trace, gc)) { ResourceMark rm; log_trace(gc)("TLAB size for \"%s\" (Requested: " SIZE_FORMAT "K, Min: " SIZE_FORMAT diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/gc/g1/g1Allocator.hpp --- a/src/hotspot/share/gc/g1/g1Allocator.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/gc/g1/g1Allocator.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -270,7 +270,7 @@ // Check if the object is in open archive static inline bool is_open_archive_object(oop object); // Check if the object is either in closed archive or open archive - static inline bool is_archive_object(oop object); + static inline bool is_archived_object(oop object); private: static bool _archive_check_enabled; diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/gc/g1/g1Allocator.inline.hpp --- a/src/hotspot/share/gc/g1/g1Allocator.inline.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/gc/g1/g1Allocator.inline.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -141,7 +141,7 @@ return (archive_check_enabled() && in_open_archive_range(object)); } -inline bool G1ArchiveAllocator::is_archive_object(oop object) { +inline bool G1ArchiveAllocator::is_archived_object(oop object) { return (archive_check_enabled() && (in_closed_archive_range(object) || in_open_archive_range(object))); } diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/gc/g1/g1CollectedHeap.cpp --- a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -80,7 +80,6 @@ #include "logging/log.hpp" #include "memory/allocation.hpp" #include "memory/iterator.hpp" -#include "memory/metaspaceShared.inline.hpp" #include "memory/resourceArea.hpp" #include "oops/access.inline.hpp" #include "oops/compressedOops.inline.hpp" @@ -827,7 +826,7 @@ oop G1CollectedHeap::materialize_archived_object(oop obj) { assert(obj != NULL, "archived obj is NULL"); - assert(MetaspaceShared::is_archive_object(obj), "must be archived object"); + assert(G1ArchiveAllocator::is_archived_object(obj), "must be archived object"); // Loading an archived object makes it strongly reachable. If it is // loaded during concurrent marking, it must be enqueued to the SATB diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/gc/g1/g1FullGCOopClosures.inline.hpp --- a/src/hotspot/share/gc/g1/g1FullGCOopClosures.inline.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/gc/g1/g1FullGCOopClosures.inline.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -68,7 +68,7 @@ oop obj = CompressedOops::decode_not_null(heap_oop); assert(Universe::heap()->is_in(obj), "should be in heap"); - if (G1ArchiveAllocator::is_archive_object(obj)) { + if (G1ArchiveAllocator::is_archived_object(obj)) { // We never forward archive objects. return; } diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/gc/g1/g1HeapVerifier.cpp --- a/src/hotspot/share/gc/g1/g1HeapVerifier.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/gc/g1/g1HeapVerifier.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -248,7 +248,7 @@ oop obj = RawAccess<>::oop_load(p); if (_hr->is_open_archive()) { - guarantee(obj == NULL || G1ArchiveAllocator::is_archive_object(obj), + guarantee(obj == NULL || G1ArchiveAllocator::is_archived_object(obj), "Archive object at " PTR_FORMAT " references a non-archive object at " PTR_FORMAT, p2i(p), p2i(obj)); } else { diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/gc/shared/barrierSet.hpp --- a/src/hotspot/share/gc/shared/barrierSet.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/gc/shared/barrierSet.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -130,6 +130,10 @@ virtual void on_thread_detach(JavaThread* thread) {} virtual void make_parsable(JavaThread* thread) {} +#ifdef CHECK_UNHANDLED_OOPS + virtual bool oop_equals_operator_allowed() { return true; } +#endif + public: // Print a description of the memory for the barrier set virtual void print_on(outputStream* st) const = 0; diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/gc/shared/collectedHeap.cpp --- a/src/hotspot/share/gc/shared/collectedHeap.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/gc/shared/collectedHeap.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -586,3 +586,7 @@ void CollectedHeap::deduplicate_string(oop str) { // Do nothing, unless overridden in subclass. } + +size_t CollectedHeap::obj_size(oop obj) const { + return obj->size(); +} diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/gc/shared/collectedHeap.hpp --- a/src/hotspot/share/gc/shared/collectedHeap.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/gc/shared/collectedHeap.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -576,6 +576,8 @@ virtual bool is_oop(oop object) const; + virtual size_t obj_size(oop obj) const; + // Non product verification and debugging. #ifndef PRODUCT // Support for PromotionFailureALot. Return true if it's time to cause a diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/gc/shared/memAllocator.cpp --- a/src/hotspot/share/gc/shared/memAllocator.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/gc/shared/memAllocator.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -198,15 +198,6 @@ return; } - assert(JavaThread::current()->heap_sampler().add_sampling_collector(), - "Should never return false."); - - // Only check if the sampler could actually sample something in this path. - assert(!JvmtiExport::should_post_sampled_object_alloc() || - !JvmtiSampledObjectAllocEventCollector::object_alloc_is_safe_to_sample() || - _thread->heap_sampler().sampling_collector_present(), - "Sampling collector not present."); - if (JvmtiExport::should_post_sampled_object_alloc()) { // If we want to be sampling, protect the allocated object with a Handle // before doing the callback. The callback is done in the destructor of @@ -219,8 +210,6 @@ _thread->heap_sampler().check_for_sampling(obj_h(), size_in_bytes, bytes_since_last); } - assert(JavaThread::current()->heap_sampler().remove_sampling_collector(), "Should never return false."); - if (_tlab_end_reset_for_sample || _allocated_tlab_size != 0) { _thread->tlab().set_sample_end(); } diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/gc/shared/referenceProcessor.cpp --- a/src/hotspot/share/gc/shared/referenceProcessor.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/gc/shared/referenceProcessor.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -284,7 +284,7 @@ // First _prev_next ref actually points into DiscoveredList (gross). oop new_next; - if (_next_discovered == _current_discovered) { + if (oopDesc::equals_raw(_next_discovered, _current_discovered)) { // At the end of the list, we should make _prev point to itself. // If _ref is the first ref, then _prev_next will be in the DiscoveredList, // and _prev will be NULL. @@ -474,7 +474,7 @@ ReferenceProcessor::clear_discovered_references(DiscoveredList& refs_list) { oop obj = NULL; oop next = refs_list.head(); - while (next != obj) { + while (!oopDesc::equals_raw(next, obj)) { obj = next; next = java_lang_ref_Reference::discovered(obj); java_lang_ref_Reference::set_discovered_raw(obj, NULL); @@ -746,7 +746,7 @@ ref_lists[to_idx].inc_length(refs_to_move); // Remove the chain from the from list. - if (move_tail == new_head) { + if (oopDesc::equals_raw(move_tail, new_head)) { // We found the end of the from list. ref_lists[from_idx].set_head(NULL); } else { diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/gc/shared/referenceProcessor.hpp --- a/src/hotspot/share/gc/shared/referenceProcessor.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/gc/shared/referenceProcessor.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -143,13 +143,13 @@ inline size_t removed() const { return _removed; } inline void move_to_next() { - if (_current_discovered == _next_discovered) { + if (oopDesc::equals_raw(_current_discovered, _next_discovered)) { // End of the list. _current_discovered = NULL; } else { _current_discovered = _next_discovered; } - assert(_current_discovered != _first_seen, "cyclic ref_list found"); + assert(!oopDesc::equals_raw(_current_discovered, _first_seen), "cyclic ref_list found"); _processed++; } }; diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/gc/shared/stringdedup/stringDedupTable.cpp --- a/src/hotspot/share/gc/shared/stringdedup/stringDedupTable.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/gc/shared/stringdedup/stringDedupTable.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -375,7 +375,7 @@ } typeArrayOop existing_value = lookup_or_add(value, latin1, hash); - if (existing_value == value) { + if (oopDesc::equals_raw(existing_value, value)) { // Same value, already known stat->inc_known(); return; diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/interpreter/linkResolver.cpp --- a/src/hotspot/share/interpreter/linkResolver.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/interpreter/linkResolver.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -793,24 +793,6 @@ check_method_loader_constraints(link_info, resolved_method, "method", CHECK_NULL); } - // For private method invocation we should only find the method in the resolved class. - // If that is not the case then we have a found a supertype method that we have nestmate - // access to. - if (resolved_method->is_private() && resolved_method->method_holder() != resolved_klass) { - ResourceMark rm(THREAD); - DEBUG_ONLY(bool is_nestmate = InstanceKlass::cast(link_info.current_klass())->has_nestmate_access_to(InstanceKlass::cast(resolved_klass), THREAD);) - assert(is_nestmate, "was only expecting nestmates to get here!"); - Exceptions::fthrow( - THREAD_AND_LOCATION, - vmSymbols::java_lang_NoSuchMethodError(), - "%s: method %s%s not found", - resolved_klass->external_name(), - resolved_method->name()->as_C_string(), - resolved_method->signature()->as_C_string() - ); - return NULL; - } - return resolved_method; } diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/interpreter/templateTable.hpp --- a/src/hotspot/share/interpreter/templateTable.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/interpreter/templateTable.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -36,6 +36,7 @@ // and the snippet generator, a template is assigned to each bytecode which can be // used to generate the bytecode's implementation if needed. +class BarrierSet; class InterpreterMacroAssembler; // A Template describes the properties of a code template for a given bytecode diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/jvmci/jvmciEnv.cpp --- a/src/hotspot/share/jvmci/jvmciEnv.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/jvmci/jvmciEnv.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -148,7 +148,7 @@ require_local); if (elem_klass != NULL) { // Now make an array for it - return elem_klass->array_klass(CHECK_NULL); + return elem_klass->array_klass(THREAD); } } diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/memory/filemap.cpp --- a/src/hotspot/share/memory/filemap.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/memory/filemap.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -191,7 +191,7 @@ _shared_path_table_size = mapinfo->_shared_path_table_size; _shared_path_table = mapinfo->_shared_path_table; _shared_path_entry_size = mapinfo->_shared_path_entry_size; - if (MetaspaceShared::is_heap_object_archiving_allowed()) { + if (HeapShared::is_heap_object_archiving_allowed()) { _heap_reserved = Universe::heap()->reserved_region(); } @@ -908,7 +908,7 @@ // regions may be added. GC may mark and update references in the mapped // open archive objects. void FileMapInfo::map_heap_regions_impl() { - if (!MetaspaceShared::is_heap_object_archiving_allowed()) { + if (!HeapShared::is_heap_object_archiving_allowed()) { log_info(cds)("CDS heap data is being ignored. UseG1GC, " "UseCompressedOops and UseCompressedClassPointers are required."); return; @@ -1000,7 +1000,7 @@ MetaspaceShared::max_open_archive_heap_region, &num_open_archive_heap_ranges, true /* open */)) { - MetaspaceShared::set_open_archive_heap_region_mapped(); + HeapShared::set_open_archive_heap_region_mapped(); } } } @@ -1014,7 +1014,7 @@ assert(string_ranges == NULL && num_string_ranges == 0, "sanity"); } - if (!MetaspaceShared::open_archive_heap_region_mapped()) { + if (!HeapShared::open_archive_heap_region_mapped()) { assert(open_archive_heap_ranges == NULL && num_open_archive_heap_ranges == 0, "sanity"); } } @@ -1160,7 +1160,7 @@ if ((MetaspaceShared::is_string_region(i) && !StringTable::shared_string_mapped()) || (MetaspaceShared::is_open_archive_heap_region(i) && - !MetaspaceShared::open_archive_heap_region_mapped())) { + !HeapShared::open_archive_heap_region_mapped())) { return true; // archived heap data is not mapped } const char* buf = region_addr(i); diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/memory/heapShared.cpp --- a/src/hotspot/share/memory/heapShared.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/memory/heapShared.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -24,25 +24,200 @@ #include "precompiled.hpp" #include "classfile/javaClasses.inline.hpp" +#include "classfile/stringTable.hpp" #include "classfile/symbolTable.hpp" #include "classfile/vmSymbols.hpp" #include "logging/log.hpp" #include "logging/logMessage.hpp" #include "logging/logStream.hpp" +#include "memory/filemap.hpp" #include "memory/heapShared.inline.hpp" #include "memory/iterator.inline.hpp" #include "memory/metadataFactory.hpp" #include "memory/metaspaceClosure.hpp" -#include "memory/metaspaceShared.inline.hpp" #include "memory/resourceArea.hpp" #include "oops/compressedOops.inline.hpp" #include "oops/oop.inline.hpp" #include "runtime/fieldDescriptor.inline.hpp" +#include "runtime/safepointVerifiers.hpp" #include "utilities/bitMap.inline.hpp" +#if INCLUDE_G1GC +#include "gc/g1/g1CollectedHeap.hpp" +#endif #if INCLUDE_CDS_JAVA_HEAP + +bool HeapShared::_open_archive_heap_region_mapped = false; +bool HeapShared::_archive_heap_region_fixed = false; + address HeapShared::_narrow_oop_base; int HeapShared::_narrow_oop_shift; + +//////////////////////////////////////////////////////////////// +// +// Java heap object archiving support +// +//////////////////////////////////////////////////////////////// +void HeapShared::fixup_mapped_heap_regions() { + FileMapInfo *mapinfo = FileMapInfo::current_info(); + mapinfo->fixup_mapped_heap_regions(); + set_archive_heap_region_fixed(); +} + +unsigned HeapShared::oop_hash(oop const& p) { + assert(!p->mark()->has_bias_pattern(), + "this object should never have been locked"); // so identity_hash won't safepoin + unsigned hash = (unsigned)p->identity_hash(); + return hash; +} + +HeapShared::ArchivedObjectCache* HeapShared::_archived_object_cache = NULL; +oop HeapShared::find_archived_heap_object(oop obj) { + assert(DumpSharedSpaces, "dump-time only"); + ArchivedObjectCache* cache = archived_object_cache(); + oop* p = cache->get(obj); + if (p != NULL) { + return *p; + } else { + return NULL; + } +} + +oop HeapShared::archive_heap_object(oop obj, Thread* THREAD) { + assert(DumpSharedSpaces, "dump-time only"); + + oop ao = find_archived_heap_object(obj); + if (ao != NULL) { + // already archived + return ao; + } + + int len = obj->size(); + if (G1CollectedHeap::heap()->is_archive_alloc_too_large(len)) { + log_debug(cds, heap)("Cannot archive, object (" PTR_FORMAT ") is too large: " SIZE_FORMAT, + p2i(obj), (size_t)obj->size()); + return NULL; + } + + // Pre-compute object identity hash at CDS dump time. + obj->identity_hash(); + + oop archived_oop = (oop)G1CollectedHeap::heap()->archive_mem_allocate(len); + if (archived_oop != NULL) { + Copy::aligned_disjoint_words((HeapWord*)obj, (HeapWord*)archived_oop, len); + MetaspaceShared::relocate_klass_ptr(archived_oop); + ArchivedObjectCache* cache = archived_object_cache(); + cache->put(obj, archived_oop); + log_debug(cds, heap)("Archived heap object " PTR_FORMAT " ==> " PTR_FORMAT, + p2i(obj), p2i(archived_oop)); + } else { + log_error(cds, heap)( + "Cannot allocate space for object " PTR_FORMAT " in archived heap region", + p2i(obj)); + vm_exit(1); + } + return archived_oop; +} + +oop HeapShared::materialize_archived_object(narrowOop v) { + assert(archive_heap_region_fixed(), + "must be called after archive heap regions are fixed"); + if (!CompressedOops::is_null(v)) { + oop obj = HeapShared::decode_from_archive(v); + return G1CollectedHeap::heap()->materialize_archived_object(obj); + } + return NULL; +} + +void HeapShared::archive_klass_objects(Thread* THREAD) { + GrowableArray* klasses = MetaspaceShared::collected_klasses(); + assert(klasses != NULL, "sanity"); + for (int i = 0; i < klasses->length(); i++) { + Klass* k = klasses->at(i); + + // archive mirror object + java_lang_Class::archive_mirror(k, CHECK); + + // archive the resolved_referenes array + if (k->is_instance_klass()) { + InstanceKlass* ik = InstanceKlass::cast(k); + ik->constants()->archive_resolved_references(THREAD); + } + } +} + +void HeapShared::archive_java_heap_objects(GrowableArray *closed, + GrowableArray *open) { + if (!is_heap_object_archiving_allowed()) { + if (log_is_enabled(Info, cds)) { + log_info(cds)( + "Archived java heap is not supported as UseG1GC, " + "UseCompressedOops and UseCompressedClassPointers are required." + "Current settings: UseG1GC=%s, UseCompressedOops=%s, UseCompressedClassPointers=%s.", + BOOL_TO_STR(UseG1GC), BOOL_TO_STR(UseCompressedOops), + BOOL_TO_STR(UseCompressedClassPointers)); + } + return; + } + + { + NoSafepointVerifier nsv; + + // Cache for recording where the archived objects are copied to + create_archived_object_cache(); + + tty->print_cr("Dumping objects to closed archive heap region ..."); + NOT_PRODUCT(StringTable::verify()); + copy_closed_archive_heap_objects(closed); + + tty->print_cr("Dumping objects to open archive heap region ..."); + copy_open_archive_heap_objects(open); + + destroy_archived_object_cache(); + } + + G1HeapVerifier::verify_archive_regions(); +} + +void HeapShared::copy_closed_archive_heap_objects( + GrowableArray * closed_archive) { + assert(is_heap_object_archiving_allowed(), "Cannot archive java heap objects"); + + Thread* THREAD = Thread::current(); + G1CollectedHeap::heap()->begin_archive_alloc_range(); + + // Archive interned string objects + StringTable::write_to_archive(); + + G1CollectedHeap::heap()->end_archive_alloc_range(closed_archive, + os::vm_allocation_granularity()); +} + +void HeapShared::copy_open_archive_heap_objects( + GrowableArray * open_archive) { + assert(is_heap_object_archiving_allowed(), "Cannot archive java heap objects"); + + Thread* THREAD = Thread::current(); + G1CollectedHeap::heap()->begin_archive_alloc_range(true /* open */); + + java_lang_Class::archive_basic_type_mirrors(THREAD); + + archive_klass_objects(THREAD); + + archive_object_subgraphs(THREAD); + + G1CollectedHeap::heap()->end_archive_alloc_range(open_archive, + os::vm_allocation_granularity()); +} + +void HeapShared::init_narrow_oop_decoding(address base, int shift) { + _narrow_oop_base = base; + _narrow_oop_shift = shift; +} + +// +// Subgraph archiving support +// HeapShared::DumpTimeKlassSubGraphInfoTable* HeapShared::_dump_time_subgraph_info_table = NULL; HeapShared::RunTimeKlassSubGraphInfoTable HeapShared::_run_time_subgraph_info_table; @@ -214,7 +389,7 @@ } void HeapShared::initialize_from_archived_subgraph(Klass* k) { - if (!MetaspaceShared::open_archive_heap_region_mapped()) { + if (!open_archive_heap_region_mapped()) { return; // nothing to do } assert(!DumpSharedSpaces, "Should not be called with DumpSharedSpaces"); @@ -274,8 +449,7 @@ // The object refereced by the field becomes 'known' by GC from this // point. All objects in the subgraph reachable from the object are // also 'known' by GC. - oop v = MetaspaceShared::materialize_archived_object( - entry_field_records->at(i+1)); + oop v = materialize_archived_object(entry_field_records->at(i+1)); m->obj_field_put(field_offset, v); i += 2; @@ -310,7 +484,7 @@ template void do_oop_work(T *p) { oop obj = RawAccess<>::oop_load(p); if (!CompressedOops::is_null(obj)) { - assert(!MetaspaceShared::is_archive_object(obj), + assert(!HeapShared::is_archived_object(obj), "original objects must not point to archived objects"); size_t field_delta = pointer_delta(p, _orig_referencing_obj, sizeof(char)); @@ -329,7 +503,7 @@ oop archived = HeapShared::archive_reachable_objects_from(_level + 1, _subgraph_info, obj, THREAD); assert(archived != NULL, "VM should have exited with unarchivable objects for _level > 1"); - assert(MetaspaceShared::is_archive_object(archived), "must be"); + assert(HeapShared::is_archived_object(archived), "must be"); if (!_record_klasses_only) { // Update the reference in the archived copy of the referencing object. @@ -347,7 +521,7 @@ // (3) Record the klasses of all orig_obj and all reachable objects. oop HeapShared::archive_reachable_objects_from(int level, KlassSubGraphInfo* subgraph_info, oop orig_obj, TRAPS) { assert(orig_obj != NULL, "must be"); - assert(!MetaspaceShared::is_archive_object(orig_obj), "sanity"); + assert(!is_archived_object(orig_obj), "sanity"); // java.lang.Class instances cannot be included in an archived // object sub-graph. @@ -356,7 +530,7 @@ vm_exit(1); } - oop archived_obj = MetaspaceShared::find_archived_heap_object(orig_obj); + oop archived_obj = find_archived_heap_object(orig_obj); if (java_lang_String::is_instance(orig_obj) && archived_obj != NULL) { // To save time, don't walk strings that are already archived. They just contain // pointers to a type array, whose klass doesn't need to be recorded. @@ -373,7 +547,7 @@ bool record_klasses_only = (archived_obj != NULL); if (archived_obj == NULL) { ++_num_new_archived_objs; - archived_obj = MetaspaceShared::archive_heap_object(orig_obj, THREAD); + archived_obj = archive_heap_object(orig_obj, THREAD); if (archived_obj == NULL) { // Skip archiving the sub-graph referenced from the current entry field. ResourceMark rm; @@ -447,7 +621,7 @@ assert(k->is_shared_boot_class(), "must be boot class"); oop m = k->java_mirror(); - oop archived_m = MetaspaceShared::find_archived_heap_object(m); + oop archived_m = find_archived_heap_object(m); if (CompressedOops::is_null(archived_m)) { return; } @@ -508,7 +682,7 @@ assert(k->is_shared_boot_class(), "must be boot class"); oop m = k->java_mirror(); - oop archived_m = MetaspaceShared::find_archived_heap_object(m); + oop archived_m = find_archived_heap_object(m); if (CompressedOops::is_null(archived_m)) { return; } @@ -519,7 +693,7 @@ } void HeapShared::verify_subgraph_from(oop orig_obj) { - oop archived_obj = MetaspaceShared::find_archived_heap_object(orig_obj); + oop archived_obj = find_archived_heap_object(orig_obj); if (archived_obj == NULL) { // It's OK for the root of a subgraph to be not archived. See comments in // archive_reachable_objects_from(). @@ -546,11 +720,11 @@ set_has_been_seen_during_subgraph_recording(obj); if (is_archived) { - assert(MetaspaceShared::is_archive_object(obj), "must be"); - assert(MetaspaceShared::find_archived_heap_object(obj) == NULL, "must be"); + assert(is_archived_object(obj), "must be"); + assert(find_archived_heap_object(obj) == NULL, "must be"); } else { - assert(!MetaspaceShared::is_archive_object(obj), "must be"); - assert(MetaspaceShared::find_archived_heap_object(obj) != NULL, "must be"); + assert(!is_archived_object(obj), "must be"); + assert(find_archived_heap_object(obj) != NULL, "must be"); } VerifySharedOopClosure walker(is_archived); @@ -670,7 +844,7 @@ } } -void HeapShared::archive_static_fields(Thread* THREAD) { +void HeapShared::archive_object_subgraphs(Thread* THREAD) { // For each class X that has one or more archived fields: // [1] Dump the subgraph of each archived field // [2] Create a list of all the class of the objects that can be reached @@ -767,11 +941,6 @@ return oopmap; } -void HeapShared::init_narrow_oop_decoding(address base, int shift) { - _narrow_oop_base = base; - _narrow_oop_shift = shift; -} - // Patch all the embedded oop pointers inside an archived heap region, // to be consistent with the runtime oop encoding. class PatchEmbeddedPointers: public BitMapClosure { diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/memory/heapShared.hpp --- a/src/hotspot/share/memory/heapShared.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/memory/heapShared.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -107,7 +107,22 @@ class HeapShared: AllStatic { friend class VerifySharedOopClosure; private: + #if INCLUDE_CDS_JAVA_HEAP + static bool _open_archive_heap_region_mapped; + static bool _archive_heap_region_fixed; + + static bool oop_equals(oop const& p1, oop const& p2) { + return oopDesc::equals(p1, p2); + } + static unsigned oop_hash(oop const& p); + + typedef ResourceHashtable ArchivedObjectCache; + static ArchivedObjectCache* _archived_object_cache; static bool klass_equals(Klass* const& p1, Klass* const& p2) { return primitive_equals(p1, p2); @@ -164,14 +179,6 @@ static address _narrow_oop_base; static int _narrow_oop_shift; - static bool oop_equals(oop const& p1, oop const& p2) { - return primitive_equals(p1, p2); - } - - static unsigned oop_hash(oop const& p) { - return primitive_hash
((address)p); - } - typedef ResourceHashtable *closed, + GrowableArray *open); + static void copy_closed_archive_heap_objects(GrowableArray * closed_archive); + static void copy_open_archive_heap_objects(GrowableArray * open_archive); #endif // INCLUDE_CDS_JAVA_HEAP + public: + static bool is_heap_object_archiving_allowed() { + CDS_JAVA_HEAP_ONLY(return (UseG1GC && UseCompressedOops && UseCompressedClassPointers);) + NOT_CDS_JAVA_HEAP(return false;) + } + + static void set_open_archive_heap_region_mapped() { + CDS_JAVA_HEAP_ONLY(_open_archive_heap_region_mapped = true); + NOT_CDS_JAVA_HEAP_RETURN; + } + static bool open_archive_heap_region_mapped() { + CDS_JAVA_HEAP_ONLY(return _open_archive_heap_region_mapped); + NOT_CDS_JAVA_HEAP_RETURN_(false); + } + + static void fixup_mapped_heap_regions() NOT_CDS_JAVA_HEAP_RETURN; + + inline static bool is_archived_object(oop p) NOT_CDS_JAVA_HEAP_RETURN_(false); + + static void archive_java_heap_objects() NOT_CDS_JAVA_HEAP_RETURN; + static char* read_archived_subgraph_infos(char* buffer) NOT_CDS_JAVA_HEAP_RETURN_(buffer); static void write_archived_subgraph_infos() NOT_CDS_JAVA_HEAP_RETURN; static void initialize_from_archived_subgraph(Klass* k) NOT_CDS_JAVA_HEAP_RETURN; @@ -225,7 +284,7 @@ size_t oopmap_in_bits) NOT_CDS_JAVA_HEAP_RETURN; static void init_archivable_static_fields(Thread* THREAD) NOT_CDS_JAVA_HEAP_RETURN; - static void archive_static_fields(Thread* THREAD) NOT_CDS_JAVA_HEAP_RETURN; + static void archive_object_subgraphs(Thread* THREAD) NOT_CDS_JAVA_HEAP_RETURN; static void write_subgraph_info_table() NOT_CDS_JAVA_HEAP_RETURN; static void serialize_subgraph_info_table_header(SerializeClosure* soc) NOT_CDS_JAVA_HEAP_RETURN; diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/memory/heapShared.inline.hpp --- a/src/hotspot/share/memory/heapShared.inline.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/memory/heapShared.inline.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -27,9 +27,16 @@ #include "oops/compressedOops.inline.hpp" #include "memory/heapShared.hpp" +#if INCLUDE_G1GC +#include "gc/g1/g1Allocator.inline.hpp" +#endif #if INCLUDE_CDS_JAVA_HEAP +bool HeapShared::is_archived_object(oop p) { + return (p == NULL) ? false : G1ArchiveAllocator::is_archived_object(p); +} + inline oop HeapShared::decode_from_archive(narrowOop v) { assert(!CompressedOops::is_null(v), "narrow oop value can never be zero"); oop result = (oop)(void*)((uintptr_t)_narrow_oop_base + ((uintptr_t)v << _narrow_oop_shift)); diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/memory/metaspaceShared.cpp --- a/src/hotspot/share/memory/metaspaceShared.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/memory/metaspaceShared.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -75,8 +75,6 @@ bool MetaspaceShared::_has_error_classes; bool MetaspaceShared::_archive_loading_failed = false; bool MetaspaceShared::_remapped_readwrite = false; -bool MetaspaceShared::_open_archive_heap_region_mapped = false; -bool MetaspaceShared::_archive_heap_region_fixed = false; address MetaspaceShared::_cds_i2i_entry_code_buffers = NULL; size_t MetaspaceShared::_cds_i2i_entry_code_buffers_size = 0; size_t MetaspaceShared::_core_spaces_size = 0; @@ -108,7 +106,7 @@ // [5] C++ vtables are copied into the md region. // [6] Original class files are copied into the od region. // -// The s0/s1 and oa0/oa1 regions are populated inside MetaspaceShared::dump_java_heap_objects. +// The s0/s1 and oa0/oa1 regions are populated inside HeapShared::archive_java_heap_objects. // Their layout is independent of the other 5 regions. class DumpRegion { @@ -454,6 +452,10 @@ // is run at a safepoint just before exit, this is the entire set of classes. static GrowableArray* _global_klass_objects; +GrowableArray* MetaspaceShared::collected_klasses() { + return _global_klass_objects; +} + static void collect_array_classes(Klass* k) { _global_klass_objects->append_if_missing(k); if (k->is_array_klass()) { @@ -512,7 +514,7 @@ } static void clear_basic_type_mirrors() { - assert(!MetaspaceShared::is_heap_object_archiving_allowed(), "Sanity"); + assert(!HeapShared::is_heap_object_archiving_allowed(), "Sanity"); Universe::set_int_mirror(NULL); Universe::set_float_mirror(NULL); Universe::set_double_mirror(NULL); @@ -850,7 +852,7 @@ if (*o == NULL) { _dump_region->append_intptr_t(0); } else { - assert(MetaspaceShared::is_heap_object_archiving_allowed(), + assert(HeapShared::is_heap_object_archiving_allowed(), "Archiving heap object is not allowed"); _dump_region->append_intptr_t( (intptr_t)CompressedOops::encode_not_null(*o)); @@ -1329,7 +1331,7 @@ SystemDictionary::reorder_dictionary_for_sharing(); tty->print("Removing java_mirror ... "); - if (!MetaspaceShared::is_heap_object_archiving_allowed()) { + if (!HeapShared::is_heap_object_archiving_allowed()) { clear_basic_type_mirrors(); } remove_java_mirror_in_classes(); @@ -1798,47 +1800,18 @@ #if INCLUDE_CDS_JAVA_HEAP void VM_PopulateDumpSharedSpace::dump_java_heap_objects() { - if (!MetaspaceShared::is_heap_object_archiving_allowed()) { - if (log_is_enabled(Info, cds)) { - log_info(cds)( - "Archived java heap is not supported as UseG1GC, " - "UseCompressedOops and UseCompressedClassPointers are required." - "Current settings: UseG1GC=%s, UseCompressedOops=%s, UseCompressedClassPointers=%s.", - BOOL_TO_STR(UseG1GC), BOOL_TO_STR(UseCompressedOops), - BOOL_TO_STR(UseCompressedClassPointers)); - } - return; - } - - { - NoSafepointVerifier nsv; - - // Cache for recording where the archived objects are copied to - MetaspaceShared::create_archive_object_cache(); - - tty->print_cr("Dumping objects to closed archive heap region ..."); - NOT_PRODUCT(StringTable::verify()); - // The closed space has maximum two regions. See FileMapInfo::write_archive_heap_regions() for details. - _closed_archive_heap_regions = new GrowableArray(2); - MetaspaceShared::dump_closed_archive_heap_objects(_closed_archive_heap_regions); - - tty->print_cr("Dumping objects to open archive heap region ..."); - _open_archive_heap_regions = new GrowableArray(2); - MetaspaceShared::dump_open_archive_heap_objects(_open_archive_heap_regions); - - MetaspaceShared::destroy_archive_object_cache(); - } - - G1HeapVerifier::verify_archive_regions(); - - { - ArchiveCompactor::OtherROAllocMark mark; - HeapShared::write_subgraph_info_table(); - } + // The closed and open archive heap space has maximum two regions. + // See FileMapInfo::write_archive_heap_regions() for details. + _closed_archive_heap_regions = new GrowableArray(2); + _open_archive_heap_regions = new GrowableArray(2); + HeapShared::archive_java_heap_objects(_closed_archive_heap_regions, + _open_archive_heap_regions); + ArchiveCompactor::OtherROAllocMark mark; + HeapShared::write_subgraph_info_table(); } void VM_PopulateDumpSharedSpace::dump_archive_heap_oopmaps() { - if (MetaspaceShared::is_heap_object_archiving_allowed()) { + if (HeapShared::is_heap_object_archiving_allowed()) { _closed_archive_heap_oopmaps = new GrowableArray(2); dump_archive_heap_oopmaps(_closed_archive_heap_regions, _closed_archive_heap_oopmaps); @@ -1866,124 +1839,6 @@ oopmaps->append(info); } } - -void MetaspaceShared::dump_closed_archive_heap_objects( - GrowableArray * closed_archive) { - assert(is_heap_object_archiving_allowed(), "Cannot dump java heap objects"); - - Thread* THREAD = Thread::current(); - G1CollectedHeap::heap()->begin_archive_alloc_range(); - - // Archive interned string objects - StringTable::write_to_archive(); - - G1CollectedHeap::heap()->end_archive_alloc_range(closed_archive, - os::vm_allocation_granularity()); -} - -void MetaspaceShared::dump_open_archive_heap_objects( - GrowableArray * open_archive) { - assert(UseG1GC, "Only support G1 GC"); - assert(UseCompressedOops && UseCompressedClassPointers, - "Only support UseCompressedOops and UseCompressedClassPointers enabled"); - - Thread* THREAD = Thread::current(); - G1CollectedHeap::heap()->begin_archive_alloc_range(true /* open */); - - java_lang_Class::archive_basic_type_mirrors(THREAD); - - MetaspaceShared::archive_klass_objects(THREAD); - - HeapShared::archive_static_fields(THREAD); - - G1CollectedHeap::heap()->end_archive_alloc_range(open_archive, - os::vm_allocation_granularity()); -} - -unsigned MetaspaceShared::obj_hash(oop const& p) { - assert(!p->mark()->has_bias_pattern(), - "this object should never have been locked"); // so identity_hash won't safepoint - unsigned hash = (unsigned)p->identity_hash(); - return hash; -} - -MetaspaceShared::ArchivedObjectCache* MetaspaceShared::_archive_object_cache = NULL; -oop MetaspaceShared::find_archived_heap_object(oop obj) { - assert(DumpSharedSpaces, "dump-time only"); - ArchivedObjectCache* cache = MetaspaceShared::archive_object_cache(); - oop* p = cache->get(obj); - if (p != NULL) { - return *p; - } else { - return NULL; - } -} - -oop MetaspaceShared::archive_heap_object(oop obj, Thread* THREAD) { - assert(DumpSharedSpaces, "dump-time only"); - - oop ao = find_archived_heap_object(obj); - if (ao != NULL) { - // already archived - return ao; - } - - int len = obj->size(); - if (G1CollectedHeap::heap()->is_archive_alloc_too_large(len)) { - log_debug(cds, heap)("Cannot archive, object (" PTR_FORMAT ") is too large: " SIZE_FORMAT, - p2i(obj), (size_t)obj->size()); - return NULL; - } - - int hash = obj->identity_hash(); - oop archived_oop = (oop)G1CollectedHeap::heap()->archive_mem_allocate(len); - if (archived_oop != NULL) { - Copy::aligned_disjoint_words((HeapWord*)obj, (HeapWord*)archived_oop, len); - relocate_klass_ptr(archived_oop); - ArchivedObjectCache* cache = MetaspaceShared::archive_object_cache(); - cache->put(obj, archived_oop); - log_debug(cds, heap)("Archived heap object " PTR_FORMAT " ==> " PTR_FORMAT, - p2i(obj), p2i(archived_oop)); - } else { - log_error(cds, heap)( - "Cannot allocate space for object " PTR_FORMAT " in archived heap region", - p2i(obj)); - vm_exit(1); - } - return archived_oop; -} - -oop MetaspaceShared::materialize_archived_object(narrowOop v) { - assert(archive_heap_region_fixed(), - "must be called after archive heap regions are fixed"); - if (!CompressedOops::is_null(v)) { - oop obj = HeapShared::decode_from_archive(v); - return G1CollectedHeap::heap()->materialize_archived_object(obj); - } - return NULL; -} - -void MetaspaceShared::archive_klass_objects(Thread* THREAD) { - int i; - for (i = 0; i < _global_klass_objects->length(); i++) { - Klass* k = _global_klass_objects->at(i); - - // archive mirror object - java_lang_Class::archive_mirror(k, CHECK); - - // archive the resolved_referenes array - if (k->is_instance_klass()) { - InstanceKlass* ik = InstanceKlass::cast(k); - ik->constants()->archive_resolved_references(THREAD); - } - } -} - -void MetaspaceShared::fixup_mapped_heap_regions() { - FileMapInfo *mapinfo = FileMapInfo::current_info(); - mapinfo->fixup_mapped_heap_regions(); - set_archive_heap_region_fixed(); -} #endif // INCLUDE_CDS_JAVA_HEAP // Closure for serializing initialization data in from a data area @@ -2023,12 +1878,12 @@ void do_oop(oop *p) { narrowOop o = (narrowOop)nextPtr(); - if (o == 0 || !MetaspaceShared::open_archive_heap_region_mapped()) { + if (o == 0 || !HeapShared::open_archive_heap_region_mapped()) { p = NULL; } else { - assert(MetaspaceShared::is_heap_object_archiving_allowed(), + assert(HeapShared::is_heap_object_archiving_allowed(), "Archived heap object is not allowed"); - assert(MetaspaceShared::open_archive_heap_region_mapped(), + assert(HeapShared::open_archive_heap_region_mapped(), "Open archive heap region is not mapped"); *p = HeapShared::decode_from_archive(o); } diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/memory/metaspaceShared.hpp --- a/src/hotspot/share/memory/metaspaceShared.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/memory/metaspaceShared.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -58,8 +58,6 @@ static bool _has_error_classes; static bool _archive_loading_failed; static bool _remapped_readwrite; - static bool _open_archive_heap_region_mapped; - static bool _archive_heap_region_fixed; static address _cds_i2i_entry_code_buffers; static size_t _cds_i2i_entry_code_buffers_size; static size_t _core_spaces_size; @@ -93,63 +91,7 @@ static int preload_classes(const char * class_list_path, TRAPS) NOT_CDS_RETURN_(0); -#if INCLUDE_CDS_JAVA_HEAP - private: - static bool obj_equals(oop const& p1, oop const& p2) { - return p1 == p2; - } - static unsigned obj_hash(oop const& p); - - typedef ResourceHashtable ArchivedObjectCache; - static ArchivedObjectCache* _archive_object_cache; - - public: - static ArchivedObjectCache* archive_object_cache() { - return _archive_object_cache; - } - static oop find_archived_heap_object(oop obj); - static oop archive_heap_object(oop obj, Thread* THREAD); - static oop materialize_archived_object(narrowOop v); - static void archive_klass_objects(Thread* THREAD); - - static void set_archive_heap_region_fixed() { - _archive_heap_region_fixed = true; - } - - static bool archive_heap_region_fixed() { - return _archive_heap_region_fixed; - } -#endif - - inline static bool is_archive_object(oop p) NOT_CDS_JAVA_HEAP_RETURN_(false); - - static bool is_heap_object_archiving_allowed() { - CDS_JAVA_HEAP_ONLY(return (UseG1GC && UseCompressedOops && UseCompressedClassPointers);) - NOT_CDS_JAVA_HEAP(return false;) - } - static void create_archive_object_cache() { - CDS_JAVA_HEAP_ONLY(_archive_object_cache = new (ResourceObj::C_HEAP, mtClass)ArchivedObjectCache();); - } - static void destroy_archive_object_cache() { - CDS_JAVA_HEAP_ONLY(delete _archive_object_cache; _archive_object_cache = NULL;); - } - static void fixup_mapped_heap_regions() NOT_CDS_JAVA_HEAP_RETURN; - - static void dump_closed_archive_heap_objects(GrowableArray * closed_archive) NOT_CDS_JAVA_HEAP_RETURN; - - static void dump_open_archive_heap_objects(GrowableArray * open_archive) NOT_CDS_JAVA_HEAP_RETURN; - static void set_open_archive_heap_region_mapped() { - CDS_JAVA_HEAP_ONLY(_open_archive_heap_region_mapped = true); - NOT_CDS_JAVA_HEAP_RETURN; - } - static bool open_archive_heap_region_mapped() { - CDS_JAVA_HEAP_ONLY(return _open_archive_heap_region_mapped); - NOT_CDS_JAVA_HEAP_RETURN_(false); - } + static GrowableArray* collected_klasses(); static ReservedSpace* shared_rs() { CDS_ONLY(return &_shared_rs); diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/memory/universe.cpp --- a/src/hotspot/share/memory/universe.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/memory/universe.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -39,6 +39,7 @@ #include "interpreter/interpreter.hpp" #include "logging/log.hpp" #include "logging/logStream.hpp" +#include "memory/heapShared.hpp" #include "memory/filemap.hpp" #include "memory/metadataFactory.hpp" #include "memory/metaspaceClosure.hpp" @@ -242,8 +243,15 @@ f->do_ptr((void**)&_objectArrayKlassObj); #if INCLUDE_CDS_JAVA_HEAP - // The mirrors are NULL if MetaspaceShared::is_heap_object_archiving_allowed - // is false. +#ifdef ASSERT + if (DumpSharedSpaces && !HeapShared::is_heap_object_archiving_allowed()) { + assert(_int_mirror == NULL && _float_mirror == NULL && + _double_mirror == NULL && _byte_mirror == NULL && + _bool_mirror == NULL && _char_mirror == NULL && + _long_mirror == NULL && _short_mirror == NULL && + _void_mirror == NULL, "mirrors should be NULL"); + } +#endif f->do_oop(&_int_mirror); f->do_oop(&_float_mirror); f->do_oop(&_double_mirror); @@ -422,9 +430,9 @@ void Universe::initialize_basic_type_mirrors(TRAPS) { #if INCLUDE_CDS_JAVA_HEAP if (UseSharedSpaces && - MetaspaceShared::open_archive_heap_region_mapped() && + HeapShared::open_archive_heap_region_mapped() && _int_mirror != NULL) { - assert(MetaspaceShared::is_heap_object_archiving_allowed(), "Sanity"); + assert(HeapShared::is_heap_object_archiving_allowed(), "Sanity"); assert(_float_mirror != NULL && _double_mirror != NULL && _byte_mirror != NULL && _byte_mirror != NULL && _bool_mirror != NULL && _char_mirror != NULL && diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/oops/access.hpp --- a/src/hotspot/share/oops/access.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/oops/access.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -277,7 +277,7 @@ } static bool equals(oop o1, oop o2) { - verify_decorators(); + verify_decorators(); return AccessInternal::equals(o1, o2); } }; diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/oops/accessBackend.hpp --- a/src/hotspot/share/oops/accessBackend.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/oops/accessBackend.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -410,7 +410,7 @@ static oop resolve(oop obj) { return obj; } - static bool equals(oop o1, oop o2) { return o1 == o2; } + static bool equals(oop o1, oop o2) { return (void*)o1 == (void*)o2; } }; // Below is the implementation of the first 4 steps of the template pipeline: diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/oops/constantPool.cpp --- a/src/hotspot/share/oops/constantPool.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/oops/constantPool.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -33,6 +33,7 @@ #include "interpreter/linkResolver.hpp" #include "memory/allocation.inline.hpp" #include "memory/heapInspection.hpp" +#include "memory/heapShared.hpp" #include "memory/metadataFactory.hpp" #include "memory/metaspaceClosure.hpp" #include "memory/metaspaceShared.hpp" @@ -295,7 +296,7 @@ } } - oop archived = MetaspaceShared::archive_heap_object(rr, THREAD); + oop archived = HeapShared::archive_heap_object(rr, THREAD); // If the resolved references array is not archived (too large), // the 'archived' object is NULL. No need to explicitly check // the return value of archive_heap_object here. At runtime, the @@ -340,7 +341,7 @@ if (SystemDictionary::Object_klass_loaded()) { ClassLoaderData* loader_data = pool_holder()->class_loader_data(); #if INCLUDE_CDS_JAVA_HEAP - if (MetaspaceShared::open_archive_heap_region_mapped() && + if (HeapShared::open_archive_heap_region_mapped() && _cache->archived_references() != NULL) { oop archived = _cache->archived_references(); // Create handle for the archived resolved reference array object @@ -373,7 +374,7 @@ // If archiving heap objects is not allowed, clear the resolved references. // Otherwise, it is cleared after the resolved references array is cached // (see archive_resolved_references()). - if (!MetaspaceShared::is_heap_object_archiving_allowed()) { + if (!HeapShared::is_heap_object_archiving_allowed()) { set_resolved_references(NULL); } @@ -471,7 +472,7 @@ // or any internal exception fields such as cause or stacktrace. But since the // detail message is often a class name or other literal string, we will repeat it // if we can find it in the symbol table. - throw_resolution_error(this_cp, which, CHECK_0); + throw_resolution_error(this_cp, which, CHECK_NULL); ShouldNotReachHere(); } diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/oops/cpCache.cpp --- a/src/hotspot/share/oops/cpCache.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/oops/cpCache.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -30,6 +30,7 @@ #include "interpreter/linkResolver.hpp" #include "interpreter/rewriter.hpp" #include "logging/log.hpp" +#include "memory/heapShared.hpp" #include "memory/metadataFactory.hpp" #include "memory/metaspaceClosure.hpp" #include "memory/metaspaceShared.hpp" @@ -777,7 +778,7 @@ if (CompressedOops::is_null(_archived_references)) { return NULL; } - return MetaspaceShared::materialize_archived_object(_archived_references); + return HeapShared::materialize_archived_object(_archived_references); } void ConstantPoolCache::set_archived_references(oop o) { diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/oops/instanceKlass.cpp --- a/src/hotspot/share/oops/instanceKlass.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/oops/instanceKlass.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -2738,48 +2738,6 @@ return; } -// tell if two classes have the same enclosing class (at package level) -bool InstanceKlass::is_same_package_member(const Klass* class2, TRAPS) const { - if (class2 == this) return true; - if (!class2->is_instance_klass()) return false; - - // must be in same package before we try anything else - if (!is_same_class_package(class2)) - return false; - - // As long as there is an outer_this.getEnclosingClass, - // shift the search outward. - const InstanceKlass* outer_this = this; - for (;;) { - // As we walk along, look for equalities between outer_this and class2. - // Eventually, the walks will terminate as outer_this stops - // at the top-level class around the original class. - bool ignore_inner_is_member; - const Klass* next = outer_this->compute_enclosing_class(&ignore_inner_is_member, - CHECK_false); - if (next == NULL) break; - if (next == class2) return true; - outer_this = InstanceKlass::cast(next); - } - - // Now do the same for class2. - const InstanceKlass* outer2 = InstanceKlass::cast(class2); - for (;;) { - bool ignore_inner_is_member; - Klass* next = outer2->compute_enclosing_class(&ignore_inner_is_member, - CHECK_false); - if (next == NULL) break; - // Might as well check the new outer against all available values. - if (next == this) return true; - if (next == outer_this) return true; - outer2 = InstanceKlass::cast(next); - } - - // If by this point we have not found an equality between the - // two classes, we know they are in separate package members. - return false; -} - bool InstanceKlass::find_inner_classes_attr(int* ooff, int* noff, TRAPS) const { constantPoolHandle i_cp(THREAD, constants()); for (InnerClassesIterator iter(this); !iter.done(); iter.next()) { diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/oops/instanceKlass.hpp --- a/src/hotspot/share/oops/instanceKlass.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/oops/instanceKlass.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -507,9 +507,6 @@ ClassLoaderData* loader_data, TRAPS); public: - // tell if two classes have the same enclosing class (at package level) - bool is_same_package_member(const Klass* class2, TRAPS) const; - // initialization state bool is_loaded() const { return _init_state >= loaded; } bool is_linked() const { return _init_state >= linked; } diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/oops/instanceMirrorKlass.cpp --- a/src/hotspot/share/oops/instanceMirrorKlass.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/oops/instanceMirrorKlass.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -52,7 +52,7 @@ // Since mirrors can be variable sized because of the static fields, store // the size in the mirror itself. - return (instanceOop)Universe::heap()->class_allocate(this, size, CHECK_NULL); + return (instanceOop)Universe::heap()->class_allocate(this, size, THREAD); } int InstanceMirrorKlass::oop_size(oop obj) const { diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/oops/klass.cpp --- a/src/hotspot/share/oops/klass.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/oops/klass.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -32,6 +32,7 @@ #include "gc/shared/collectedHeap.inline.hpp" #include "logging/log.hpp" #include "memory/heapInspection.hpp" +#include "memory/heapShared.hpp" #include "memory/metadataFactory.hpp" #include "memory/metaspaceClosure.hpp" #include "memory/metaspaceShared.hpp" @@ -542,7 +543,7 @@ if (this->has_raw_archived_mirror()) { ResourceMark rm; log_debug(cds, mirror)("%s has raw archived mirror", external_name()); - if (MetaspaceShared::open_archive_heap_region_mapped()) { + if (HeapShared::open_archive_heap_region_mapped()) { bool present = java_lang_Class::restore_archived_mirror(this, loader, module_handle, protection_domain, CHECK); diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/oops/oop.cpp --- a/src/hotspot/share/oops/oop.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/oops/oop.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -25,7 +25,7 @@ #include "precompiled.hpp" #include "classfile/altHashing.hpp" #include "classfile/javaClasses.inline.hpp" -#include "memory/metaspaceShared.inline.hpp" +#include "memory/heapShared.inline.hpp" #include "memory/resourceArea.hpp" #include "oops/access.inline.hpp" #include "oops/oop.inline.hpp" @@ -144,8 +144,8 @@ } #if INCLUDE_CDS_JAVA_HEAP -bool oopDesc::is_archive_object(oop p) { - return MetaspaceShared::is_archive_object(p); +bool oopDesc::is_archived_object(oop p) { + return HeapShared::is_archived_object(p); } #endif #endif // PRODUCT diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/oops/oop.hpp --- a/src/hotspot/share/oops/oop.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/oops/oop.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -46,7 +46,6 @@ class ScanClosure; class FastScanClosure; class FilteringClosure; -class BarrierSet; class CMSIsAliveClosure; class PSPromotionManager; @@ -154,6 +153,8 @@ inline static bool equals(oop o1, oop o2) { return Access<>::equals(o1, o2); } + inline static bool equals_raw(oop o1, oop o2) { return RawAccess<>::equals(o1, o2); } + // Access to fields in a instanceOop through these methods. template oop obj_field_access(int offset) const; @@ -256,7 +257,7 @@ static bool is_oop_or_null(oop obj, bool ignore_mark_word = false); #ifndef PRODUCT inline bool is_unlocked_oop() const; - static bool is_archive_object(oop p) NOT_CDS_JAVA_HEAP_RETURN_(false); + static bool is_archived_object(oop p) NOT_CDS_JAVA_HEAP_RETURN_(false); #endif // garbage collection diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/oops/oop.inline.hpp --- a/src/hotspot/share/oops/oop.inline.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/oops/oop.inline.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -351,8 +351,8 @@ "forwarding to something not aligned"); assert(Universe::heap()->is_in_reserved(p), "forwarding to something not in heap"); - assert(!is_archive_object(oop(this)) && - !is_archive_object(p), + assert(!is_archived_object(oop(this)) && + !is_archived_object(p), "forwarding archive object"); markOop m = markOopDesc::encode_pointer_as_mark(p); assert(m->decode_pointer() == p, "encoding must be reversable"); diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/oops/oopsHierarchy.cpp --- a/src/hotspot/share/oops/oopsHierarchy.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/oops/oopsHierarchy.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -23,6 +23,7 @@ */ #include "precompiled.hpp" +#include "gc/shared/barrierSet.hpp" #include "gc/shared/collectedHeap.hpp" #include "gc/shared/collectedHeap.inline.hpp" #include "oops/oopsHierarchy.hpp" @@ -53,4 +54,15 @@ t->unhandled_oops()->unregister_unhandled_oop(this); } } + +bool oop::operator==(const oop o) const { + assert(BarrierSet::barrier_set()->oop_equals_operator_allowed(), "Not allowed"); + return obj() == o.obj(); +} + +bool oop::operator!=(const volatile oop o) const { + assert(BarrierSet::barrier_set()->oop_equals_operator_allowed(), "Not allowed"); + return obj() != o.obj(); +} + #endif // CHECK_UNHANDLED_OOPS diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/oops/oopsHierarchy.hpp --- a/src/hotspot/share/oops/oopsHierarchy.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/oops/oopsHierarchy.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -101,9 +101,9 @@ // General access oopDesc* operator->() const { return obj(); } - bool operator==(const oop o) const { return obj() == o.obj(); } + bool operator==(const oop o) const; bool operator==(void *p) const { return obj() == p; } - bool operator!=(const volatile oop o) const { return obj() != o.obj(); } + bool operator!=(const volatile oop o) const; bool operator!=(void *p) const { return obj() != p; } // Assignment diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/opto/compile.cpp --- a/src/hotspot/share/opto/compile.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/opto/compile.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -3379,6 +3379,32 @@ n->set_req(MemBarNode::Precedent, top()); } break; + case Op_MemBarAcquire: { + if (n->as_MemBar()->trailing_load() && n->req() > MemBarNode::Precedent) { + // At parse time, the trailing MemBarAcquire for a volatile load + // is created with an edge to the load. After optimizations, + // that input may be a chain of Phis. If those phis have no + // other use, then the MemBarAcquire keeps them alive and + // register allocation can be confused. + ResourceMark rm; + Unique_Node_List wq; + wq.push(n->in(MemBarNode::Precedent)); + n->set_req(MemBarNode::Precedent, top()); + while (wq.size() > 0) { + Node* m = wq.pop(); + if (m->outcnt() == 0) { + for (uint j = 0; j < m->req(); j++) { + Node* in = m->in(j); + if (in != NULL) { + wq.push(in); + } + } + m->disconnect_inputs(NULL, this); + } + } + } + break; + } case Op_RangeCheck: { RangeCheckNode* rc = n->as_RangeCheck(); Node* iff = new IfNode(rc->in(0), rc->in(1), rc->_prob, rc->_fcnt); diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/opto/graphKit.cpp --- a/src/hotspot/share/opto/graphKit.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/opto/graphKit.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -1804,12 +1804,13 @@ // A better answer would be to separate out card marks from other memory. // For now, return the input memory state, so that it can be reused // after the call, if this call has restricted memory effects. -Node* GraphKit::set_predefined_input_for_runtime_call(SafePointNode* call) { +Node* GraphKit::set_predefined_input_for_runtime_call(SafePointNode* call, Node* narrow_mem) { // Set fixed predefined input arguments Node* memory = reset_memory(); + Node* m = narrow_mem == NULL ? memory : narrow_mem; call->init_req( TypeFunc::Control, control() ); call->init_req( TypeFunc::I_O, top() ); // does no i/o - call->init_req( TypeFunc::Memory, memory ); // may gc ptrs + call->init_req( TypeFunc::Memory, m ); // may gc ptrs call->init_req( TypeFunc::FramePtr, frameptr() ); call->init_req( TypeFunc::ReturnAdr, top() ); return memory; @@ -2465,9 +2466,7 @@ } else { assert(!wide_out, "narrow in => narrow out"); Node* narrow_mem = memory(adr_type); - prev_mem = reset_memory(); - map()->set_memory(narrow_mem); - set_predefined_input_for_runtime_call(call); + prev_mem = set_predefined_input_for_runtime_call(call, narrow_mem); } // Hook each parm in order. Stop looking at the first NULL. diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/opto/graphKit.hpp --- a/src/hotspot/share/opto/graphKit.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/opto/graphKit.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -699,7 +699,7 @@ void set_predefined_output_for_runtime_call(Node* call, Node* keep_mem, const TypePtr* hook_mem); - Node* set_predefined_input_for_runtime_call(SafePointNode* call); + Node* set_predefined_input_for_runtime_call(SafePointNode* call, Node* narrow_mem = NULL); // Replace the call with the current state of the kit. Requires // that the call was generated with separate io_projs so that diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/opto/memnode.cpp --- a/src/hotspot/share/opto/memnode.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/opto/memnode.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -3174,21 +3174,43 @@ } MemBarNode* MemBarNode::trailing_membar() const { + ResourceMark rm; Node* trailing = (Node*)this; VectorSet seen(Thread::current()->resource_area()); - while (!trailing->is_MemBar() || !trailing->as_MemBar()->trailing()) { - if (seen.test_set(trailing->_idx)) { - // Dying subgraph? - return NULL; - } - for (DUIterator_Fast jmax, j = trailing->fast_outs(jmax); j < jmax; j++) { - Node* next = trailing->fast_out(j); - if (next != trailing && next->is_CFG()) { - trailing = next; + Node_Stack multis(0); + do { + Node* c = trailing; + uint i = 0; + do { + trailing = NULL; + for (; i < c->outcnt(); i++) { + Node* next = c->raw_out(i); + if (next != c && next->is_CFG()) { + if (c->is_MultiBranch()) { + if (multis.node() == c) { + multis.set_index(i+1); + } else { + multis.push(c, i+1); + } + } + trailing = next; + break; + } + } + if (trailing != NULL && !seen.test_set(trailing->_idx)) { break; } - } - } + while (multis.size() > 0) { + c = multis.node(); + i = multis.index(); + if (i < c->req()) { + break; + } + multis.pop(); + } + } while (multis.size() > 0); + } while (!trailing->is_MemBar() || !trailing->as_MemBar()->trailing()); + MemBarNode* mb = trailing->as_MemBar(); assert((mb->_kind == TrailingStore && _kind == LeadingStore) || (mb->_kind == TrailingLoadStore && _kind == LeadingLoadStore), "bad trailing membar"); @@ -3197,14 +3219,30 @@ } MemBarNode* MemBarNode::leading_membar() const { + ResourceMark rm; VectorSet seen(Thread::current()->resource_area()); + Node_Stack regions(0); Node* leading = in(0); while (leading != NULL && (!leading->is_MemBar() || !leading->as_MemBar()->leading())) { - if (seen.test_set(leading->_idx)) { - // Dying subgraph? - return NULL; + while (leading == NULL || leading->is_top() || seen.test_set(leading->_idx)) { + leading = NULL; + while (regions.size() > 0) { + Node* r = regions.node(); + uint i = regions.index(); + if (i < r->req()) { + leading = r->in(i); + regions.set_index(i+1); + } else { + regions.pop(); + } + } + if (leading == NULL) { + assert(regions.size() == 0, "all paths should have been tried"); + return NULL; + } } if (leading->is_Region()) { + regions.push(leading, 2); leading = leading->in(1); } else { leading = leading->in(0); diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/opto/parse2.cpp --- a/src/hotspot/share/opto/parse2.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/opto/parse2.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -1346,7 +1346,7 @@ if (prob <= PROB_MIN) prob_str = (prob == PROB_MIN) ? "min" : "never"; char prob_str_buf[30]; if (prob_str == NULL) { - sprintf(prob_str_buf, "%g", prob); + jio_snprintf(prob_str_buf, sizeof(prob_str_buf), "%20.2f", prob); prob_str = prob_str_buf; } C->log()->elem("branch target_bci='%d' taken='%d' not_taken='%d' cnt='%f' prob='%s'", @@ -2854,7 +2854,7 @@ IdealGraphPrinter *printer = C->printer(); if (printer && printer->should_print(1)) { char buffer[256]; - sprintf(buffer, "Bytecode %d: %s", bci(), Bytecodes::name(bc())); + jio_snprintf(buffer, sizeof(buffer), "Bytecode %d: %s", bci(), Bytecodes::name(bc())); bool old = printer->traverse_outs(); printer->set_traverse_outs(true); printer->print_method(buffer, 4); diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/prims/jvmtiEnv.cpp --- a/src/hotspot/share/prims/jvmtiEnv.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/prims/jvmtiEnv.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -470,7 +470,7 @@ JvmtiEnv::GetObjectSize(jobject object, jlong* size_ptr) { oop mirror = JNIHandles::resolve_external_guard(object); NULL_CHECK(mirror, JVMTI_ERROR_INVALID_OBJECT); - *size_ptr = (jlong)mirror->size() * wordSize; + *size_ptr = (jlong)Universe::heap()->obj_size(mirror) * wordSize; return JVMTI_ERROR_NONE; } /* end GetObjectSize */ diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/prims/whitebox.cpp --- a/src/hotspot/share/prims/whitebox.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/prims/whitebox.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -36,8 +36,9 @@ #include "gc/shared/gcConfig.hpp" #include "gc/shared/genCollectedHeap.hpp" #include "jvmtifiles/jvmtiEnv.hpp" +#include "memory/heapShared.inline.hpp" +#include "memory/metaspaceShared.hpp" #include "memory/metadataFactory.hpp" -#include "memory/metaspaceShared.inline.hpp" #include "memory/iterator.hpp" #include "memory/resourceArea.hpp" #include "memory/universe.hpp" @@ -371,7 +372,7 @@ WB_ENTRY(jlong, WB_GetObjectSize(JNIEnv* env, jobject o, jobject obj)) oop p = JNIHandles::resolve(obj); - return p->size() * HeapWordSize; + return Universe::heap()->obj_size(p) * HeapWordSize; WB_END WB_ENTRY(jlong, WB_GetHeapSpaceAlignment(JNIEnv* env, jobject o)) @@ -1765,7 +1766,7 @@ WB_ENTRY(jboolean, WB_IsShared(JNIEnv* env, jobject wb, jobject obj)) oop obj_oop = JNIHandles::resolve(obj); - return MetaspaceShared::is_archive_object(obj_oop); + return HeapShared::is_archived_object(obj_oop); WB_END WB_ENTRY(jboolean, WB_IsSharedClass(JNIEnv* env, jobject wb, jclass clazz)) @@ -1789,7 +1790,7 @@ WB_END WB_ENTRY(jboolean, WB_AreOpenArchiveHeapObjectsMapped(JNIEnv* env)) - return MetaspaceShared::open_archive_heap_region_mapped(); + return HeapShared::open_archive_heap_region_mapped(); WB_END WB_ENTRY(jboolean, WB_IsCDSIncludedInVmBuild(JNIEnv* env)) @@ -1807,7 +1808,7 @@ WB_END WB_ENTRY(jboolean, WB_IsJavaHeapArchiveSupported(JNIEnv* env)) - return MetaspaceShared::is_heap_object_archiving_allowed(); + return HeapShared::is_heap_object_archiving_allowed(); WB_END diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/runtime/java.cpp --- a/src/hotspot/share/runtime/java.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/runtime/java.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -575,9 +575,6 @@ } void vm_perform_shutdown_actions() { - // Warning: do not call 'exit_globals()' here. All threads are still running. - // Calling 'exit_globals()' will disable thread-local-storage and cause all - // kinds of assertions to trigger in debug mode. if (is_init_completed()) { Thread* thread = Thread::current_or_null(); if (thread != NULL && thread->is_Java_thread()) { diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/runtime/javaCalls.cpp --- a/src/hotspot/share/runtime/javaCalls.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/runtime/javaCalls.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -307,25 +307,26 @@ JavaCalls::call_special(&void_result, klass, vmSymbols::object_initializer_name(), constructor_signature, args, CHECK_NH); + // Already returned a Null Handle if any exception is pending. return obj; } Handle JavaCalls::construct_new_instance(InstanceKlass* klass, Symbol* constructor_signature, TRAPS) { JavaCallArguments args; - return JavaCalls::construct_new_instance(klass, constructor_signature, &args, CHECK_NH); + return JavaCalls::construct_new_instance(klass, constructor_signature, &args, THREAD); } Handle JavaCalls::construct_new_instance(InstanceKlass* klass, Symbol* constructor_signature, Handle arg1, TRAPS) { JavaCallArguments args; args.push_oop(arg1); - return JavaCalls::construct_new_instance(klass, constructor_signature, &args, CHECK_NH); + return JavaCalls::construct_new_instance(klass, constructor_signature, &args, THREAD); } Handle JavaCalls::construct_new_instance(InstanceKlass* klass, Symbol* constructor_signature, Handle arg1, Handle arg2, TRAPS) { JavaCallArguments args; args.push_oop(arg1); args.push_oop(arg2); - return JavaCalls::construct_new_instance(klass, constructor_signature, &args, CHECK_NH); + return JavaCalls::construct_new_instance(klass, constructor_signature, &args, THREAD); } // ------------------------------------------------- diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/runtime/reflection.cpp --- a/src/hotspot/share/runtime/reflection.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/runtime/reflection.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -750,10 +750,12 @@ InnerClassesIterator iter(outer); constantPoolHandle cp (THREAD, outer->constants()); for (; !iter.done(); iter.next()) { - int ioff = iter.inner_class_info_index(); - int ooff = iter.outer_class_info_index(); + int ioff = iter.inner_class_info_index(); + int ooff = iter.outer_class_info_index(); - if (inner_is_member && ioff != 0 && ooff != 0) { + if (inner_is_member && ioff != 0 && ooff != 0) { + if (cp->klass_name_at_matches(outer, ooff) && + cp->klass_name_at_matches(inner, ioff)) { Klass* o = cp->klass_at(ooff, CHECK); if (o == outer) { Klass* i = cp->klass_at(ioff, CHECK); @@ -761,14 +763,16 @@ return; } } - } - if (!inner_is_member && ioff != 0 && ooff == 0 && - cp->klass_name_at_matches(inner, ioff)) { - Klass* i = cp->klass_at(ioff, CHECK); - if (i == inner) { - return; - } - } + } + } + + if (!inner_is_member && ioff != 0 && ooff == 0 && + cp->klass_name_at_matches(inner, ioff)) { + Klass* i = cp->klass_at(ioff, CHECK); + if (i == inner) { + return; + } + } } // 'inner' not declared as an inner klass in outer diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/runtime/thread.cpp --- a/src/hotspot/share/runtime/thread.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/runtime/thread.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -4212,10 +4212,10 @@ // <-- do not use anything that could get blocked by Safepoint --> // + Disable tracing at JNI/JVM barriers // + Set _vm_exited flag for threads that are still running native code -// + Delete this thread // + Call exit_globals() // > deletes tty // > deletes PerfMemory resources +// + Delete this thread // + Return to caller bool Threads::destroy_vm() { @@ -4291,6 +4291,9 @@ notify_vm_shutdown(); + // exit_globals() will delete tty + exit_globals(); + // We are after VM_Exit::set_vm_exited() so we can't call // thread->smr_delete() or we will block on the Threads_lock. // Deleting the shutdown thread here is safe because another @@ -4304,9 +4307,6 @@ } #endif - // exit_globals() will delete tty - exit_globals(); - LogConfiguration::finalize(); return true; diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/runtime/threadHeapSampler.cpp --- a/src/hotspot/share/runtime/threadHeapSampler.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/runtime/threadHeapSampler.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -171,20 +171,3 @@ void ThreadHeapSampler::set_sampling_interval(int sampling_interval) { OrderAccess::release_store(&_sampling_interval, sampling_interval); } - -// Methods used in assertion mode to check if a collector is present or not at -// the moment of TLAB sampling, ie a slow allocation path. -bool ThreadHeapSampler::sampling_collector_present() const { - return _collectors_present > 0; -} - -bool ThreadHeapSampler::remove_sampling_collector() { - assert(_collectors_present > 0, "Problem with collector counter."); - _collectors_present--; - return true; -} - -bool ThreadHeapSampler::add_sampling_collector() { - _collectors_present++; - return true; -} diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/runtime/threadHeapSampler.hpp --- a/src/hotspot/share/runtime/threadHeapSampler.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/runtime/threadHeapSampler.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -66,10 +66,6 @@ static void set_sampling_interval(int sampling_interval); static int get_sampling_interval(); - - bool sampling_collector_present() const; - bool remove_sampling_collector(); - bool add_sampling_collector(); }; #endif // SHARE_RUNTIME_THREADHEAPSAMPLER_HPP diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/services/management.cpp --- a/src/hotspot/share/services/management.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/services/management.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -178,7 +178,7 @@ InstanceKlass* Management::load_and_initialize_klass(Symbol* sh, TRAPS) { Klass* k = SystemDictionary::resolve_or_fail(sh, true, CHECK_NULL); - return initialize_klass(k, CHECK_NULL); + return initialize_klass(k, THREAD); } InstanceKlass* Management::load_and_initialize_klass_or_null(Symbol* sh, TRAPS) { @@ -186,7 +186,7 @@ if (k == NULL) { return NULL; } - return initialize_klass(k, CHECK_NULL); + return initialize_klass(k, THREAD); } InstanceKlass* Management::initialize_klass(Klass* k, TRAPS) { diff -r 2ea07b19b446 -r 4762fcec08d4 src/hotspot/share/utilities/exceptions.hpp --- a/src/hotspot/share/utilities/exceptions.hpp Thu Oct 11 16:41:13 2018 +0200 +++ b/src/hotspot/share/utilities/exceptions.hpp Thu Oct 11 09:20:07 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 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 @@ -211,7 +211,7 @@ // // CAUTION: make sure that the function call using a CHECK macro is not the only statement of a // conditional branch w/o enclosing {} braces, since the CHECK macros expand into several state- -// ments! +// ments! Also make sure it is not used on a function call that is part of a return statement! #define PENDING_EXCEPTION (((ThreadShadow*)THREAD)->pending_exception()) #define HAS_PENDING_EXCEPTION (((ThreadShadow*)THREAD)->has_pending_exception()) diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/io/RandomAccessFile.java --- a/src/java.base/share/classes/java/io/RandomAccessFile.java Thu Oct 11 16:41:13 2018 +0200 +++ b/src/java.base/share/classes/java/io/RandomAccessFile.java Thu Oct 11 09:20:07 2018 -0700 @@ -71,7 +71,9 @@ */ private final String path; - private final AtomicBoolean closed = new AtomicBoolean(false); + private final Object closeLock = new Object(); + + private volatile boolean closed; private static final int O_RDONLY = 1; private static final int O_RDWR = 2; @@ -301,7 +303,7 @@ if (fc == null) { this.channel = fc = FileChannelImpl.open(fd, path, true, rw, false, this); - if (closed.get()) { + if (closed) { try { fc.close(); } catch (IOException ioe) { @@ -638,14 +640,21 @@ * @spec JSR-51 */ public void close() throws IOException { - if (!closed.compareAndSet(false, true)) { - // if compareAndSet() returns false closed was already true + if (closed) { return; } + synchronized (closeLock) { + if (closed) { + return; + } + closed = true; + } FileChannel fc = channel; if (fc != null) { - fc.close(); + // possible race with getChannel(), benign since + // FileChannel.close is final and idempotent + fc.close(); } fd.closeAll(new Closeable() { diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/lang/SecurityManager.java --- a/src/java.base/share/classes/java/lang/SecurityManager.java Thu Oct 11 16:41:13 2018 +0200 +++ b/src/java.base/share/classes/java/lang/SecurityManager.java Thu Oct 11 09:20:07 2018 -0700 @@ -28,7 +28,6 @@ import java.lang.module.ModuleDescriptor; import java.lang.module.ModuleDescriptor.Exports; import java.lang.module.ModuleDescriptor.Opens; -import java.lang.module.ModuleReference; import java.lang.reflect.Member; import java.io.FileDescriptor; import java.io.File; @@ -47,9 +46,7 @@ import java.util.PropertyPermission; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; -import jdk.internal.module.ModuleBootstrap; import jdk.internal.module.ModuleLoaderMap; import jdk.internal.reflect.CallerSensitive; import sun.security.util.SecurityConstants; @@ -81,10 +78,100 @@ * throws a SecurityException if the operation is not * permitted. *

- * The current security manager is set by the - * setSecurityManager method in class - * System. The current security manager is obtained - * by the getSecurityManager method. + * Environments using a security manager will typically set the security + * manager at startup. In the JDK implementation, this is done by setting + * the system property {@code java.security.manager} on the command line to + * the class name of the security manager. It can also be set to the empty + * String ("") or the special token "{@code default}" to use the + * default {@code java.lang.SecurityManager}. If a class name is specified, + * it must be {@code java.lang.SecurityManager} or a public subclass and have + * a public no-arg constructor. The class is loaded by the + * {@linkplain ClassLoader#getSystemClassLoader() built-in system class loader} + * if it is not {@code java.lang.SecurityManager}. If the + * {@code java.security.manager} system property is not set, the default value + * is {@code null}, which means a security manager will not be set at startup. + *

+ * The Java run-time may also allow, but is not required to allow, the security + * manager to be set dynamically by invoking the + * {@link System#setSecurityManager(SecurityManager) setSecurityManager} method. + * In the JDK implementation, if the Java virtual machine is started with + * the {@code java.security.manager} system property set to the special token + * "{@code disallow}" then a security manager will not be set at startup and + * cannot be set dynamically (the + * {@link System#setSecurityManager(SecurityManager) setSecurityManager} + * method will throw an {@code UnsupportedOperationException}). If the + * {@code java.security.manager} system property is not set or is set to the + * special token "{@code allow}", then a security manager will not be set at + * startup but can be set dynamically. Finally, if the + * {@code java.security.manager} system property is set to the class name of + * the security manager, or to the empty String ("") or the special token + * "{@code default}", then a security manager is set at startup (as described + * previously) and can also be subsequently replaced (or disabled) dynamically + * (subject to the policy of the currently installed security manager). The + * following table illustrates the behavior of the JDK implementation for the + * different settings of the {@code java.security.manager} system property: + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
property value, + * the SecurityManager set at startup, + * can dynamically set a SecurityManager + *
Property ValueThe SecurityManager set at startupSystem.setSecurityManager run-time behavior
nullNoneSuccess or throws {@code SecurityException} if not permitted by + * the currently installed security manager
empty String (""){@code java.lang.SecurityManager}Success or throws {@code SecurityException} if not permitted by + * the currently installed security manager
"default"{@code java.lang.SecurityManager}Success or throws {@code SecurityException} if not permitted by + * the currently installed security manager
"disallow"NoneAlways throws {@code UnsupportedOperationException}
"allow"NoneSuccess or throws {@code SecurityException} if not permitted by + * the currently installed security manager
a class namethe named classSuccess or throws {@code SecurityException} if not permitted by + * the currently installed security manager
+ *

A future release of the JDK may change the default value of the + * {@code java.security.manager} system property to "{@code disallow}". + *

+ * The current security manager is returned by the + * {@link System#getSecurityManager() getSecurityManager} method. *

* The special method * {@link SecurityManager#checkPermission(java.security.Permission)} @@ -221,7 +308,6 @@ * @see java.net.SocketPermission * @see java.util.PropertyPermission * @see java.lang.RuntimePermission - * @see java.awt.AWTPermission * @see java.security.Policy Policy * @see java.security.SecurityPermission SecurityPermission * @see java.security.ProtectionDomain diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/lang/System.java --- a/src/java.base/share/classes/java/lang/System.java Thu Oct 11 16:41:13 2018 +0200 +++ b/src/java.base/share/classes/java/lang/System.java Thu Oct 11 09:20:07 2018 -0700 @@ -72,6 +72,7 @@ import jdk.internal.logger.LoggerFinderLoader; import jdk.internal.logger.LazyLoggers; import jdk.internal.logger.LocalizedLoggerWrapper; +import jdk.internal.vm.annotation.Stable; import sun.reflect.annotation.AnnotationType; import sun.nio.ch.Interruptible; import sun.security.util.SecurityConstants; @@ -154,9 +155,18 @@ */ public static final PrintStream err = null; - /* The security manager for the system. - */ - private static volatile SecurityManager security; + // indicates if a security manager is possible + private static final int NEVER = 1; + private static final int MAYBE = 2; + private static @Stable int allowSecurityManager; + + // current security manager + private static volatile SecurityManager security; // read by VM + + // return true if a security manager is allowed + private static boolean allowSecurityManager() { + return (allowSecurityManager != NEVER); + } /** * Reassigns the "standard" input stream. @@ -231,6 +241,7 @@ } private static volatile Console cons; + /** * Returns the unique {@link java.io.Console Console} object associated * with the current Java virtual machine, if any. @@ -292,7 +303,7 @@ private static native void setErr0(PrintStream err); /** - * Sets the System security. + * Sets the system-wide security manager. * * If there is a security manager already installed, this method first * calls the security manager's {@code checkPermission} method @@ -306,27 +317,46 @@ * security manager has been established, then no action is taken and * the method simply returns. * - * @param s the security manager. - * @throws SecurityException if the security manager has already - * been set and its {@code checkPermission} method - * doesn't allow it to be replaced. + * @implNote In the JDK implementation, if the Java virtual machine is + * started with the system property {@code java.security.manager} set to + * the special token "{@code disallow}" then the {@code setSecurityManager} + * method cannot be used to set a security manager. + * + * @param sm the security manager or {@code null} + * @throws SecurityException + * if the security manager has already been set and its {@code + * checkPermission} method doesn't allow it to be replaced + * @throws UnsupportedOperationException + * if {@code sm} is non-null and a security manager is not allowed + * to be set dynamically * @see #getSecurityManager * @see SecurityManager#checkPermission * @see java.lang.RuntimePermission */ - public static void setSecurityManager(final SecurityManager s) { - if (security == null) { - // ensure image reader is initialized - Object.class.getResource("java/lang/ANY"); - } - if (s != null) { - try { - s.checkPackageAccess("java.lang"); - } catch (Exception e) { - // no-op + public static void setSecurityManager(SecurityManager sm) { + if (allowSecurityManager()) { + if (security == null) { + // ensure image reader is initialized + Object.class.getResource("java/lang/ANY"); + } + if (sm != null) { + try { + // pre-populates the SecurityManager.packageAccess cache + // to avoid recursive permission checking issues with custom + // SecurityManager implementations + sm.checkPackageAccess("java.lang"); + } catch (Exception e) { + // no-op + } + } + setSecurityManager0(sm); + } else { + // security manager not allowed + if (sm != null) { + throw new UnsupportedOperationException( + "Runtime configured to disallow security manager"); } } - setSecurityManager0(s); } private static synchronized @@ -335,13 +365,12 @@ if (sm != null) { // ask the currently installed security manager if we // can replace it. - sm.checkPermission(new RuntimePermission - ("setSecurityManager")); + sm.checkPermission(new RuntimePermission("setSecurityManager")); } if ((s != null) && (s.getClass().getClassLoader() != null)) { // New security manager class is not on bootstrap classpath. - // Cause policy to get initialized before we install the new + // Force policy to get initialized before we install the new // security manager, in order to prevent infinite loops when // trying to initialize the policy (which usually involves // accessing some security and/or system properties, which in turn @@ -361,7 +390,7 @@ } /** - * Gets the system security interface. + * Gets the system-wide security manager. * * @return if a security manager has already been established for the * current application, then that security manager is returned; @@ -369,7 +398,11 @@ * @see #setSecurityManager */ public static SecurityManager getSecurityManager() { - return security; + if (allowSecurityManager()) { + return security; + } else { + return null; + } } /** @@ -2028,35 +2061,48 @@ * 3. set TCCL * * This method must be called after the module system initialization. - * The security manager and system class loader may be custom class from + * The security manager and system class loader may be a custom class from * the application classpath or modulepath. */ private static void initPhase3() { - // set security manager - String cn = System.getProperty("java.security.manager"); - if (cn != null) { - if (cn.isEmpty() || "default".equals(cn)) { - System.setSecurityManager(new SecurityManager()); - } else { - try { - Class c = Class.forName(cn, false, ClassLoader.getBuiltinAppClassLoader()); - Constructor ctor = c.getConstructor(); - // Must be a public subclass of SecurityManager with - // a public no-arg constructor - if (!SecurityManager.class.isAssignableFrom(c) || + String smProp = System.getProperty("java.security.manager"); + if (smProp != null) { + switch (smProp) { + case "disallow": + allowSecurityManager = NEVER; + break; + case "allow": + allowSecurityManager = MAYBE; + break; + case "": + case "default": + setSecurityManager(new SecurityManager()); + allowSecurityManager = MAYBE; + break; + default: + try { + ClassLoader cl = ClassLoader.getBuiltinAppClassLoader(); + Class c = Class.forName(smProp, false, cl); + Constructor ctor = c.getConstructor(); + // Must be a public subclass of SecurityManager with + // a public no-arg constructor + if (!SecurityManager.class.isAssignableFrom(c) || !Modifier.isPublic(c.getModifiers()) || !Modifier.isPublic(ctor.getModifiers())) { - throw new Error("Could not create SecurityManager: " + ctor.toString()); + throw new Error("Could not create SecurityManager: " + + ctor.toString()); + } + // custom security manager may be in non-exported package + ctor.setAccessible(true); + SecurityManager sm = (SecurityManager) ctor.newInstance(); + setSecurityManager(sm); + } catch (Exception e) { + throw new InternalError("Could not create SecurityManager", e); } - // custom security manager implementation may be in unnamed module - // or a named module but non-exported package - ctor.setAccessible(true); - SecurityManager sm = (SecurityManager) ctor.newInstance(); - System.setSecurityManager(sm); - } catch (Exception e) { - throw new Error("Could not create SecurityManager", e); - } + allowSecurityManager = MAYBE; } + } else { + allowSecurityManager = MAYBE; } // initializing the system class loader diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/lang/invoke/MethodHandles.java --- a/src/java.base/share/classes/java/lang/invoke/MethodHandles.java Thu Oct 11 16:41:13 2018 +0200 +++ b/src/java.base/share/classes/java/lang/invoke/MethodHandles.java Thu Oct 11 09:20:07 2018 -0700 @@ -969,9 +969,6 @@ ProtectionDomain pd = (loader != null) ? lookupClassProtectionDomain() : null; String source = "__Lookup_defineClass__"; Class clazz = SharedSecrets.getJavaLangAccess().defineClass(loader, cn, bytes, pd, source); - assert clazz.getClassLoader() == lookupClass.getClassLoader() - && clazz.getPackageName().equals(lookupClass.getPackageName()) - && protectionDomain(clazz) == lookupClassProtectionDomain(); return clazz; } diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/math/BigInteger.java --- a/src/java.base/share/classes/java/math/BigInteger.java Thu Oct 11 16:41:13 2018 +0200 +++ b/src/java.base/share/classes/java/math/BigInteger.java Thu Oct 11 09:20:07 2018 -0700 @@ -41,6 +41,7 @@ import jdk.internal.math.DoubleConsts; import jdk.internal.math.FloatConsts; import jdk.internal.HotSpotIntrinsicCandidate; +import jdk.internal.vm.annotation.Stable; /** * Immutable arbitrary-precision integers. All operations behave as if @@ -1219,8 +1220,10 @@ * Initialize static constant array when class is loaded. */ private static final int MAX_CONSTANT = 16; - private static BigInteger posConst[] = new BigInteger[MAX_CONSTANT+1]; - private static BigInteger negConst[] = new BigInteger[MAX_CONSTANT+1]; + @Stable + private static final BigInteger[] posConst = new BigInteger[MAX_CONSTANT+1]; + @Stable + private static final BigInteger[] negConst = new BigInteger[MAX_CONSTANT+1]; /** * The cache of powers of each radix. This allows us to not have to diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/Duration.java --- a/src/java.base/share/classes/java/time/Duration.java Thu Oct 11 16:41:13 2018 +0200 +++ b/src/java.base/share/classes/java/time/Duration.java Thu Oct 11 09:20:07 2018 -0700 @@ -1519,7 +1519,7 @@ //----------------------------------------------------------------------- /** * Writes the object using a - * dedicated serialized form. + * dedicated serialized form. * @serialData *

      *  out.writeByte(1);  // identifies a Duration
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/Instant.java
--- a/src/java.base/share/classes/java/time/Instant.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/Instant.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1332,7 +1332,7 @@
     // -----------------------------------------------------------------------
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(2);  // identifies an Instant
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/LocalDate.java
--- a/src/java.base/share/classes/java/time/LocalDate.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/LocalDate.java	Thu Oct 11 09:20:07 2018 -0700
@@ -2189,7 +2189,7 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(3);  // identifies a LocalDate
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/LocalDateTime.java
--- a/src/java.base/share/classes/java/time/LocalDateTime.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/LocalDateTime.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1975,12 +1975,12 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(5);  // identifies a LocalDateTime
-     *  // the date excluding the one byte header
-     *  // the time excluding the one byte header
+     *  // the date excluding the one byte header
+     *  // the time excluding the one byte header
      * 
* * @return the instance of {@code Ser}, not null diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/LocalTime.java --- a/src/java.base/share/classes/java/time/LocalTime.java Thu Oct 11 16:41:13 2018 +0200 +++ b/src/java.base/share/classes/java/time/LocalTime.java Thu Oct 11 09:20:07 2018 -0700 @@ -1645,7 +1645,7 @@ //----------------------------------------------------------------------- /** * Writes the object using a - * dedicated serialized form. + * dedicated serialized form. * @serialData * A twos-complement value indicates the remaining values are not in the stream * and should be set to zero. diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/MonthDay.java --- a/src/java.base/share/classes/java/time/MonthDay.java Thu Oct 11 16:41:13 2018 +0200 +++ b/src/java.base/share/classes/java/time/MonthDay.java Thu Oct 11 09:20:07 2018 -0700 @@ -754,7 +754,7 @@ //----------------------------------------------------------------------- /** * Writes the object using a - * dedicated serialized form. + * dedicated serialized form. * @serialData *
      *  out.writeByte(13);  // identifies a MonthDay
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/OffsetDateTime.java
--- a/src/java.base/share/classes/java/time/OffsetDateTime.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/OffsetDateTime.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1915,12 +1915,12 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(10);  // identifies an OffsetDateTime
-     *  // the datetime excluding the one byte header
-     *  // the offset excluding the one byte header
+     *  // the datetime excluding the one byte header
+     *  // the offset excluding the one byte header
      * 
* * @return the instance of {@code Ser}, not null diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/OffsetTime.java --- a/src/java.base/share/classes/java/time/OffsetTime.java Thu Oct 11 16:41:13 2018 +0200 +++ b/src/java.base/share/classes/java/time/OffsetTime.java Thu Oct 11 09:20:07 2018 -0700 @@ -1400,12 +1400,12 @@ //----------------------------------------------------------------------- /** * Writes the object using a - * dedicated serialized form. + * dedicated serialized form. * @serialData *
      *  out.writeByte(9);  // identifies an OffsetTime
-     *  // the time excluding the one byte header
-     *  // the offset excluding the one byte header
+     *  // the time excluding the one byte header
+     *  // the offset excluding the one byte header
      * 
* * @return the instance of {@code Ser}, not null diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/Period.java --- a/src/java.base/share/classes/java/time/Period.java Thu Oct 11 16:41:13 2018 +0200 +++ b/src/java.base/share/classes/java/time/Period.java Thu Oct 11 09:20:07 2018 -0700 @@ -1041,7 +1041,7 @@ //----------------------------------------------------------------------- /** * Writes the object using a - * dedicated serialized form. + * dedicated serialized form. * @serialData *
      *  out.writeByte(14);  // identifies a Period
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/Ser.java
--- a/src/java.base/share/classes/java/time/Ser.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/Ser.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -139,20 +139,20 @@
      * in the stream.  Refer to each class {@code writeReplace}
      * serialized form for the value of the type and sequence of values for the type.
      * 
      *
      * @param out  the data stream to write to, not null
@@ -223,20 +223,20 @@
      * {@code Ser} object.
      *
      * 
    - *
  • Duration - {@code Duration.ofSeconds(seconds, nanos);} - *
  • Instant - {@code Instant.ofEpochSecond(seconds, nanos);} - *
  • LocalDate - {@code LocalDate.of(year, month, day);} - *
  • LocalDateTime - {@code LocalDateTime.of(date, time);} - *
  • LocalTime - {@code LocalTime.of(hour, minute, second, nano);} - *
  • MonthDay - {@code MonthDay.of(month, day);} - *
  • OffsetTime - {@code OffsetTime.of(time, offset);} - *
  • OffsetDateTime - {@code OffsetDateTime.of(dateTime, offset);} - *
  • Period - {@code Period.of(years, months, days);} - *
  • Year - {@code Year.of(year);} - *
  • YearMonth - {@code YearMonth.of(year, month);} - *
  • ZonedDateTime - {@code ZonedDateTime.ofLenient(dateTime, offset, zone);} - *
  • ZoneId - {@code ZoneId.of(id);} - *
  • ZoneOffset - {@code (offsetByte == 127 ? ZoneOffset.ofTotalSeconds(in.readInt()) : ZoneOffset.ofTotalSeconds(offsetByte * 900));} + *
  • Duration - {@code Duration.ofSeconds(seconds, nanos);} + *
  • Instant - {@code Instant.ofEpochSecond(seconds, nanos);} + *
  • LocalDate - {@code LocalDate.of(year, month, day);} + *
  • LocalDateTime - {@code LocalDateTime.of(date, time);} + *
  • LocalTime - {@code LocalTime.of(hour, minute, second, nano);} + *
  • MonthDay - {@code MonthDay.of(month, day);} + *
  • OffsetTime - {@code OffsetTime.of(time, offset);} + *
  • OffsetDateTime - {@code OffsetDateTime.of(dateTime, offset);} + *
  • Period - {@code Period.of(years, months, days);} + *
  • Year - {@code Year.of(year);} + *
  • YearMonth - {@code YearMonth.of(year, month);} + *
  • ZonedDateTime - {@code ZonedDateTime.ofLenient(dateTime, offset, zone);} + *
  • ZoneId - {@code ZoneId.of(id);} + *
  • ZoneOffset - {@code (offsetByte == 127 ? ZoneOffset.ofTotalSeconds(in.readInt()) : ZoneOffset.ofTotalSeconds(offsetByte * 900));} *
* * @param in the data to read, not null diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/Year.java --- a/src/java.base/share/classes/java/time/Year.java Thu Oct 11 16:41:13 2018 +0200 +++ b/src/java.base/share/classes/java/time/Year.java Thu Oct 11 09:20:07 2018 -0700 @@ -1088,7 +1088,7 @@ //----------------------------------------------------------------------- /** * Writes the object using a - * dedicated serialized form. + * dedicated serialized form. * @serialData *
      *  out.writeByte(11);  // identifies a Year
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/YearMonth.java
--- a/src/java.base/share/classes/java/time/YearMonth.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/YearMonth.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1212,7 +1212,7 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(12);  // identifies a YearMonth
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/ZoneId.java
--- a/src/java.base/share/classes/java/time/ZoneId.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/ZoneId.java	Thu Oct 11 09:20:07 2018 -0700
@@ -641,7 +641,7 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(7);  // identifies a ZoneId (not ZoneOffset)
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/ZoneOffset.java
--- a/src/java.base/share/classes/java/time/ZoneOffset.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/ZoneOffset.java	Thu Oct 11 09:20:07 2018 -0700
@@ -750,7 +750,7 @@
     // -----------------------------------------------------------------------
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(8);                  // identifies a ZoneOffset
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/ZoneRegion.java
--- a/src/java.base/share/classes/java/time/ZoneRegion.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/ZoneRegion.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -180,7 +180,7 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(7);  // identifies a ZoneId (not ZoneOffset)
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/ZonedDateTime.java
--- a/src/java.base/share/classes/java/time/ZonedDateTime.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/ZonedDateTime.java	Thu Oct 11 09:20:07 2018 -0700
@@ -2224,13 +2224,13 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(6);  // identifies a ZonedDateTime
-     *  // the dateTime excluding the one byte header
-     *  // the offset excluding the one byte header
-     *  // the zone ID excluding the one byte header
+     *  // the dateTime excluding the one byte header
+     *  // the offset excluding the one byte header
+     *  // the zone ID excluding the one byte header
      * 
* * @return the instance of {@code Ser}, not null diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/chrono/AbstractChronology.java --- a/src/java.base/share/classes/java/time/chrono/AbstractChronology.java Thu Oct 11 16:41:13 2018 +0200 +++ b/src/java.base/share/classes/java/time/chrono/AbstractChronology.java Thu Oct 11 09:20:07 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 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 @@ -721,7 +721,7 @@ //----------------------------------------------------------------------- /** * Writes the Chronology using a - * dedicated serialized form. + * dedicated serialized form. *
      *  out.writeByte(1);  // identifies this as a Chronology
      *  out.writeUTF(getId());
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/chrono/ChronoLocalDateTimeImpl.java
--- a/src/java.base/share/classes/java/time/chrono/ChronoLocalDateTimeImpl.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/chrono/ChronoLocalDateTimeImpl.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -399,7 +399,7 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the ChronoLocalDateTime using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(2);              // identifies a ChronoLocalDateTime
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/chrono/ChronoPeriodImpl.java
--- a/src/java.base/share/classes/java/time/chrono/ChronoPeriodImpl.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/chrono/ChronoPeriodImpl.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -355,7 +355,7 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the Chronology using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * 
      *  out.writeByte(12);  // identifies this as a ChronoPeriodImpl
      *  out.writeUTF(getId());  // the chronology
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/chrono/ChronoZonedDateTimeImpl.java
--- a/src/java.base/share/classes/java/time/chrono/ChronoZonedDateTimeImpl.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/chrono/ChronoZonedDateTimeImpl.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -322,7 +322,7 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the ChronoZonedDateTime using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(3);                  // identifies a ChronoZonedDateTime
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/chrono/HijrahChronology.java
--- a/src/java.base/share/classes/java/time/chrono/HijrahChronology.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/chrono/HijrahChronology.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -1011,7 +1011,7 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the Chronology using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(1);     // identifies a Chronology
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/chrono/HijrahDate.java
--- a/src/java.base/share/classes/java/time/chrono/HijrahDate.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/chrono/HijrahDate.java	Thu Oct 11 09:20:07 2018 -0700
@@ -663,7 +663,7 @@
 
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(6);                 // identifies a HijrahDate
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/chrono/IsoChronology.java
--- a/src/java.base/share/classes/java/time/chrono/IsoChronology.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/chrono/IsoChronology.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -680,7 +680,7 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the Chronology using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(1);     // identifies a Chronology
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/chrono/JapaneseChronology.java
--- a/src/java.base/share/classes/java/time/chrono/JapaneseChronology.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/chrono/JapaneseChronology.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -507,7 +507,7 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the Chronology using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(1);     // identifies a Chronology
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/chrono/JapaneseDate.java
--- a/src/java.base/share/classes/java/time/chrono/JapaneseDate.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/chrono/JapaneseDate.java	Thu Oct 11 09:20:07 2018 -0700
@@ -725,7 +725,7 @@
 
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(4);                 // identifies a JapaneseDate
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/chrono/JapaneseEra.java
--- a/src/java.base/share/classes/java/time/chrono/JapaneseEra.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/chrono/JapaneseEra.java	Thu Oct 11 09:20:07 2018 -0700
@@ -395,7 +395,7 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(5);        // identifies a JapaneseEra
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/chrono/MinguoChronology.java
--- a/src/java.base/share/classes/java/time/chrono/MinguoChronology.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/chrono/MinguoChronology.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -337,7 +337,7 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the Chronology using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(1);     // identifies a Chronology
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/chrono/MinguoDate.java
--- a/src/java.base/share/classes/java/time/chrono/MinguoDate.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/chrono/MinguoDate.java	Thu Oct 11 09:20:07 2018 -0700
@@ -487,7 +487,7 @@
 
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(8);                 // identifies a MinguoDate
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/chrono/Ser.java
--- a/src/java.base/share/classes/java/time/chrono/Ser.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/chrono/Ser.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -136,18 +136,18 @@
      * in the stream.  Refer to each class {@code writeReplace}
      * serialized form for the value of the type and sequence of values for the type.
      * 
      *
      * @param out  the data stream to write to, not null
@@ -202,18 +202,18 @@
      * {@code Ser} object.
      *
      * 
      *
      * @param in  the data stream to read from, not null
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/chrono/ThaiBuddhistChronology.java
--- a/src/java.base/share/classes/java/time/chrono/ThaiBuddhistChronology.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/chrono/ThaiBuddhistChronology.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -374,7 +374,7 @@
     //-----------------------------------------------------------------------
     /**
      * Writes the Chronology using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(1);     // identifies a Chronology
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/chrono/ThaiBuddhistDate.java
--- a/src/java.base/share/classes/java/time/chrono/ThaiBuddhistDate.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/chrono/ThaiBuddhistDate.java	Thu Oct 11 09:20:07 2018 -0700
@@ -487,7 +487,7 @@
 
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
      *  out.writeByte(10);                // identifies a ThaiBuddhistDate
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/zone/Ser.java
--- a/src/java.base/share/classes/java/time/zone/Ser.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/zone/Ser.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -125,9 +125,9 @@
      * serialized form for the value of the type and sequence of values for the type.
      *
      * 
      *
      * @param out  the data stream to write to, not null
@@ -168,11 +168,11 @@
      * {@code Ser} object.
      *
      * 
      * @param in  the data to read, not null
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/zone/ZoneOffsetTransition.java
--- a/src/java.base/share/classes/java/time/zone/ZoneOffsetTransition.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/zone/ZoneOffsetTransition.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -190,10 +190,10 @@
 
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * Refer to the serialized form of
-     * ZoneRules.writeReplace
+     * ZoneRules.writeReplace
      * for the encoding of epoch seconds and offsets.
      * 
{@code
      *
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/zone/ZoneOffsetTransitionRule.java
--- a/src/java.base/share/classes/java/time/zone/ZoneOffsetTransitionRule.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/zone/ZoneOffsetTransitionRule.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -249,10 +249,10 @@
 
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * Refer to the serialized form of
-     * ZoneRules.writeReplace
+     * ZoneRules.writeReplace
      * for the encoding of epoch seconds and offsets.
      * 
{@code
      *
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/time/zone/ZoneRules.java
--- a/src/java.base/share/classes/java/time/zone/ZoneRules.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/time/zone/ZoneRules.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -327,7 +327,7 @@
 
     /**
      * Writes the object using a
-     * dedicated serialized form.
+     * dedicated serialized form.
      * @serialData
      * 
{@code
      *
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/util/jar/Attributes.java
--- a/src/java.base/share/classes/java/util/jar/Attributes.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/util/jar/Attributes.java	Thu Oct 11 09:20:07 2018 -0700
@@ -550,7 +550,7 @@
          * {@code Name} object for {@code Manifest-Version}
          * manifest attribute. This attribute indicates the version number
          * of the manifest standard to which a JAR file's manifest conforms.
-         * @see 
+         * @see 
          *      Manifest and Signature Specification
          */
         public static final Name MANIFEST_VERSION = new Name("Manifest-Version");
@@ -558,7 +558,7 @@
         /**
          * {@code Name} object for {@code Signature-Version}
          * manifest attribute used when signing JAR files.
-         * @see 
+         * @see 
          *      Manifest and Signature Specification
          */
         public static final Name SIGNATURE_VERSION = new Name("Signature-Version");
@@ -572,7 +572,7 @@
         /**
          * {@code Name} object for {@code Class-Path}
          * manifest attribute.
-         * @see 
+         * @see 
          *      JAR file specification
          */
         public static final Name CLASS_PATH = new Name("Class-Path");
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/java/util/regex/Pattern.java
--- a/src/java.base/share/classes/java/util/regex/Pattern.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/java/util/regex/Pattern.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1433,10 +1433,10 @@
 
     /**
      * The pattern is converted to normalized form ({@link
-     * java.text.Normalizer.Form.NFC NFC}, canonical decomposition,
+     * java.text.Normalizer.Form#NFC NFC}, canonical decomposition,
      * followed by canonical composition for the character class
-     * part, and {@link java.text.Normalizer.Form.NFD NFD},
-     * canonical decomposition) for the rest), and then a pure
+     * part, and {@link java.text.Normalizer.Form#NFD NFD},
+     * canonical decomposition for the rest), and then a pure
      * group is constructed to match canonical equivalences of the
      * characters.
      */
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/classes/sun/reflect/annotation/AnnotatedTypeFactory.java
--- a/src/java.base/share/classes/sun/reflect/annotation/AnnotatedTypeFactory.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/classes/sun/reflect/annotation/AnnotatedTypeFactory.java	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -31,6 +31,8 @@
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
+import java.util.StringJoiner;
 
 import static sun.reflect.annotation.TypeAnnotation.*;
 
@@ -202,6 +204,68 @@
 
         }
 
+        @Override // java.lang.Object
+        public String toString() {
+            // Reusable toString implementation, but needs to be
+            // specialized for quirks of arrays.
+            return annotationsToString(getAnnotations(), false) + type.toString();
+        }
+
+        protected String annotationsToString(Annotation[] annotations, boolean leadingSpace) {
+            if (annotations != null && annotations.length > 0) {
+                StringJoiner sj = new StringJoiner(" ");
+                if (leadingSpace) {
+                    sj.add(""); // Add a space
+                }
+
+                for (Annotation annotation : annotations) {
+                    sj.add(annotation.toString());
+                }
+
+                if (!leadingSpace) {
+                    sj.add("");
+                }
+                return sj.toString();
+            } else {
+                return "";
+            }
+        }
+
+        protected boolean equalsTypeAndAnnotations(AnnotatedType that) {
+            return getType().equals(that.getType()) &&
+                // Treat ordering of annotations as significant
+                Arrays.equals(getAnnotations(), that.getAnnotations()) &&
+                Objects.equals(getAnnotatedOwnerType(), that.getAnnotatedOwnerType());
+        }
+
+        int baseHashCode() {
+            return type.hashCode() ^
+                // Acceptable to use Objects.hash rather than
+                // Arrays.deepHashCode since the elements of the array
+                // are not themselves arrays.
+                Objects.hash((Object[])getAnnotations()) ^
+                Objects.hash(getAnnotatedOwnerType());
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (o instanceof AnnotatedType &&
+                !(o instanceof AnnotatedArrayType) &&
+                !(o instanceof AnnotatedTypeVariable) &&
+                !(o instanceof AnnotatedParameterizedType) &&
+                !(o instanceof AnnotatedWildcardType)) {
+                AnnotatedType that = (AnnotatedType) o;
+                return equalsTypeAndAnnotations(that);
+            } else {
+                return false;
+            }
+        }
+
+        @Override
+        public int hashCode() {
+            return baseHashCode();
+        }
+
         // Implementation details
         final LocationInfo getLocation() {
             return location;
@@ -244,6 +308,52 @@
             }
             return ((GenericArrayType)t).getGenericComponentType();
         }
+
+        @Override
+        public String toString() {
+            // To annotate the full type of an array, the annotations
+            // are placed between the type and the brackets. For
+            // example, to annotate an array of Strings, the syntax used is
+            //
+            // String @TypeAnnotation []
+            //
+            // and *not*
+            //
+            // @TypeAnnotation String[].
+            //
+            // The toString output should strive to be reusable in
+            // source code. Therefore, the general logic of putting
+            // the annotations before a textual representation of the
+            // type need to be overridden for arrays.
+            StringBuilder sb = new StringBuilder();
+
+            AnnotatedType componentType = this;
+            while (componentType instanceof AnnotatedArrayType) {
+                AnnotatedArrayType annotatedArrayType = (AnnotatedArrayType) componentType;
+                sb.append(annotationsToString(annotatedArrayType.getAnnotations(), true) + "[]");
+                componentType = annotatedArrayType.getAnnotatedGenericComponentType();
+            }
+
+            sb.insert(0, componentType.toString());
+            return sb.toString();
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (o instanceof AnnotatedArrayType) {
+                AnnotatedArrayType that = (AnnotatedArrayType) o;
+                return equalsTypeAndAnnotations(that) &&
+                    Objects.equals(getAnnotatedGenericComponentType(),
+                                   that.getAnnotatedGenericComponentType());
+            } else {
+                return false;
+            }
+        }
+
+        @Override
+        public int hashCode() {
+            return baseHashCode() ^ getAnnotatedGenericComponentType().hashCode();
+        }
     }
 
     private static final class AnnotatedTypeVariableImpl extends AnnotatedTypeBaseImpl implements AnnotatedTypeVariable {
@@ -266,6 +376,23 @@
         private TypeVariable getTypeVariable() {
             return (TypeVariable)getType();
         }
+
+        @Override
+        public boolean equals(Object o) {
+            if (o instanceof AnnotatedTypeVariable) {
+                AnnotatedTypeVariable that = (AnnotatedTypeVariable) o;
+                return equalsTypeAndAnnotations(that) &&
+                    Arrays.equals(getAnnotatedBounds(), that.getAnnotatedBounds());
+            } else {
+                return false;
+            }
+        }
+
+        @Override
+        public int hashCode() {
+            return baseHashCode() ^
+                Objects.hash((Object[])getAnnotatedBounds());
+        }
     }
 
     private static final class AnnotatedParameterizedTypeImpl extends AnnotatedTypeBaseImpl
@@ -316,6 +443,23 @@
         private ParameterizedType getParameterizedType() {
             return (ParameterizedType)getType();
         }
+
+        @Override
+        public boolean equals(Object o) {
+            if (o instanceof AnnotatedParameterizedType) {
+                AnnotatedParameterizedType that = (AnnotatedParameterizedType) o;
+                return equalsTypeAndAnnotations(that) &&
+                    Arrays.equals(getAnnotatedActualTypeArguments(), that.getAnnotatedActualTypeArguments());
+            } else {
+                return false;
+            }
+        }
+
+        @Override
+        public int hashCode() {
+            return baseHashCode() ^
+                Objects.hash((Object[])getAnnotatedActualTypeArguments());
+        }
     }
 
     private static final class AnnotatedWildcardTypeImpl extends AnnotatedTypeBaseImpl implements AnnotatedWildcardType {
@@ -378,5 +522,26 @@
         private boolean hasUpperBounds() {
             return hasUpperBounds;
         }
+
+        @Override
+        public boolean equals(Object o) {
+            if (o instanceof AnnotatedWildcardType) {
+                AnnotatedWildcardType that = (AnnotatedWildcardType) o;
+                return equalsTypeAndAnnotations(that) &&
+                    // Treats ordering as significant
+                    Arrays.equals(getAnnotatedLowerBounds(), that.getAnnotatedLowerBounds()) &&
+                    // Treats ordering as significant
+                    Arrays.equals(getAnnotatedUpperBounds(), that.getAnnotatedUpperBounds());
+            } else {
+                return false;
+            }
+        }
+
+        @Override
+        public int hashCode() {
+            return baseHashCode() ^
+                Objects.hash((Object[])getAnnotatedLowerBounds()) ^
+                Objects.hash((Object[])getAnnotatedUpperBounds());
+        }
     }
 }
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/native/libjava/io_util.c
--- a/src/java.base/share/native/libjava/io_util.c	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/native/libjava/io_util.c	Thu Oct 11 09:20:07 2018 -0700
@@ -201,7 +201,7 @@
     }
 }
 
-JNIEXPORT void JNICALL
+void
 throwFileNotFoundException(JNIEnv *env, jstring path)
 {
     char buf[256];
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/native/libjava/io_util.h
--- a/src/java.base/share/native/libjava/io_util.h	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/native/libjava/io_util.h	Thu Oct 11 09:20:07 2018 -0700
@@ -54,8 +54,7 @@
 void writeBytes(JNIEnv *env, jobject this, jbyteArray bytes, jint off,
                 jint len, jboolean append, jfieldID fid);
 void fileOpen(JNIEnv *env, jobject this, jstring path, jfieldID fid, int flags);
-JNIEXPORT void JNICALL
-throwFileNotFoundException(JNIEnv *env, jstring path);
+void throwFileNotFoundException(JNIEnv *env, jstring path);
 
 /*
  * Macros for managing platform strings.  The typical usage pattern is:
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/share/native/libnet/net_util.h
--- a/src/java.base/share/native/libnet/net_util.h	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/share/native/libnet/net_util.h	Thu Oct 11 09:20:07 2018 -0700
@@ -122,8 +122,6 @@
 
 JNIEXPORT void JNICALL NET_ThrowNew(JNIEnv *env, int errorNum, char *msg);
 
-int NET_GetError();
-
 void NET_ThrowCurrent(JNIEnv *env, char *msg);
 
 jfieldID NET_GetFileDescriptorID(JNIEnv *env);
@@ -202,7 +200,6 @@
 
 unsigned short in_cksum(unsigned short *addr, int len);
 
-JNIEXPORT jint JNICALL
-NET_Wait(JNIEnv *env, jint fd, jint flags, jint timeout);
+jint NET_Wait(JNIEnv *env, jint fd, jint flags, jint timeout);
 
 #endif /* NET_UTILS_H */
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/unix/native/libnet/net_util_md.c
--- a/src/java.base/unix/native/libnet/net_util_md.c	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/unix/native/libnet/net_util_md.c	Thu Oct 11 09:20:07 2018 -0700
@@ -1546,7 +1546,7 @@
  * It returns the time left from the timeout (possibly 0), or -1 if it expired.
  */
 
-JNIEXPORT jint JNICALL
+jint
 NET_Wait(JNIEnv *env, jint fd, jint flags, jint timeout)
 {
     jlong prevNanoTime = JVM_NanoTime(env, 0);
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/unix/native/libnio/ch/Net.c
--- a/src/java.base/unix/native/libnio/ch/Net.c	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/unix/native/libnio/ch/Net.c	Thu Oct 11 09:20:07 2018 -0700
@@ -747,8 +747,7 @@
 
 /* Declared in nio_util.h */
 
-JNIEXPORT jint JNICALL
-handleSocketError(JNIEnv *env, jint errorValue)
+jint handleSocketError(JNIEnv *env, jint errorValue)
 {
     char *xn;
     switch (errorValue) {
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/unix/native/libnio/ch/nio_util.h
--- a/src/java.base/unix/native/libnio/ch/nio_util.h	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/unix/native/libnio/ch/nio_util.h	Thu Oct 11 09:20:07 2018 -0700
@@ -62,5 +62,4 @@
 
 /* Defined in Net.c */
 
-JNIEXPORT jint JNICALL
-handleSocketError(JNIEnv *env, jint errorValue);
+jint handleSocketError(JNIEnv *env, jint errorValue);
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/windows/native/libjava/io_util_md.c
--- a/src/java.base/windows/native/libjava/io_util_md.c	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/windows/native/libjava/io_util_md.c	Thu Oct 11 09:20:07 2018 -0700
@@ -213,8 +213,7 @@
     return pathbuf;
 }
 
-JNIEXPORT FD JNICALL
-winFileHandleOpen(JNIEnv *env, jstring path, int flags)
+FD winFileHandleOpen(JNIEnv *env, jstring path, int flags)
 {
     const DWORD access =
         (flags & O_WRONLY) ?  GENERIC_WRITE :
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/windows/native/libjava/io_util_md.h
--- a/src/java.base/windows/native/libjava/io_util_md.h	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/windows/native/libjava/io_util_md.h	Thu Oct 11 09:20:07 2018 -0700
@@ -56,8 +56,7 @@
  * Returns an opaque handle to file named by "path".  If an error occurs,
  * returns -1 and an exception is pending.
  */
-JNIEXPORT FD JNICALL
-winFileHandleOpen(JNIEnv *env, jstring path, int flags);
+FD winFileHandleOpen(JNIEnv *env, jstring path, int flags);
 
 /*
  * Macros to set/get fd from the java.io.FileDescriptor.
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.base/windows/native/libnet/net_util_md.c
--- a/src/java.base/windows/native/libnet/net_util_md.c	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.base/windows/native/libnet/net_util_md.c	Thu Oct 11 09:20:07 2018 -0700
@@ -903,7 +903,7 @@
  * It returns the time left from the timeout, or -1 if it expired.
  */
 
-JNIEXPORT jint JNICALL
+jint
 NET_Wait(JNIEnv *env, jint fd, jint flags, jint timeout)
 {
     jlong prevTime = JVM_CurrentTimeMillis(env, 0);
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.desktop/macosx/native/libjsound/PLATFORM_API_MacOSX_Ports.cpp
--- a/src/java.desktop/macosx/native/libjsound/PLATFORM_API_MacOSX_Ports.cpp	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.desktop/macosx/native/libjsound/PLATFORM_API_MacOSX_Ports.cpp	Thu Oct 11 09:20:07 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2012, 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
@@ -609,7 +609,7 @@
                 // get the channel name
                 char *channelName;
                 CFStringRef cfname = NULL;
-                const AudioObjectPropertyAddress address = {kAudioObjectPropertyElementName, port->scope, ch};
+                const AudioObjectPropertyAddress address = {kAudioObjectPropertyElementName, port->scope, (unsigned)ch};
                 UInt32 size = sizeof(cfname);
                 OSStatus err = AudioObjectGetPropertyData(mixer->deviceID, &address, 0, NULL, &size, &cfname);
                 if (err == noErr) {
diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.net.http/share/classes/java/net/http/WebSocket.java
--- a/src/java.net.http/share/classes/java/net/http/WebSocket.java	Thu Oct 11 16:41:13 2018 +0200
+++ b/src/java.net.http/share/classes/java/net/http/WebSocket.java	Thu Oct 11 09:20:07 2018 -0700
@@ -197,9 +197,9 @@
          * 
  • {@link SecurityException} - * if a security manager has been installed and it denies * {@link java.net.URLPermission access} to {@code uri}. - * Security checks + * Security checks * contains more information relating to the security context - * in which the the listener is invoked. + * in which the listener is invoked. *
  • {@link IllegalArgumentException} - * if any of the arguments of this builder's methods are * illegal diff -r 2ea07b19b446 -r 4762fcec08d4 src/java.xml.crypto/share/classes/javax/xml/crypto/dsig/Reference.java --- a/src/java.xml.crypto/share/classes/javax/xml/crypto/dsig/Reference.java Thu Oct 11 16:41:13 2018 +0200 +++ b/src/java.xml.crypto/share/classes/javax/xml/crypto/dsig/Reference.java Thu Oct 11 09:20:07 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 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 @@ -144,7 +144,7 @@ /** * Returns the dereferenced data, if - * reference caching + * reference caching * is enabled. This is the result of dereferencing the URI of this * reference during a validation or generation operation. * @@ -156,7 +156,7 @@ /** * Returns the pre-digested input stream, if - * reference caching + * reference caching * is enabled. This is the input to the digest operation during a * validation or signing operation. * diff -r 2ea07b19b446 -r 4762fcec08d4 src/jdk.hotspot.agent/share/native/libsaproc/sadis.c --- a/src/jdk.hotspot.agent/share/native/libsaproc/sadis.c Thu Oct 11 16:41:13 2018 +0200 +++ b/src/jdk.hotspot.agent/share/native/libsaproc/sadis.c Thu Oct 11 09:20:07 2018 -0700 @@ -26,7 +26,7 @@ /* * This file implements a binding between Java and the hsdis - * dissasembler. It should compile on Linux/Solaris and Windows. + * disassembler. It should compile on Linux/Solaris and Windows. * The only platform dependent pieces of the code for doing * dlopen/dlsym to find the entry point in hsdis. All the rest is * standard JNI code. diff -r 2ea07b19b446 -r 4762fcec08d4 src/jdk.jdi/share/classes/com/sun/tools/jdi/InvokableTypeImpl.java --- a/src/jdk.jdi/share/classes/com/sun/tools/jdi/InvokableTypeImpl.java Thu Oct 11 16:41:13 2018 +0200 +++ b/src/jdk.jdi/share/classes/com/sun/tools/jdi/InvokableTypeImpl.java Thu Oct 11 09:20:07 2018 -0700 @@ -236,15 +236,7 @@ final MethodImpl method, final ValueImpl[] args, final int options) { - /* - * Cache the values of args when TRACE_SENDS is enabled, for later printing. - * If not cached, printing causes a remote call while synchronized, and deadlock. - */ - if ((vm.traceFlags & VirtualMachine.TRACE_SENDS) != 0) { - for (ValueImpl arg: args) { - arg.toString(); - } - } + CommandSender sender = getInvokeMethodSender(thread, method, args, options); PacketStream stream; if ((options & ClassType.INVOKE_SINGLE_THREADED) != 0) { diff -r 2ea07b19b446 -r 4762fcec08d4 src/jdk.jdi/share/classes/com/sun/tools/jdi/VMState.java --- a/src/jdk.jdi/share/classes/com/sun/tools/jdi/VMState.java Thu Oct 11 16:41:13 2018 +0200 +++ b/src/jdk.jdi/share/classes/com/sun/tools/jdi/VMState.java Thu Oct 11 09:20:07 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 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 @@ -26,10 +26,7 @@ package com.sun.tools.jdi; import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Iterator; -import java.util.List; +import java.util.*; import com.sun.jdi.ThreadGroupReference; import com.sun.jdi.ThreadReference; @@ -44,12 +41,10 @@ /* * Certain information can be cached only when the entire VM is - * suspended and there are no pending resumes. The fields below - * are used to track whether there are pending resumes. (There - * is an assumption that JDWP command ids are increasing over time.) + * suspended and there are no pending resumes. The field below + * is used to track whether there are pending resumes. */ - private int lastCompletedCommandId = 0; // synchronized (this) - private int lastResumeCommandId = 0; // synchronized (this) + private final Set pendingResumeCommands = Collections.synchronizedSet(new HashSet<>()); // This is cached only while the VM is suspended private static class Cache { @@ -97,12 +92,12 @@ * A JDWP command has been completed (reply has been received). * Update data that tracks pending resume commands. */ - synchronized void notifyCommandComplete(int id) { - lastCompletedCommandId = id; + void notifyCommandComplete(int id) { + pendingResumeCommands.remove(id); } synchronized void freeze() { - if (cache == null && (lastCompletedCommandId >= lastResumeCommandId)) { + if (cache == null && (pendingResumeCommands.isEmpty())) { /* * No pending resumes to worry about. The VM is suspended * and additional state can be cached. Notify all @@ -115,7 +110,7 @@ synchronized PacketStream thawCommand(CommandSender sender) { PacketStream stream = sender.send(); - lastResumeCommandId = stream.id(); + pendingResumeCommands.add(stream.id()); thaw(); return stream; } diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/Makefile --- a/test/hotspot/jtreg/Makefile Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/Makefile Thu Oct 11 09:20:07 2018 -0700 @@ -24,8 +24,6 @@ NATIVE_TEST_PATH := hotspot/jtreg/native -TREAT_EXIT_CODE_1_AS_0 := true - CLEAN_BEFORE_PREP := true USE_JTREG_VERSION := 4.1 diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/ProblemList.txt --- a/test/hotspot/jtreg/ProblemList.txt Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/ProblemList.txt Thu Oct 11 09:20:07 2018 -0700 @@ -59,6 +59,8 @@ compiler/cpuflags/TestAESIntrinsicsOnSupportedConfig.java 8190680 generic-all +compiler/runtime/Test8168712.java 8211769,8211771 generic-ppc64,generic-ppc64le,linux-s390x + ############################################################################# # :hotspot_gc @@ -91,50 +93,50 @@ serviceability/sa/ClhsdbAttach.java 8193639 solaris-all serviceability/sa/ClhsdbCDSCore.java 8193639 solaris-all -serviceability/sa/ClhsdbCDSJstackPrintAll.java 8193639 solaris-all +serviceability/sa/ClhsdbCDSJstackPrintAll.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 serviceability/sa/CDSJMapClstats.java 8193639 solaris-all serviceability/sa/ClhsdbField.java 8193639 solaris-all -serviceability/sa/ClhsdbFindPC.java 8193639 solaris-all +serviceability/sa/ClhsdbFindPC.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 serviceability/sa/ClhsdbFlags.java 8193639 solaris-all -serviceability/sa/ClhsdbInspect.java 8193639 solaris-all -serviceability/sa/ClhsdbJdis.java 8193639 solaris-all -serviceability/sa/ClhsdbJhisto.java 8193639 solaris-all -serviceability/sa/ClhsdbJstack.java 8193639 solaris-all +serviceability/sa/ClhsdbInspect.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 +serviceability/sa/ClhsdbJdis.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 +serviceability/sa/ClhsdbJhisto.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 +serviceability/sa/ClhsdbJstack.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 serviceability/sa/ClhsdbLongConstant.java 8193639 solaris-all -serviceability/sa/ClhsdbPmap.java 8193639 solaris-all +serviceability/sa/ClhsdbPmap.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 serviceability/sa/ClhsdbPrintAll.java 8193639 solaris-all -serviceability/sa/ClhsdbPrintAs.java 8193639 solaris-all +serviceability/sa/ClhsdbPrintAs.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 serviceability/sa/ClhsdbPrintStatics.java 8193639 solaris-all -serviceability/sa/ClhsdbPstack.java 8193639 solaris-all +serviceability/sa/ClhsdbPstack.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 serviceability/sa/ClhsdbRegionDetailsScanOopsForG1.java 8193639 solaris-all -serviceability/sa/ClhsdbScanOops.java 8193639 solaris-all -serviceability/sa/ClhsdbSource.java 8193639 solaris-all +serviceability/sa/ClhsdbScanOops.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 +serviceability/sa/ClhsdbSource.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 serviceability/sa/ClhsdbSymbol.java 8193639 solaris-all serviceability/sa/ClhsdbSymbolTable.java 8193639 solaris-all -serviceability/sa/ClhsdbThread.java 8193639 solaris-all +serviceability/sa/ClhsdbThread.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 serviceability/sa/ClhsdbVmStructsDump.java 8193639 solaris-all -serviceability/sa/ClhsdbWhere.java 8193639 solaris-all -serviceability/sa/DeadlockDetectionTest.java 8193639 solaris-all -serviceability/sa/JhsdbThreadInfoTest.java 8193639 solaris-all +serviceability/sa/ClhsdbWhere.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 +serviceability/sa/DeadlockDetectionTest.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 +serviceability/sa/JhsdbThreadInfoTest.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java 8193639 solaris-all serviceability/sa/sadebugd/SADebugDTest.java 8163805 generic-all serviceability/sa/TestClassDump.java 8193639 solaris-all -serviceability/sa/TestClhsdbJstackLock.java 8193639 solaris-all -serviceability/sa/TestCpoolForInvokeDynamic.java 8193639 solaris-all +serviceability/sa/TestClhsdbJstackLock.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 +serviceability/sa/TestCpoolForInvokeDynamic.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 serviceability/sa/TestDefaultMethods.java 8193639 solaris-all serviceability/sa/TestG1HeapRegion.java 8193639 solaris-all serviceability/sa/TestHeapDumpForInvokeDynamic.java 8193639 solaris-all serviceability/sa/TestHeapDumpForLargeArray.java 8193639 solaris-all serviceability/sa/TestInstanceKlassSize.java 8193639 solaris-all serviceability/sa/TestInstanceKlassSizeForInterface.java 8193639 solaris-all -serviceability/sa/TestIntConstant.java 8193639 solaris-all -serviceability/sa/TestJhsdbJstackLock.java 8193639 solaris-all +serviceability/sa/TestIntConstant.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 +serviceability/sa/TestJhsdbJstackLock.java 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 serviceability/sa/TestJmapCore.java 8193639 solaris-all serviceability/sa/TestJmapCoreMetaspace.java 8193639 solaris-all serviceability/sa/TestPrintMdo.java 8193639 solaris-all serviceability/sa/TestRevPtrsForInvokeDynamic.java 8191270 generic-all serviceability/sa/TestType.java 8193639 solaris-all -serviceability/sa/TestUniverse.java#id0 8193639 solaris-all +serviceability/sa/TestUniverse.java#id0 8193639,8211767 solaris-all,linux-ppc64le,linux-ppc64 ############################################################################# diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/compiler/regalloc/VolatileLoadMemBarsOnlyUses.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/hotspot/jtreg/compiler/regalloc/VolatileLoadMemBarsOnlyUses.java Thu Oct 11 09:20:07 2018 -0700 @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2018, Red Hat, Inc. 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 8210389 + * @summary C2: assert(n->outcnt() != 0 || C->top() == n || n->is_Proj()) failed: No dead instructions after post-alloc + * + * @run main/othervm -Xcomp -XX:CompileOnly=VolatileLoadMemBarsOnlyUses VolatileLoadMemBarsOnlyUses + * + */ + +public class VolatileLoadMemBarsOnlyUses { + + public static final int N = 400; + public static long instanceCount=-94L; + public static volatile byte byFld=-108; + + public int mainTest(String[] strArr1) { + + int i17=9, i19=1, i20=63, i21=-32916, i22=0, iArr[]=new int[N]; + boolean b1=false; + double d3=76.18241; + + for (int i : iArr) { + for (i17 = 2; i17 < 63; i17++) { + if (b1) break; + byFld += (byte)(0.131F + (i17 * i17)); + } + for (i19 = 1; 63 > i19; ++i19) { + for (i21 = 1; i21 < 2; i21++) { + d3 = i22; + if (b1) continue; + i20 = i21; + } + d3 -= byFld; + instanceCount = 46725L; + } + switch ((((i22 >>> 1) % 4) * 5) + 91) { + case 98: + break; + case 110: + break; + case 105: + break; + case 103: + break; + default: + } + } + + return i20; + } + public static void main(String[] strArr) { + VolatileLoadMemBarsOnlyUses _instance = new VolatileLoadMemBarsOnlyUses(); + for (int i = 0; i < 10; i++ ) { + _instance.mainTest(strArr); + } + } +} diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/gc/epsilon/TestAlignment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/hotspot/jtreg/gc/epsilon/TestAlignment.java Thu Oct 11 09:20:07 2018 -0700 @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2018, Red Hat, Inc. 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 TestAlignment + * @key gc + * @requires vm.gc.Epsilon & !vm.graal.enabled + * @summary Check Epsilon runs fine with (un)usual alignments + * @bug 8212005 + * @run main/othervm -XX:+UnlockExperimentalVMOptions -Xmx128m -XX:+UseEpsilonGC -XX:+UseTLAB TestAlignment + * @run main/othervm -XX:+UnlockExperimentalVMOptions -Xmx128m -XX:+UseEpsilonGC -XX:-UseTLAB TestAlignment + * @run main/othervm -XX:+UnlockExperimentalVMOptions -Xmx128m -XX:+UseEpsilonGC -XX:+UseTLAB -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=16 TestAlignment + * @run main/othervm -XX:+UnlockExperimentalVMOptions -Xmx128m -XX:+UseEpsilonGC -XX:-UseTLAB -XX:+IgnoreUnrecognizedVMOptions -XX:ObjectAlignmentInBytes=16 TestAlignment + */ + +public class TestAlignment { + static Object sink; + + public static void main(String[] args) throws Exception { + for (int c = 0; c < 1000; c++) { + sink = new byte[c]; + } + } +} diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/runtime/InnerClassesAttr/Base.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/hotspot/jtreg/runtime/InnerClassesAttr/Base.java Thu Oct 11 09:20:07 2018 -0700 @@ -0,0 +1,28 @@ +/* + * 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. + * + */ + +package com.g; +class Base { + static class Builder { } +} diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/runtime/InnerClassesAttr/Child.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/hotspot/jtreg/runtime/InnerClassesAttr/Child.java Thu Oct 11 09:20:07 2018 -0700 @@ -0,0 +1,30 @@ +/* + * 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. + * + */ + +package com.g; +public final class Child extends Base { + public Builder setJobName() { + return null; + } +} diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/runtime/InnerClassesAttr/InnerClassesTest.jasm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/hotspot/jtreg/runtime/InnerClassesAttr/InnerClassesTest.jasm Thu Oct 11 09:20:07 2018 -0700 @@ -0,0 +1,110 @@ +/* + * 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 8079784 + * @compile InnerClassesTest.jasm Base.java Child.java + * @run main com.n.InnerClassesTest + */ + +// Test that if a class's InnerClasses attribute contains a class that is not +// accessible to the class with the attribute then an IllegalAccessError +// exception should not get thrown as a result of the class accessing other +// classes in the InnerClasses attribute. +// +// In this test, class InnerClassesTest has an InnerClasses attribute with two +// entries. One for inaccessable (non-public) class com/g/Base and class +// con/g/Base$Builder. And, one entry for classes com/n/InnerClassTest and +// com/n/InnerClasses/Test$Foo. The test accesses com/n/InnerClsses/Test$Foo +// by calling getSimpleName(). This should not cause an IllegalAccessError +// exception to get thrown. +// +// +// This jasm code was generated from the following Java code. The only +// difference is that, in the jasm code, the order of the entries in the +// InnerClasses attributes for class InnerClassesTest were switched. +// +// package com.n; +// import com.g.Child; +// +// public final class InnerClassesTest { +// +// public static final class Foo { } +// void unused() { +// new Child().setJobName(); +// } +// +// public static void main(String[] args) { +// Class clazz = InnerClassesTest.Foo.class; +// clazz.getSimpleName(); +// } +// } + +package com/n; + +super public final class InnerClassesTest$Foo version 53:0 { + + public Method "":"()V" stack 1 locals 1 { + aload_0; + invokespecial Method java/lang/Object."":"()V"; + return; + } + +public static final InnerClass Foo=class InnerClassesTest$Foo of class InnerClassesTest; + +} // end Class InnerClassesTest$Foo + + +super public final class InnerClassesTest version 53:0 { + + + public Method "":"()V" stack 1 locals 1 { + aload_0; + invokespecial Method java/lang/Object."":"()V"; + return; + } + + Method unused:"()V" stack 2 locals 1 { + new class com/g/Child; + dup; + invokespecial Method com/g/Child."":"()V"; + invokevirtual Method com/g/Child.setJobName:"()Lcom/g/Base$Builder;"; + pop; + return; + } + + public static Method main:"([Ljava/lang/String;)V" stack 1 locals 2 { + ldc class InnerClassesTest$Foo; + astore_1; + aload_1; + invokevirtual Method java/lang/Class.getSimpleName:"()Ljava/lang/String;"; + pop; + return; + } + +static InnerClass Builder=class com/g/Base$Builder of class com/g/Base; +public static final InnerClass Foo=class InnerClassesTest$Foo of class InnerClassesTest; + +} // end Class InnerClassesTest diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestInvokeErrors.java --- a/test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestInvokeErrors.java Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestInvokeErrors.java Thu Oct 11 09:20:07 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 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 8046171 + * @bug 8046171 8211065 * @summary Setup nestmate calls to private methods then use * modified jcod classes to introduce errors. Test with * and without verification enabled @@ -96,14 +96,10 @@ System.out.println("Got expected exception:" + nsme); } - try { - MissingMethodWithSuper m = new MissingMethodWithSuper(); - m.priv_invoke(); - throw new Error("Unexpected success invoking MissingMethodWithSuper.priv_invoke"); - } - catch (NoSuchMethodError nsme) { - System.out.println("Got expected exception:" + nsme); - } + // This test was revised to expect successful invocation of the + // super class method - see JDK-8211065 + MissingMethodWithSuper m = new MissingMethodWithSuper(); + m.priv_invoke(); // Verification of Helper will trigger the nestmate access check failure try { diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/runtime/PrintStringTableStats/PrintStringTableStatsTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/hotspot/jtreg/runtime/PrintStringTableStats/PrintStringTableStatsTest.java Thu Oct 11 09:20:07 2018 -0700 @@ -0,0 +1,43 @@ +/* + * 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. + */ + +import jdk.test.lib.process.ProcessTools; +import jdk.test.lib.process.OutputAnalyzer; + +/* + * @test PrintStringTableStatsTest + * @bug 8211821 + * @library /test/lib + * @run main PrintStringTableStatsTest + */ + +public class PrintStringTableStatsTest { + public static void main(String... args) throws Exception { + ProcessBuilder pb = ProcessTools.createJavaProcessBuilder( + "-XX:+PrintStringTableStatistics", + "--version"); + OutputAnalyzer output = new OutputAnalyzer(pb.start()); + output.shouldContain("Number of buckets"); + output.shouldHaveExitValue(0); + } +} diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/runtime/linkResolver/TestDeletedMethod.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/hotspot/jtreg/runtime/linkResolver/TestDeletedMethod.java Thu Oct 11 09:20:07 2018 -0700 @@ -0,0 +1,65 @@ +/* + * 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 8211065 + * @summary Test that deleting a subclass method implementation results in + * execution of a superclass implementation - if it is accessible. + * @compile TestDeletedMethod.java + * @compile TestDeletedMethod_Sub.jcod TestDeletedMethod_Super.jcod + * @run main/othervm -XX:+RelaxAccessControlCheck TestDeletedMethod + */ + +// The access control relaxation was originally done to ensure an assertion +// in the nestmate logic would not trigger unintentionally because it +// assumed only nestmates could be involved. The assertion no longer exists +// but we keep the test as a non-nestmate version of the situation. + +/* package */ class TestDeletedMethod_Super { + public static final int ID = 2; + private static int m() { + System.out.println("Super.m"); + return ID; + } +} + +/* package */ class TestDeletedMethod_Sub extends TestDeletedMethod_Super { + public static final int ID = 1; + // At runtime this implementation is not present + private static int m() { + System.out.println("Sub.m"); + return ID; + } + public static int test() { + return TestDeletedMethod_Sub.m(); + } +} + +public class TestDeletedMethod { + public static void main(String[] args) { + int x = TestDeletedMethod_Sub.test(); + if (x != TestDeletedMethod_Super.ID) + throw new RuntimeException("Wrong method invoked: " + x); + } +} diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/runtime/linkResolver/TestDeletedMethod_Sub.jcod --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/hotspot/jtreg/runtime/linkResolver/TestDeletedMethod_Sub.jcod Thu Oct 11 09:20:07 2018 -0700 @@ -0,0 +1,172 @@ +/* + * 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. + */ + +// We have deleted the local method m() by renaming it +// We have set the class file version to 49 to allow relaxed access checks + +class TestDeletedMethod_Sub { + 0xCAFEBABE; + 0; // minor version + 49; // version + [] { // Constant Pool + ; // first element is empty + Method #7 #21; // #1 + Field #22 #23; // #2 + String #24; // #3 + Method #25 #26; // #4 + class #27; // #5 + Method #5 #28; // #6 + class #29; // #7 + Utf8 "ID"; // #8 + Utf8 "I"; // #9 + Utf8 "ConstantValue"; // #10 + int 0x00000001; // #11 + Utf8 ""; // #12 + Utf8 "()V"; // #13 + Utf8 "Code"; // #14 + Utf8 "LineNumberTable"; // #15 + Utf8 "m"; // #16 + Utf8 "()I"; // #17 + Utf8 "test"; // #18 + Utf8 "SourceFile"; // #19 + Utf8 "TestDeletedMethod.java"; // #20 + NameAndType #12 #13; // #21 + class #30; // #22 + NameAndType #31 #32; // #23 + Utf8 "Sub.m"; // #24 + class #33; // #25 + NameAndType #34 #35; // #26 + Utf8 "TestDeletedMethod_Sub"; // #27 + NameAndType #16 #17; // #28 + Utf8 "TestDeletedMethod_Super"; // #29 + Utf8 "java/lang/System"; // #30 + Utf8 "out"; // #31 + Utf8 "Ljava/io/PrintStream;"; // #32 + Utf8 "java/io/PrintStream"; // #33 + Utf8 "println"; // #34 + Utf8 "(Ljava/lang/String;)V"; // #35 + Utf8 "m_renamed"; // #36 added + } // Constant Pool + + 0x0020; // access + #5;// this_cpx + #7;// super_cpx + + [] { // Interfaces + } // Interfaces + + [] { // fields + { // Member + 0x0019; // access + #8; // name_cpx + #9; // sig_cpx + [] { // Attributes + Attr(#10) { // ConstantValue + #11; + } // end ConstantValue + } // Attributes + } // Member + } // fields + + [] { // methods + { // Member + 0x0000; // access + #12; // name_cpx + #13; // sig_cpx + [] { // Attributes + Attr(#14) { // Code + 1; // max_stack + 1; // max_locals + Bytes[]{ + 0x2AB70001B1; + }; + [] { // Traps + } // end Traps + [] { // Attributes + Attr(#15) { // LineNumberTable + [] { // LineNumberTable + 0 43; + } + } // end LineNumberTable + } // Attributes + } // end Code + } // Attributes + } // Member + ; + { // Member + 0x000A; // access + #36; // name_cpx UPDATED to rename method + #17; // sig_cpx + [] { // Attributes + Attr(#14) { // Code + 2; // max_stack + 0; // max_locals + Bytes[]{ + 0xB200021203B60004; + 0x04AC; + }; + [] { // Traps + } // end Traps + [] { // Attributes + Attr(#15) { // LineNumberTable + [] { // LineNumberTable + 0 47; + 8 48; + } + } // end LineNumberTable + } // Attributes + } // end Code + } // Attributes + } // Member + ; + { // Member + 0x0009; // access + #18; // name_cpx + #17; // sig_cpx + [] { // Attributes + Attr(#14) { // Code + 1; // max_stack + 0; // max_locals + Bytes[]{ + 0xB80006AC; + }; + [] { // Traps + } // end Traps + [] { // Attributes + Attr(#15) { // LineNumberTable + [] { // LineNumberTable + 0 51; + } + } // end LineNumberTable + } // Attributes + } // end Code + } // Attributes + } // Member + } // methods + + [] { // Attributes + Attr(#19) { // SourceFile + #20; + } // end SourceFile + } // Attributes +} // end class TestDeletedMethod_Sub diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/runtime/linkResolver/TestDeletedMethod_Super.jcod --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/hotspot/jtreg/runtime/linkResolver/TestDeletedMethod_Super.jcod Thu Oct 11 09:20:07 2018 -0700 @@ -0,0 +1,143 @@ +/* + * 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. + */ + +// We have set the class file version to 49 to allow relaxed access checks + +class TestDeletedMethod_Super { + 0xCAFEBABE; + 0; // minor version + 49; // version + [] { // Constant Pool + ; // first element is empty + Method #6 #19; // #1 + Field #20 #21; // #2 + String #22; // #3 + Method #23 #24; // #4 + class #25; // #5 + class #26; // #6 + Utf8 "ID"; // #7 + Utf8 "I"; // #8 + Utf8 "ConstantValue"; // #9 + int 0x00000002; // #10 + Utf8 ""; // #11 + Utf8 "()V"; // #12 + Utf8 "Code"; // #13 + Utf8 "LineNumberTable"; // #14 + Utf8 "m"; // #15 + Utf8 "()I"; // #16 + Utf8 "SourceFile"; // #17 + Utf8 "TestDeletedMethod.java"; // #18 + NameAndType #11 #12; // #19 + class #27; // #20 + NameAndType #28 #29; // #21 + Utf8 "Super.m"; // #22 + class #30; // #23 + NameAndType #31 #32; // #24 + Utf8 "TestDeletedMethod_Super"; // #25 + Utf8 "java/lang/Object"; // #26 + Utf8 "java/lang/System"; // #27 + Utf8 "out"; // #28 + Utf8 "Ljava/io/PrintStream;"; // #29 + Utf8 "java/io/PrintStream"; // #30 + Utf8 "println"; // #31 + Utf8 "(Ljava/lang/String;)V"; // #32 + } // Constant Pool + + 0x0020; // access + #5;// this_cpx + #6;// super_cpx + + [] { // Interfaces + } // Interfaces + + [] { // fields + { // Member + 0x0019; // access + #7; // name_cpx + #8; // sig_cpx + [] { // Attributes + Attr(#9) { // ConstantValue + #10; + } // end ConstantValue + } // Attributes + } // Member + } // fields + + [] { // methods + { // Member + 0x0000; // access + #11; // name_cpx + #12; // sig_cpx + [] { // Attributes + Attr(#13) { // Code + 1; // max_stack + 1; // max_locals + Bytes[]{ + 0x2AB70001B1; + }; + [] { // Traps + } // end Traps + [] { // Attributes + Attr(#14) { // LineNumberTable + [] { // LineNumberTable + 0 35; + } + } // end LineNumberTable + } // Attributes + } // end Code + } // Attributes + } // Member + ; + { // Member + 0x000A; // access + #15; // name_cpx + #16; // sig_cpx + [] { // Attributes + Attr(#13) { // Code + 2; // max_stack + 0; // max_locals + Bytes[]{ + 0xB200021203B60004; + 0x05AC; + }; + [] { // Traps + } // end Traps + [] { // Attributes + Attr(#14) { // LineNumberTable + [] { // LineNumberTable + 0 38; + 8 39; + } + } // end LineNumberTable + } // Attributes + } // end Code + } // Attributes + } // Member + } // methods + + [] { // Attributes + Attr(#17) { // SourceFile + #18; + } // end SourceFile + } // Attributes +} // end class TestDeletedMethod_Super diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP06/ap06t001/ap06t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP06/ap06t001/ap06t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP06/ap06t001/ap06t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -124,7 +124,7 @@ JNIEXPORT void JNICALL Java_nsk_jvmti_scenarios_allocation_AP06_ap06t001Thread_setTag( JNIEnv* jni, jobject obj) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetTag, jvmti, obj, threadTag))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetTag(obj, threadTag))) { nsk_jvmti_setFailStatus(); } else { NSK_DISPLAY0("setTag: the tag was set for checked thread."); @@ -153,34 +153,26 @@ } if (!NSK_JNI_VERIFY(jni, (fid = - NSK_CPP_STUB4(GetStaticFieldID, jni, - debugeeClass, - "thread", - THREAD_CLS_SIGNATURE)) != NULL )) { + jni->GetStaticFieldID(debugeeClass, "thread", THREAD_CLS_SIGNATURE)) != NULL)) { nsk_jvmti_setFailStatus(); break; } if (!NSK_JNI_VERIFY(jni, (localRefThread = - NSK_CPP_STUB3(GetStaticObjectField, jni, - debugeeClass, - fid )) != NULL )) { + jni->GetStaticObjectField(debugeeClass, fid)) != NULL)) { NSK_COMPLAIN0("GetStaticObjectField returned NULL for 'thread' field value\n\n"); nsk_jvmti_setFailStatus(); break; } - if (!NSK_JNI_VERIFY(jni, (globalRefThread = - NSK_CPP_STUB2(NewGlobalRef, jni, localRefThread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (globalRefThread = jni->NewGlobalRef(localRefThread)) != NULL)) return; NSK_DISPLAY0("Calling IterateOverReachableObjects\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - heapRootCallback, - stackReferenceCallback, - objectReferenceCallback, - NULL /*user_data*/))) { + if (!NSK_JVMTI_VERIFY(jvmti->IterateOverReachableObjects(heapRootCallback, + stackReferenceCallback, + objectReferenceCallback, + NULL /*user_data*/))) { nsk_jvmti_setFailStatus(); break; } @@ -234,12 +226,10 @@ memset(&caps, 0, sizeof(jvmtiCapabilities)); 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; - 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 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t001/ap07t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t001/ap07t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t001/ap07t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -111,15 +111,14 @@ jobject target, jlong tag ) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetTag, jvmti, target, tag))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetTag(target, tag))) { nsk_jvmti_setFailStatus(); } } JNIEXPORT void JNICALL Java_nsk_jvmti_scenarios_allocation_AP07_ap07t001_setRoot( JNIEnv* jni, jobject obj) { - if (!NSK_JNI_VERIFY(jni, (root = - NSK_CPP_STUB2(NewGlobalRef, jni, obj)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (root = jni->NewGlobalRef(obj)) != NULL)) nsk_jvmti_setFailStatus(); } @@ -135,30 +134,24 @@ do { NSK_DISPLAY0("Calling IterateOverReachableObjects\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - heapRootCallback, - stackReferenceCallback, - objectReferenceCallback, - NULL /*user_data*/))) { + if (!NSK_JVMTI_VERIFY(jvmti->IterateOverReachableObjects(heapRootCallback, + stackReferenceCallback, + objectReferenceCallback, + NULL /*user_data*/))) { nsk_jvmti_setFailStatus(); break; } NSK_DISPLAY0("Calling IterateOverObjectsReachableFromObject\n"); { - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, - jvmti, - root, - objectReferenceCallback, - NULL /*user_data*/))) { + if (!NSK_JVMTI_VERIFY(jvmti->IterateOverObjectsReachableFromObject( + root, objectReferenceCallback, NULL /*user_data*/))) { nsk_jvmti_setFailStatus(); break; } } - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, root)); + NSK_TRACE(jni->DeleteGlobalRef(root)); } while (0); @@ -191,12 +184,10 @@ memset(&caps, 0, sizeof(jvmtiCapabilities)); 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; - 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 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t002/ap07t002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t002/ap07t002.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP07/ap07t002/ap07t002.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -111,7 +111,7 @@ jobject target, jlong tag ) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetTag, jvmti, target, tag))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetTag(target, tag))) { nsk_jvmti_setFailStatus(); } } @@ -128,12 +128,10 @@ do { NSK_DISPLAY0("Calling IterateOverReachableObjects\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - heapRootCallback, - stackReferenceCallback, - objectReferenceCallback, - NULL /*user_data*/))) { + if (!NSK_JVMTI_VERIFY(jvmti->IterateOverReachableObjects(heapRootCallback, + stackReferenceCallback, + objectReferenceCallback, + NULL /*user_data*/))) { nsk_jvmti_setFailStatus(); break; } @@ -169,12 +167,10 @@ memset(&caps, 0, sizeof(jvmtiCapabilities)); 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; - 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 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP09/ap09t001/ap09t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP09/ap09t001/ap09t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP09/ap09t001/ap09t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -132,15 +132,14 @@ jobject target, jlong tag ) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetTag, jvmti, target, tag))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetTag(target, tag))) { nsk_jvmti_setFailStatus(); } } JNIEXPORT void JNICALL Java_nsk_jvmti_scenarios_allocation_AP09_ap09t001_setReferrer( JNIEnv* jni, jclass klass, jobject ref) { - if (!NSK_JNI_VERIFY(jni, (referrer = - NSK_CPP_STUB2(NewGlobalRef, jni, ref)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (referrer = jni->NewGlobalRef(ref)) != NULL)) nsk_jvmti_setFailStatus(); } @@ -155,12 +154,9 @@ do { NSK_DISPLAY0("\nCalling IterateOverObjectsReachableFromObject\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, - jvmti, - referrer, - objectReferenceCallback, - NULL /*user_data*/))) { + if (!NSK_JVMTI_VERIFY(jvmti->IterateOverObjectsReachableFromObject(referrer, + objectReferenceCallback, + NULL /*user_data*/))) { nsk_jvmti_setFailStatus(); } if (!classFound) { @@ -192,7 +188,7 @@ nsk_jvmti_setFailStatus(); } - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, referrer)); + NSK_TRACE(jni->DeleteGlobalRef(referrer)); } while (0); NSK_DISPLAY0("Let debugee to finish\n"); @@ -224,12 +220,10 @@ memset(&caps, 0, sizeof(jvmtiCapabilities)); 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; - 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 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/ap10t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/ap10t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/ap10t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -61,8 +61,7 @@ NSK_DISPLAY2("%s: setting an environment local storage 0x%p ...\n", msg, (void*) &stor); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(SetEnvironmentLocalStorage, - jvmti_env, (const void*) &stor))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->SetEnvironmentLocalStorage((const void*) &stor))) { nsk_jvmti_setFailStatus(); NSK_COMPLAIN1("%s: unable to set an environment local storage\n\n", msg); @@ -71,8 +70,7 @@ NSK_DISPLAY1("%s: getting an environment local storage ...\n", msg); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetEnvironmentLocalStorage, - jvmti_env, (void**) &obtainedData))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetEnvironmentLocalStorage((void**) &obtainedData))) { nsk_jvmti_setFailStatus(); NSK_COMPLAIN1("%s: unable to get an environment local storage\n\n", msg); @@ -90,8 +88,7 @@ } static void timerFunc(jvmtiEnv *jvmti_env, const char *msg) { - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti_env, &timer_info1 ))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetCurrentThreadCpuTimerInfo(&timer_info1))) { nsk_jvmti_setFailStatus(); NSK_COMPLAIN1("%s: GetCurrentThreadCpuTimerInfo returned unexpected error code\n\n", msg); @@ -114,8 +111,7 @@ } /* ---------------------------------------------------------------------- */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti_env, &nanos ))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetCurrentThreadCpuTime(&nanos))) { nsk_jvmti_setFailStatus(); NSK_COMPLAIN1("%s: GetCurrentThreadCpuTime returned unexpected error code\n\n", msg); @@ -123,8 +119,7 @@ /* ---------------------------------------------------------------------- */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetTimerInfo, jvmti_env, &timer_info2 ))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetTimerInfo(&timer_info2))) { nsk_jvmti_setFailStatus(); NSK_COMPLAIN1("%s: GetTimerInfo returned unexpected error code\n\n", msg); @@ -148,8 +143,7 @@ /* ---------------------------------------------------------------------- */ nanos = 0; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetTime, jvmti_env, &nanos ))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetTime(&nanos))) { nsk_jvmti_setFailStatus(); NSK_COMPLAIN1("%s: GetTime returned unexpected error code\n\n", msg); @@ -223,10 +217,9 @@ NSK_DISPLAY0("Call IterateOverHeap to tag random objects for ObjectFree evnts\n\n"); { - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IterateOverHeap, jvmti, - JVMTI_HEAP_OBJECT_UNTAGGED, heapObjectCallback, - &user_data))) { + if (!NSK_JVMTI_VERIFY(jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_UNTAGGED, + heapObjectCallback, + &user_data))) { nsk_jvmti_setFailStatus(); } } @@ -276,12 +269,10 @@ caps.can_get_thread_cpu_time = 1; caps.can_generate_object_free_events = 1; 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) @@ -299,19 +290,21 @@ callbacks.GarbageCollectionFinish = &GarbageCollectionFinish; callbacks.ObjectFree = &ObjectFree; - 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_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; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_OBJECT_FREE, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, + JVMTI_EVENT_OBJECT_FREE, + NULL))) return JNI_ERR; NSK_DISPLAY0("enabling the events done\n\n"); diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/ap11t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/ap11t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/ap11t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -43,8 +43,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) { @@ -52,10 +51,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; @@ -74,7 +73,7 @@ */ { jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti, &phase ))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); return; } @@ -85,14 +84,12 @@ } do { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature, jvmti, - object_klass, &signature, &generic))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetClassSignature(object_klass, &signature, &generic))) { nsk_jvmti_setFailStatus(); break; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetThreadInfo, jvmti, - thread, &threadInfo))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(thread, &threadInfo))) { nsk_jvmti_setFailStatus(); break; } @@ -108,14 +105,13 @@ jint i; jboolean found = JNI_FALSE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetAllThreads, jvmti, - &threadCount, &threads))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threadCount, &threads))) { nsk_jvmti_setFailStatus(); break; } for (i = 0; i < threadCount && !found; i++) { - found = NSK_CPP_STUB3(IsSameObject, jni, threads[i], thread); + found = jni->IsSameObject(threads[i], thread); if (found == JNI_TRUE) { break; } @@ -134,8 +130,7 @@ jint classCount; jclass *classes; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetLoadedClasses, jvmti, - &classCount, &classes))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetLoadedClasses(&classCount, &classes))) { nsk_jvmti_setFailStatus(); break; } @@ -147,7 +142,7 @@ } if (classes != NULL) - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)classes); + jvmti->Deallocate((unsigned char*)classes); } while(0); @@ -155,8 +150,8 @@ */ { jclass klass; - klass = NSK_CPP_STUB2(GetObjectClass, jni, object); - if (!(NSK_CPP_STUB3(IsSameObject, jni, object_klass, klass))) { + klass = jni->GetObjectClass(object); + if (!(jni->IsSameObject(object_klass, klass))) { nsk_jvmti_setFailStatus(); NSK_COMPLAIN1("VMObjectAlloc: unexpected object_klass : \"%s\"\n\n", signature); } @@ -167,8 +162,7 @@ do { jlong objSize; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetObjectSize, jvmti, - object, &objSize))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectSize(object, &objSize))) { nsk_jvmti_setFailStatus(); break; } @@ -181,10 +175,10 @@ } while(0); 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); } /* ========================================================================== */ @@ -234,21 +228,18 @@ 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(&callbacks, 0, sizeof(callbacks)); callbacks.VMObjectAlloc= &VMObjectAlloc; - 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 VMObjectAlloc event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_VM_OBJECT_ALLOC, NULL))) + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_OBJECT_ALLOC, NULL))) return JNI_ERR; /* register agent proc and arg */ diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP12/ap12t001/ap12t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP12/ap12t001/ap12t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/allocation/AP12/ap12t001/ap12t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -79,8 +79,7 @@ JNIEXPORT void JNICALL Java_nsk_jvmti_scenarios_allocation_AP12_ap12t001_setTag( JNIEnv* jni, jobject obj, jlong tag) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetTag, - jvmti, obj, tag))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetTag(obj, tag))) { nsk_jvmti_setFailStatus(); } } @@ -129,12 +128,10 @@ memset(&caps, 0, sizeof(jvmtiCapabilities)); caps.can_generate_object_free_events = 1; 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; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, - jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.can_generate_object_free_events) @@ -149,16 +146,17 @@ callbacks.ObjectFree = &ObjectFree; callbacks.VMDeath = &VMDeath; - 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_OBJECT_FREE, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, + JVMTI_EVENT_OBJECT_FREE, + NULL))) return JNI_ERR; - 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; NSK_DISPLAY0("enabling the events done\n\n"); diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t001/bi01t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t001/bi01t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t001/bi01t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -52,23 +52,20 @@ jbyte* elements; jboolean isCopy; - if (!NSK_JNI_VERIFY(jni_env, (newClassSize = - NSK_CPP_STUB2(GetArrayLength, jni_env, byteCode)) > 0)) { + if (!NSK_JNI_VERIFY(jni_env, (newClassSize = jni_env->GetArrayLength(byteCode)) > 0)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } NSK_DISPLAY1("\t... got array size: %d\n", newClassSize); if (!NSK_JNI_VERIFY(jni_env, (elements = - NSK_CPP_STUB3(GetByteArrayElements, jni_env, byteCode, - &isCopy)) != NULL)) { + jni_env->GetByteArrayElements(byteCode, &isCopy)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } NSK_DISPLAY1("\t... got elements list: 0x%p\n", (void*)elements); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(Allocate, jvmti, - newClassSize, &newClassBytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate(newClassSize, &newClassBytes))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -82,7 +79,7 @@ NSK_DISPLAY1("\t... copied bytecode: %d bytes\n", (int)newClassSize); NSK_DISPLAY1("\t... release elements list: 0x%p\n", (void*)elements); - NSK_TRACE(NSK_CPP_STUB4(ReleaseByteArrayElements, jni_env, byteCode, elements, JNI_ABORT)); + NSK_TRACE(jni_env->ReleaseByteArrayElements(byteCode, elements, JNI_ABORT)); NSK_DISPLAY0("\t... released\n"); return NSK_TRUE; } @@ -98,7 +95,7 @@ jobject o, jclass cls) { if (!NSK_JNI_VERIFY(jni_env, (oldClassDef.klass = (jclass) - NSK_CPP_STUB2(NewGlobalRef, jni_env, cls)) != NULL)) { + jni_env->NewGlobalRef(cls)) != NULL)) { nsk_jvmti_setFailStatus(); } } @@ -129,9 +126,7 @@ unsigned char *arr; oldClassDef.class_byte_count = class_data_len; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti_env, class_data_len, - &arr))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Allocate(class_data_len, &arr))) { nsk_jvmti_setFailStatus(); return; } @@ -181,9 +176,9 @@ return; NSK_DISPLAY0("Notification disabled for CLASS_FILE_LOAD_HOOK event\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_DISABLE, - JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_DISABLE, + JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, + NULL))) { nsk_jvmti_setFailStatus(); return; } @@ -205,8 +200,7 @@ nsk_printHexBytes(" ", 16, oldClassDef.class_byte_count, oldClassDef.class_bytes); } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &oldClassDef))) { + if (!NSK_JVMTI_VERIFY(jvmti->RedefineClasses(1, &oldClassDef))) { nsk_jvmti_setFailStatus(); return; } @@ -219,7 +213,7 @@ if (!nsk_jvmti_waitForSync(timeout)) return; - NSK_CPP_STUB2(DeleteGlobalRef, agentJNI, oldClassDef.klass); + agentJNI->DeleteGlobalRef(oldClassDef.klass); NSK_DISPLAY0("Let debuggee to finish\n"); if (!nsk_jvmti_resumeSync()) @@ -256,7 +250,7 @@ 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; } @@ -267,16 +261,15 @@ memset(&callbacks, 0, size); callbacks.ClassFileLoadHook = cbClassFileLoadHook; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, &callbacks, size))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, size))) { return JNI_ERR; } } NSK_DISPLAY0("Set notification enabled for CLASS_FILE_LOAD_HOOK 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))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t002/bi01t002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t002/bi01t002.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI01/bi01t002/bi01t002.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -54,23 +54,20 @@ jbyte* elements; jboolean isCopy; - if (!NSK_JNI_VERIFY(jni_env, (newClassSize[ind] = - NSK_CPP_STUB2(GetArrayLength, jni_env, byteCode)) > 0)) { + if (!NSK_JNI_VERIFY(jni_env, (newClassSize[ind] = jni_env->GetArrayLength(byteCode)) > 0)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } NSK_DISPLAY1("\t... got array size: %d\n", newClassSize[ind]); if (!NSK_JNI_VERIFY(jni_env, (elements = - NSK_CPP_STUB3(GetByteArrayElements, jni_env, byteCode, - &isCopy)) != NULL)) { + jni_env->GetByteArrayElements(byteCode, &isCopy)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } NSK_DISPLAY1("\t... got elements list: 0x%p\n", (void*)elements); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(Allocate, jvmti, - newClassSize[ind], &newClassBytes[ind]))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate(newClassSize[ind], &newClassBytes[ind]))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -84,7 +81,7 @@ NSK_DISPLAY1("\t... copied bytecode: %d bytes\n", (int)newClassSize[ind]); NSK_DISPLAY1("\t... release elements list: 0x%p\n", (void*)elements); - NSK_TRACE(NSK_CPP_STUB4(ReleaseByteArrayElements, jni_env, byteCode, elements, JNI_ABORT)); + NSK_TRACE(jni_env->ReleaseByteArrayElements(byteCode, elements, JNI_ABORT)); NSK_DISPLAY0("\t... released\n"); return NSK_TRUE; } @@ -100,7 +97,7 @@ jobject o, jint ind, jclass cls) { if (!NSK_JNI_VERIFY(jni_env, (oldClassDef[ind].klass = (jclass) - NSK_CPP_STUB2(NewGlobalRef, jni_env, cls)) != NULL)) { + jni_env->NewGlobalRef(cls)) != NULL)) { nsk_jvmti_setFailStatus(); } } @@ -131,9 +128,7 @@ unsigned char *arr; oldClassDef[clsLoadedIdx].class_byte_count = class_data_len; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(Allocate, jvmti_env, class_data_len, - &arr))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Allocate(class_data_len, &arr))) { nsk_jvmti_setFailStatus(); return; } @@ -189,9 +184,9 @@ return; NSK_DISPLAY0("Notification disabled for CLASS_FILE_LOAD_HOOK event\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_DISABLE, - JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_DISABLE, + JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, + NULL))) { nsk_jvmti_setFailStatus(); return; } @@ -216,9 +211,7 @@ oldClassDef[i].class_bytes); } } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(RedefineClasses, jvmti, TOTAL_INSTRUMENTED_CLASSES, - oldClassDef))) { + if (!NSK_JVMTI_VERIFY(jvmti->RedefineClasses(TOTAL_INSTRUMENTED_CLASSES, oldClassDef))) { nsk_jvmti_setFailStatus(); return; } @@ -232,7 +225,7 @@ return; for (i = 0; i < TOTAL_INSTRUMENTED_CLASSES; i++) { - NSK_CPP_STUB2(DeleteGlobalRef, agentJNI, oldClassDef[i].klass); + agentJNI->DeleteGlobalRef(oldClassDef[i].klass); } NSK_DISPLAY0("Let debuggee to finish\n"); @@ -270,7 +263,7 @@ 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; } @@ -281,16 +274,15 @@ memset(&callbacks, 0, size); callbacks.ClassFileLoadHook = cbClassFileLoadHook; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, &callbacks, size))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, size))) { return JNI_ERR; } } NSK_DISPLAY0("Set notification enabled for CLASS_FILE_LOAD_HOOK 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))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001/bi02t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001/bi02t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t001/bi02t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -63,13 +63,13 @@ /* sent by class load */ if (!NSK_JNI_VERIFY(jni_env, (*new_class_data_len = - NSK_CPP_STUB2(GetArrayLength, jni_env, classBytes)) > 0)) { + jni_env->GetArrayLength(classBytes)) > 0)) { nsk_jvmti_setFailStatus(); return; } if (!NSK_JNI_VERIFY(jni_env, (*new_class_data = (unsigned char*) - NSK_CPP_STUB3(GetByteArrayElements, jni_env, classBytes, NULL)) + jni_env->GetByteArrayElements(classBytes, NULL)) != NULL)) { nsk_jvmti_setFailStatus(); return; @@ -86,30 +86,27 @@ jfieldID field = NULL; NSK_DISPLAY1("Find 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)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (debugeeClass = (jclass) - NSK_CPP_STUB2(NewGlobalRef, jni, debugeeClass)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (debugeeClass = (jclass)jni->NewGlobalRef(debugeeClass)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetStaticFieldID, jni, debugeeClass, - "newClassBytes", "[B")) != NULL)) + jni->GetStaticFieldID(debugeeClass, "newClassBytes", "[B")) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (classBytes = (jbyteArray) - NSK_CPP_STUB3(GetStaticObjectField, jni, debugeeClass, field)) + jni->GetStaticObjectField(debugeeClass, field)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (classBytes = (jbyteArray) - NSK_CPP_STUB2(NewGlobalRef, jni, classBytes)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (classBytes = (jbyteArray)jni->NewGlobalRef(classBytes)) != NULL)) return NSK_FALSE; - 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 NSK_TRUE; @@ -140,12 +137,13 @@ nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_DISABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_DISABLE, + JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, + NULL))) nsk_jvmti_setFailStatus(); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, debugeeClass)); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, classBytes)); + NSK_TRACE(jni->DeleteGlobalRef(debugeeClass)); + NSK_TRACE(jni->DeleteGlobalRef(classBytes)); if (!nsk_jvmti_resumeSync()) return; @@ -183,7 +181,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; if (!NSK_VERIFY(nsk_jvmti_setAgentProc(agentProc, NULL))) @@ -191,8 +189,7 @@ 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; return JNI_OK; diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t002/bi02t002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t002/bi02t002.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI02/bi02t002/bi02t002.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -52,35 +52,29 @@ jfieldID field = NULL; NSK_DISPLAY1("Find 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)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (debugeeClass = (jclass) - NSK_CPP_STUB2(NewGlobalRef, jni, debugeeClass)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (debugeeClass = (jclass)jni->NewGlobalRef(debugeeClass)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetStaticFieldID, jni, debugeeClass, - "newClassBytes", "[B")) != NULL)) + jni->GetStaticFieldID(debugeeClass, "newClassBytes", "[B")) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (classBytes = (jbyteArray) - NSK_CPP_STUB3(GetStaticObjectField, jni, debugeeClass, field)) + jni->GetStaticObjectField(debugeeClass, field)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (classBytes = (jbyteArray) - NSK_CPP_STUB2(NewGlobalRef, jni, classBytes)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (classBytes = (jbyteArray)jni->NewGlobalRef(classBytes)) != NULL)) return NSK_FALSE; 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; return NSK_TRUE; @@ -93,17 +87,16 @@ NSK_DISPLAY0("Redefining ...\n"); - if (!NSK_JNI_VERIFY(jni, (class_def.class_byte_count = - NSK_CPP_STUB2(GetArrayLength, jni, classBytes)) > 0)) + if (!NSK_JNI_VERIFY(jni, (class_def.class_byte_count = jni->GetArrayLength(classBytes)) > 0)) return NSK_TRUE; if (!NSK_JNI_VERIFY(jni, (class_def.class_bytes = (unsigned char*) - NSK_CPP_STUB3(GetByteArrayElements, jni, classBytes, NULL)) + jni->GetByteArrayElements(classBytes, NULL)) != NULL)) return NSK_TRUE; class_def.klass = testedClass; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + if (!NSK_JVMTI_VERIFY(jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -132,9 +125,9 @@ if (!nsk_jvmti_waitForSync(timeout)) return; - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, debugeeClass)); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, classBytes)); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, testedClass)); + NSK_TRACE(jni->DeleteGlobalRef(debugeeClass)); + NSK_TRACE(jni->DeleteGlobalRef(classBytes)); + NSK_TRACE(jni->DeleteGlobalRef(testedClass)); if (!nsk_jvmti_resumeSync()) return; @@ -171,7 +164,7 @@ 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; if (!NSK_VERIFY(nsk_jvmti_setAgentProc(agentProc, NULL))) diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t001/bi03t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t001/bi03t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t001/bi03t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -63,13 +63,13 @@ /* sent by class load */ if (!NSK_JNI_VERIFY(jni_env, (*new_class_data_len = - NSK_CPP_STUB2(GetArrayLength, jni_env, classBytes)) > 0)) { + jni_env->GetArrayLength(classBytes)) > 0)) { nsk_jvmti_setFailStatus(); return; } if (!NSK_JNI_VERIFY(jni_env, (*new_class_data = (unsigned char*) - NSK_CPP_STUB3(GetByteArrayElements, jni_env, classBytes, NULL)) + jni_env->GetByteArrayElements(classBytes, NULL)) != NULL)) { nsk_jvmti_setFailStatus(); return; @@ -86,30 +86,27 @@ jfieldID field = NULL; NSK_DISPLAY1("Find 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)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (debugeeClass = (jclass) - NSK_CPP_STUB2(NewGlobalRef, jni, debugeeClass)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (debugeeClass = (jclass)jni->NewGlobalRef(debugeeClass)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetStaticFieldID, jni, debugeeClass, - "newClassBytes", "[B")) != NULL)) + jni->GetStaticFieldID(debugeeClass, "newClassBytes", "[B")) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (classBytes = (jbyteArray) - NSK_CPP_STUB3(GetStaticObjectField, jni, debugeeClass, field)) + jni->GetStaticObjectField(debugeeClass, field)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (classBytes = (jbyteArray) - NSK_CPP_STUB2(NewGlobalRef, jni, classBytes)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (classBytes = (jbyteArray)jni->NewGlobalRef(classBytes)) != NULL)) return NSK_FALSE; - 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 NSK_TRUE; @@ -140,12 +137,13 @@ nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_DISABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_DISABLE, + JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, + NULL))) nsk_jvmti_setFailStatus(); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, debugeeClass)); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, classBytes)); + NSK_TRACE(jni->DeleteGlobalRef(debugeeClass)); + NSK_TRACE(jni->DeleteGlobalRef(classBytes)); if (!nsk_jvmti_resumeSync()) return; @@ -183,7 +181,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; if (!NSK_VERIFY(nsk_jvmti_setAgentProc(agentProc, NULL))) @@ -191,8 +189,7 @@ 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; return JNI_OK; diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t002/bi03t002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t002/bi03t002.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI03/bi03t002/bi03t002.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -52,35 +52,29 @@ jfieldID field = NULL; NSK_DISPLAY1("Find 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)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (debugeeClass = (jclass) - NSK_CPP_STUB2(NewGlobalRef, jni, debugeeClass)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (debugeeClass = (jclass)jni->NewGlobalRef(debugeeClass)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetStaticFieldID, jni, debugeeClass, - "newClassBytes", "[B")) != NULL)) + jni->GetStaticFieldID(debugeeClass, "newClassBytes", "[B")) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (classBytes = (jbyteArray) - NSK_CPP_STUB3(GetStaticObjectField, jni, debugeeClass, field)) + jni->GetStaticObjectField(debugeeClass, field)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (classBytes = (jbyteArray) - NSK_CPP_STUB2(NewGlobalRef, jni, classBytes)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (classBytes = (jbyteArray)jni->NewGlobalRef(classBytes)) != NULL)) return NSK_FALSE; 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; return NSK_TRUE; @@ -93,17 +87,16 @@ NSK_DISPLAY0("Redefining ...\n"); - if (!NSK_JNI_VERIFY(jni, (class_def.class_byte_count = - NSK_CPP_STUB2(GetArrayLength, jni, classBytes)) > 0)) + if (!NSK_JNI_VERIFY(jni, (class_def.class_byte_count = jni->GetArrayLength(classBytes)) > 0)) return NSK_TRUE; if (!NSK_JNI_VERIFY(jni, (class_def.class_bytes = (unsigned char*) - NSK_CPP_STUB3(GetByteArrayElements, jni, classBytes, NULL)) + jni->GetByteArrayElements(classBytes, NULL)) != NULL)) return NSK_TRUE; class_def.klass = testedClass; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + if (!NSK_JVMTI_VERIFY(jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -132,9 +125,9 @@ if (!nsk_jvmti_waitForSync(timeout)) return; - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, debugeeClass)); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, classBytes)); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, testedClass)); + NSK_TRACE(jni->DeleteGlobalRef(debugeeClass)); + NSK_TRACE(jni->DeleteGlobalRef(classBytes)); + NSK_TRACE(jni->DeleteGlobalRef(testedClass)); if (!nsk_jvmti_resumeSync()) return; @@ -171,7 +164,7 @@ 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; if (!NSK_VERIFY(nsk_jvmti_setAgentProc(agentProc, NULL))) diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI04/bi04t002/bi04t002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI04/bi04t002/bi04t002.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/bcinstr/BI04/bi04t002/bi04t002.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -69,9 +69,7 @@ classDef.class_byte_count = ftell(bytecode); rewind(bytecode); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(Allocate, jvmti, - classDef.class_byte_count, - &newClassBytes))) { + if (!NSK_JVMTI_VERIFY(jvmti->Allocate(classDef.class_byte_count, &newClassBytes))) { NSK_COMPLAIN0("buffer couldn't be allocated\n"); return NSK_FALSE; } @@ -99,14 +97,13 @@ return; NSK_DISPLAY1("Find class: %s\n", TESTED_CLASS_NAME); - if (!NSK_JNI_VERIFY(jni, (classDef.klass = - NSK_CPP_STUB2(FindClass, jni, TESTED_CLASS_NAME)) != NULL)) { + if (!NSK_JNI_VERIFY(jni, (classDef.klass = jni->FindClass(TESTED_CLASS_NAME)) != NULL)) { nsk_jvmti_setFailStatus(); return; } if (!NSK_JNI_VERIFY(jni, (classDef.klass = (jclass) - NSK_CPP_STUB2(NewGlobalRef, jni, classDef.klass)) != NULL)) { + jni->NewGlobalRef(classDef.klass)) != NULL)) { nsk_jvmti_setFailStatus(); return; } @@ -120,13 +117,12 @@ nsk_printHexBytes(" ", 16, classDef.class_byte_count, classDef.class_bytes); } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &classDef))) { + if (!NSK_JVMTI_VERIFY(jvmti->RedefineClasses(1, &classDef))) { nsk_jvmti_setFailStatus(); return; } - NSK_CPP_STUB2(DeleteGlobalRef, jni, classDef.klass); + jni->DeleteGlobalRef(classDef.klass); if (!nsk_jvmti_resumeSync()) return; @@ -163,7 +159,7 @@ caps.can_redefine_classes = 1; caps.can_redefine_any_class = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; } diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t001/cm01t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t001/cm01t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t001/cm01t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -79,8 +79,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -92,8 +91,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -105,24 +103,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -136,23 +130,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -168,27 +160,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -202,7 +190,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -215,7 +203,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -225,8 +213,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -269,44 +256,36 @@ jint dummy_user_data = 0; NSK_DISPLAY0("Checking positive: SetTag\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + if (!NSK_JVMTI_VERIFY(jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: GetTag\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY(jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: GetObjectsWithTags\n"); tag = TAG_VALUE; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: IterateOverInstancesOfClass\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + if (!NSK_JVMTI_VERIFY(jvmti->IterateOverInstancesOfClass( + klass, JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: IterateOverObjectsReachableFromObject\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + if (!NSK_JVMTI_VERIFY(jvmti->IterateOverObjectsReachableFromObject( + thread, ObjectReference, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: IterateOverReachableObjects\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + if (!NSK_JVMTI_VERIFY(jvmti->IterateOverReachableObjects( + HeapRoot, StackReference, ObjectReference, &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -325,58 +304,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -391,18 +369,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -418,7 +395,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -431,7 +408,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -444,12 +421,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -463,7 +440,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -477,12 +454,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -496,12 +473,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -597,7 +574,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -609,13 +586,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -627,13 +604,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -645,10 +622,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t002/cm01t002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t002/cm01t002.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t002/cm01t002.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -72,8 +72,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -85,8 +84,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -98,24 +96,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -129,23 +123,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -161,27 +153,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -195,7 +183,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -208,7 +196,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -218,8 +206,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -263,43 +250,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -318,58 +307,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -384,18 +372,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -411,7 +398,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -424,7 +411,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -437,12 +424,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -455,10 +442,9 @@ unsigned char *bytecodes; NSK_DISPLAY0("Checking positive: GetBytecodes\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + if (!NSK_JVMTI_VERIFY(jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, jvmti, bytecodes))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate(bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -472,12 +458,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -491,12 +477,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -592,7 +578,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -604,13 +590,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -622,13 +608,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -640,10 +626,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t003/cm01t003.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t003/cm01t003.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t003/cm01t003.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -74,8 +74,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -87,8 +86,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -100,24 +98,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -131,23 +125,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -163,27 +155,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -197,7 +185,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -210,7 +198,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -220,8 +208,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -265,43 +252,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -320,58 +309,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -386,18 +374,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -413,7 +400,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -426,7 +413,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -438,13 +425,11 @@ jboolean is_synthetic; NSK_DISPLAY0("Checking positive: IsFieldSynthetic\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + if (!NSK_JVMTI_VERIFY(jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: IsMethodSynthetic\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + if (!NSK_JVMTI_VERIFY(jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -458,7 +443,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -472,12 +457,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -491,12 +476,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -592,7 +577,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -604,13 +589,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -622,13 +607,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -640,10 +625,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t004/cm01t004.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t004/cm01t004.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t004/cm01t004.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -72,8 +72,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -85,8 +84,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -98,24 +96,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -129,23 +123,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -161,27 +153,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -194,8 +182,7 @@ jobject *monitors = NULL; NSK_DISPLAY0("Checking positive: GetOwnedMonitorInfo\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + if (!NSK_JVMTI_VERIFY(jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -208,7 +195,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -218,8 +205,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -263,43 +249,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -318,58 +306,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -384,18 +371,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -411,7 +397,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -424,7 +410,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -437,12 +423,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -456,7 +442,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -470,12 +456,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -489,12 +475,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: checkGetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -590,7 +576,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -602,13 +588,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -620,13 +606,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -638,10 +624,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t005/cm01t005.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t005/cm01t005.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t005/cm01t005.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -72,8 +72,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -85,8 +84,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -98,24 +96,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -129,23 +123,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -161,27 +153,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -195,7 +183,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -207,8 +195,7 @@ jobject monitor = NULL; NSK_DISPLAY0("Checking positive: GetCurrentContendedMonitor\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -218,8 +205,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -263,43 +249,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -318,58 +306,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -384,18 +371,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -411,7 +397,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -424,7 +410,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -437,12 +423,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -456,7 +442,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -470,12 +456,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -489,12 +475,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -590,7 +576,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -602,13 +588,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -620,13 +606,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -638,10 +624,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t006/cm01t006.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t006/cm01t006.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t006/cm01t006.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -72,8 +72,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -85,8 +84,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -98,24 +96,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -129,23 +123,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -161,27 +153,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -195,7 +183,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -208,7 +196,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -218,8 +206,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -263,43 +250,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -318,58 +307,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -384,18 +372,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -411,7 +398,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -423,8 +410,7 @@ jvmtiMonitorUsage monitor_info; NSK_DISPLAY0("Checking positive: GetObjectMonitorUsage\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -437,12 +423,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -456,7 +442,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -470,12 +456,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -489,12 +475,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -590,7 +576,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -602,13 +588,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -620,13 +606,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -638,10 +624,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t007/cm01t007.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t007/cm01t007.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t007/cm01t007.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -72,8 +72,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -85,8 +84,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -98,23 +96,19 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingFlag' */ - if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, "waitingFlag", "Z")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (field = jni->GetFieldID(klass, "waitingFlag", "Z")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -128,23 +122,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -160,27 +152,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -194,7 +182,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -207,7 +195,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -223,23 +211,23 @@ memset(&caps, 0, sizeof(caps)); caps.can_suspend = 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(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->SuspendThread(thread))) return NSK_FALSE; // PopFrame is allowed to fail with JVMTI_ERROR_OPAQUE_FRAME. // That will happen if we are in a native function, for example while waiting for a Condition. // See JCK-5020108. - err = NSK_CPP_STUB2(PopFrame, jvmti, thread); + err = jvmti->PopFrame(thread); if (err != JVMTI_ERROR_NONE && err != JVMTI_ERROR_OPAQUE_FRAME) { NSK_DISPLAY1("jvmti error from PopFrame: %d\n", err); return NSK_FALSE; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->ResumeThread(thread))) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; return NSK_TRUE; @@ -283,43 +271,47 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -338,58 +330,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -404,18 +395,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -431,7 +421,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -444,7 +434,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -457,12 +447,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -476,7 +466,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -490,12 +480,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -509,12 +499,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -610,7 +600,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -622,13 +612,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -640,13 +630,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -658,10 +648,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t008/cm01t008.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t008/cm01t008.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t008/cm01t008.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -76,8 +76,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -89,8 +88,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -102,24 +100,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -133,23 +127,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -165,27 +157,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -199,7 +187,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -212,7 +200,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -222,8 +210,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -267,43 +254,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -322,58 +311,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -388,18 +376,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -415,12 +402,11 @@ class_def.klass = klass; class_def.class_byte_count = klass_byte_count; class_def.class_bytes = klass_bytes; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + if (!NSK_JVMTI_VERIFY(jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: IsMethodObsolete\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(IsMethodObsolete, jvmti, method, &is_obsolete))) + if (!NSK_JVMTI_VERIFY(jvmti->IsMethodObsolete(method, &is_obsolete))) return NSK_FALSE; return NSK_TRUE; @@ -433,7 +419,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -446,12 +432,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -465,7 +451,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -479,12 +465,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -498,12 +484,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -521,15 +507,14 @@ if (name != NULL && (strcmp(name, CLASS_NAME) == 0)) { NSK_DISPLAY1("ClassFileLoadHook: %s\n", name); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(Allocate, - jvmti, class_data_len, &klass_bytes))) + if (!NSK_JVMTI_VERIFY(jvmti->Allocate(class_data_len, &klass_bytes))) nsk_jvmti_setFailStatus(); else { memcpy(klass_bytes, class_data, class_data_len); klass_byte_count = class_data_len; } - NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_DISABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL)); + NSK_JVMTI_VERIFY( + jvmti->SetEventNotificationMode(JVMTI_DISABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL)); } } @@ -624,7 +609,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -636,13 +621,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -654,13 +639,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -672,10 +657,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -686,11 +671,10 @@ /* activate ClassFileLoadHook to get class file data */ 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; - 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 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t009/cm01t009.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t009/cm01t009.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t009/cm01t009.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -74,8 +74,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -87,8 +86,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -100,24 +98,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -131,23 +125,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -163,25 +155,22 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking positive: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->InterruptThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: StopThread\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + if (!NSK_JVMTI_VERIFY(jvmti->StopThread(thread, exception))) return NSK_FALSE; return NSK_TRUE; @@ -195,7 +184,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -208,7 +197,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -218,8 +207,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -263,43 +251,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -318,58 +308,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -384,18 +373,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -411,7 +399,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -424,7 +412,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -437,12 +425,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -456,7 +444,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -470,12 +458,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -489,12 +477,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -590,7 +578,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -602,13 +590,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -620,13 +608,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -638,10 +626,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t010/cm01t010.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t010/cm01t010.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t010/cm01t010.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -73,8 +73,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -86,8 +85,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -99,24 +97,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -130,23 +124,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -162,27 +154,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -196,7 +184,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -209,7 +197,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -219,8 +207,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -264,43 +251,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -319,58 +308,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -384,19 +372,17 @@ jvmtiLineNumberEntry *line_number_table = NULL; NSK_DISPLAY0("Checking positive: GetSourceFileName\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + if (!NSK_JVMTI_VERIFY(jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -412,7 +398,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -425,7 +411,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -438,12 +424,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -457,7 +443,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -471,12 +457,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -490,12 +476,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -591,7 +577,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -603,13 +589,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -621,13 +607,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -639,10 +625,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t011/cm01t011.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t011/cm01t011.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t011/cm01t011.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -83,8 +83,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -96,8 +95,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -109,24 +107,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -140,23 +134,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -172,27 +164,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -206,7 +194,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -219,7 +207,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -229,8 +217,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -274,43 +261,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -333,83 +322,80 @@ */ NSK_DISPLAY0("Checking positive: GetLocalVariableTable\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + if (!NSK_JVMTI_VERIFY(jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; /* DEBUG -- while thread should be suspended memset(&caps, 0, sizeof(caps)); caps.can_suspend = 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(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->SuspendThread(thread))) return NSK_FALSE; */ for (i = 0; i < count; i++) { if (strcmp(local_variable_table[i].name, "o") ==0) { NSK_DISPLAY0("Checking positive: GetLocalObject\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetLocalObject, jvmti, - thread, 1, local_variable_table[i].slot, &object_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->GetLocalObject(thread, 1, local_variable_table[i].slot, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: SetLocalObject\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(SetLocalObject, jvmti, - thread, 1, local_variable_table[i].slot, object_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetLocalObject(thread, 1, local_variable_table[i].slot, object_value))) return NSK_FALSE; } else if (strcmp(local_variable_table[i].name, "i") ==0) { NSK_DISPLAY0("Checking positive: GetLocalInt\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetLocalInt, jvmti, - thread, 1, local_variable_table[i].slot, &int_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->GetLocalInt(thread, 1, local_variable_table[i].slot, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: SetLocalInt\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(SetLocalInt, jvmti, - thread, 1, local_variable_table[i].slot, int_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetLocalInt(thread, 1, local_variable_table[i].slot, int_value))) return NSK_FALSE; } else if (strcmp(local_variable_table[i].name, "l") ==0) { NSK_DISPLAY0("Checking positive: GetLocalLong\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetLocalLong, jvmti, - thread, 1, local_variable_table[i].slot, &long_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->GetLocalLong(thread, 1, local_variable_table[i].slot, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: SetLocalLong\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(SetLocalLong, jvmti, - thread, 1, local_variable_table[i].slot, long_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetLocalLong(thread, 1, local_variable_table[i].slot, long_value))) return NSK_FALSE; } else if (strcmp(local_variable_table[i].name, "f") ==0) { NSK_DISPLAY0("Checking positive: GetLocalFloat\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetLocalFloat, jvmti, - thread, 1, local_variable_table[i].slot, &float_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->GetLocalFloat(thread, 1, local_variable_table[i].slot, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: SetLocalFloat\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(SetLocalFloat, jvmti, - thread, 1, local_variable_table[i].slot, float_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetLocalFloat(thread, 1, local_variable_table[i].slot, float_value))) return NSK_FALSE; } else if (strcmp(local_variable_table[i].name, "d") ==0) { NSK_DISPLAY0("Checking positive: GetLocalDouble\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetLocalDouble, jvmti, - thread, 1, local_variable_table[i].slot, &double_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->GetLocalDouble(thread, 1, local_variable_table[i].slot, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: SetLocalDouble\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(SetLocalDouble, jvmti, - thread, 1, local_variable_table[i].slot, double_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetLocalDouble(thread, 1, local_variable_table[i].slot, double_value))) return NSK_FALSE; } } /* DEBUG -- while thread should be suspended - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->ResumeThread(thread))) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; */ - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, jvmti, - (unsigned char*)local_variable_table))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)local_variable_table))) return NSK_FALSE; return NSK_TRUE; @@ -424,18 +410,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -451,7 +436,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -464,7 +449,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -477,12 +462,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -496,7 +481,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -510,12 +495,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -529,12 +514,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -630,7 +615,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -642,13 +627,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -660,13 +645,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -678,10 +663,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t012/cm01t012.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t012/cm01t012.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t012/cm01t012.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -76,8 +76,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -89,8 +88,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -102,24 +100,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -133,21 +127,19 @@ jvmtiError err; NSK_DISPLAY0("Checking positive: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: SuspendThreadList\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + if (!NSK_JVMTI_VERIFY(jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: ResumeThreadList\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + if (!NSK_JVMTI_VERIFY(jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -163,27 +155,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -197,7 +185,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -210,7 +198,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -220,8 +208,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -265,43 +252,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -320,58 +309,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -386,18 +374,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -413,7 +400,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -426,7 +413,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -439,12 +426,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -458,7 +445,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -472,12 +459,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -491,12 +478,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -592,7 +579,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -604,13 +591,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -622,13 +609,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -640,10 +627,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t013/cm01t013.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t013/cm01t013.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t013/cm01t013.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -73,8 +73,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -86,8 +85,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -99,24 +97,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -130,23 +124,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -162,27 +154,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -196,7 +184,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -209,7 +197,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -219,8 +207,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -264,43 +251,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -319,58 +308,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -385,18 +373,16 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: GetLineNumberTable\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + if (!NSK_JVMTI_VERIFY(jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -412,7 +398,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -425,7 +411,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -438,12 +424,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -457,7 +443,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -471,12 +457,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -490,12 +476,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -591,7 +577,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -603,13 +589,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -621,13 +607,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -639,10 +625,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t014/cm01t014.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t014/cm01t014.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t014/cm01t014.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -74,8 +74,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -87,8 +86,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -100,24 +98,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -130,7 +124,7 @@ static int checkGetPotentialCapabilities() { jvmtiCapabilities caps; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return NSK_FALSE; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -148,7 +142,7 @@ memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return NSK_FALSE; return NSK_TRUE; @@ -160,7 +154,7 @@ jvmtiCapabilities caps; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return NSK_FALSE; if (owe && !caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -182,7 +176,7 @@ memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return NSK_FALSE; return NSK_TRUE; @@ -196,23 +190,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -228,27 +220,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -262,7 +250,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -275,7 +263,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -285,8 +273,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -330,43 +317,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -385,58 +374,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -451,18 +439,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -478,7 +465,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -491,7 +478,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -504,12 +491,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -523,15 +510,14 @@ if (positive) { NSK_DISPLAY0("Checking positive: GetBytecodes\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + if (!NSK_JVMTI_VERIFY(jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, jvmti, bytecodes))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate(bytecodes))) return NSK_FALSE; } else { NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; } @@ -546,12 +532,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -565,12 +551,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t015/cm01t015.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t015/cm01t015.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t015/cm01t015.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -76,8 +76,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -89,8 +88,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -102,24 +100,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -132,7 +126,7 @@ static int checkGetPotentialCapabilities() { jvmtiCapabilities caps; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return NSK_FALSE; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -150,7 +144,7 @@ memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return NSK_FALSE; return NSK_TRUE; @@ -162,7 +156,7 @@ jvmtiCapabilities caps; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return NSK_FALSE; if (owe && !caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -184,7 +178,7 @@ memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return NSK_FALSE; return NSK_TRUE; @@ -198,23 +192,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -230,27 +222,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -264,7 +252,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -277,7 +265,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -287,8 +275,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -332,43 +319,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -387,58 +376,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -453,18 +441,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -480,7 +467,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -493,7 +480,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -506,23 +493,21 @@ if (positive) { NSK_DISPLAY0("Checking positive: IsFieldSynthetic\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + if (!NSK_JVMTI_VERIFY(jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: IsMethodSynthetic\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + if (!NSK_JVMTI_VERIFY(jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; } else { NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; } @@ -537,7 +522,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -551,12 +536,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -570,12 +555,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t016/cm01t016.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t016/cm01t016.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t016/cm01t016.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -74,8 +74,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -87,8 +86,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -100,24 +98,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -130,7 +124,7 @@ static int checkGetPotentialCapabilities() { jvmtiCapabilities caps; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return NSK_FALSE; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -148,7 +142,7 @@ memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return NSK_FALSE; return NSK_TRUE; @@ -160,7 +154,7 @@ jvmtiCapabilities caps; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return NSK_FALSE; if (owe && !caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -182,7 +176,7 @@ memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return NSK_FALSE; return NSK_TRUE; @@ -196,23 +190,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -228,27 +220,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -262,7 +250,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -275,7 +263,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -285,8 +273,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -330,43 +317,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -385,58 +374,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -451,18 +439,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -478,7 +465,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -491,14 +478,12 @@ if (positive) { NSK_DISPLAY0("Checking positive: GetObjectMonitorUsage\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, - thread, &monitor_info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; } else { NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, - thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; } @@ -512,12 +497,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -531,7 +516,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -545,12 +530,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -564,12 +549,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t017/cm01t017.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t017/cm01t017.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t017/cm01t017.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -76,8 +76,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -89,8 +88,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -102,24 +100,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -132,7 +126,7 @@ static int checkGetPotentialCapabilities() { jvmtiCapabilities caps; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return NSK_FALSE; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -150,7 +144,7 @@ memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return NSK_FALSE; return NSK_TRUE; @@ -162,7 +156,7 @@ jvmtiCapabilities caps; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return NSK_FALSE; if (owe && !caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -184,7 +178,7 @@ memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return NSK_FALSE; return NSK_TRUE; @@ -198,23 +192,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -230,37 +222,33 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; if (positive) { NSK_DISPLAY0("Checking positive: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->InterruptThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: StopThread\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(StopThread, jvmti, - thread, exception))) + if (!NSK_JVMTI_VERIFY(jvmti->StopThread(thread, exception))) return NSK_FALSE; } else { NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + jvmti->InterruptThread(thread))) return NSK_FALSE; } @@ -275,7 +263,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -288,7 +276,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -298,8 +286,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -343,43 +330,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -398,58 +387,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -464,18 +452,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -491,7 +478,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -504,7 +491,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -517,12 +504,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -536,7 +523,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -550,12 +537,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -569,12 +556,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t018/cm01t018.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t018/cm01t018.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t018/cm01t018.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -78,8 +78,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -91,8 +90,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -104,24 +102,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -134,7 +128,7 @@ static int checkGetPotentialCapabilities() { jvmtiCapabilities caps; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return NSK_FALSE; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -152,7 +146,7 @@ memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return NSK_FALSE; return NSK_TRUE; @@ -164,7 +158,7 @@ jvmtiCapabilities caps; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return NSK_FALSE; if (owe && !caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -186,7 +180,7 @@ memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return NSK_FALSE; return NSK_TRUE; @@ -201,41 +195,39 @@ if (positive) { NSK_DISPLAY0("Checking positive: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: SuspendThreadList\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + if (!NSK_JVMTI_VERIFY(jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: ResumeThreadList\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + if (!NSK_JVMTI_VERIFY(jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; } else { NSK_DISPLAY0("Checking negative: SuspendThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; } @@ -252,27 +244,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -286,7 +274,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -299,7 +287,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -309,8 +297,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -354,43 +341,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -409,58 +398,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -475,18 +463,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -502,7 +489,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -515,7 +502,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -528,12 +515,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -547,7 +534,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -561,12 +548,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -580,12 +567,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t019/cm01t019.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t019/cm01t019.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t019/cm01t019.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -73,8 +73,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -86,8 +85,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -99,24 +97,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -130,23 +124,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -162,27 +154,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -196,7 +184,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -209,7 +197,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -219,8 +207,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -264,43 +251,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -319,58 +308,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -385,18 +373,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_ABSENT_INFORMATION, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -412,7 +399,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -425,7 +412,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -438,12 +425,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -457,7 +444,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -471,12 +458,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -490,12 +477,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -591,7 +578,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -603,13 +590,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -621,13 +608,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -639,10 +626,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t020/cm01t020.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t020/cm01t020.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t020/cm01t020.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -74,8 +74,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -87,8 +86,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -100,24 +98,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -131,23 +125,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -163,27 +155,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -197,7 +185,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -210,7 +198,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -220,8 +208,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -265,43 +252,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -320,58 +309,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -386,18 +374,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -413,7 +400,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -426,7 +413,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -439,12 +426,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -458,7 +445,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -471,13 +458,11 @@ jlong nanos; NSK_DISPLAY0("Checking positive: GetCurrentThreadCpuTimerInfo\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: GetCurrentThreadCpuTime\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -491,12 +476,12 @@ NSK_DISPLAY0("Checking negative: GetThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: checkGetThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -592,7 +577,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -604,13 +589,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -622,13 +607,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -640,10 +625,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t021/cm01t021.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t021/cm01t021.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t021/cm01t021.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -74,8 +74,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -87,8 +86,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -100,24 +98,20 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'run' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "run", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "run", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingMonitor' */ if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, - "waitingMonitor", "Ljava/lang/Object;")) != NULL)) + jni->GetFieldID(klass, "waitingMonitor", "Ljava/lang/Object;")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -131,23 +125,21 @@ jvmtiError err; NSK_DISPLAY0("Checking negative: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SuspendThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: ResumeThreadList\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -163,27 +155,23 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking negative: StopThread\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + jvmti->StopThread(thread, exception))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->InterruptThread(thread))) return NSK_FALSE; return NSK_TRUE; @@ -197,7 +185,7 @@ NSK_DISPLAY0("Checking negative: GetOwnedMonitorInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -210,7 +198,7 @@ NSK_DISPLAY0("Checking negative: GetCurrentContendedMonitor\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -220,8 +208,7 @@ */ static int checkPopFrame() { NSK_DISPLAY0("Checking negative: PopFrame\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(PopFrame, jvmti, thread))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->PopFrame(thread))) return NSK_FALSE; return NSK_TRUE; @@ -265,43 +252,45 @@ NSK_DISPLAY0("Checking negative: SetTag\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetTag\n"); - if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetObjectsWithTags\n"); tag = TAG_VALUE; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -320,58 +309,57 @@ NSK_DISPLAY0("Checking negative: GetLocalVariableTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalObject, jvmti, thread, 0, 0, &object_value))) + jvmti->GetLocalObject(thread, 0, 0, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalInt, jvmti, thread, 0, 0, &int_value))) + jvmti->GetLocalInt(thread, 0, 0, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalLong, jvmti, thread, 0, 0, &long_value))) + jvmti->GetLocalLong(thread, 0, 0, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalFloat, jvmti, thread, 0, 0, &float_value))) + jvmti->GetLocalFloat(thread, 0, 0, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(GetLocalDouble, jvmti, thread, 0, 0, &double_value))) + jvmti->GetLocalDouble(thread, 0, 0, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalObject\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalObject, jvmti, thread, 0, 0, thread))) + jvmti->SetLocalObject(thread, 0, 0, thread))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalInt\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalInt, jvmti, thread, 0, 0, (jint)0))) + jvmti->SetLocalInt(thread, 0, 0, (jint)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalLong\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalLong, jvmti, thread, 0, 0, (jlong)0))) + jvmti->SetLocalLong(thread, 0, 0, (jlong)0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalFloat\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalFloat, jvmti, thread, 0, 0, (jfloat)0.0))) + jvmti->SetLocalFloat(thread, 0, 0, (jfloat)0.0))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: SetLocalDouble\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB5(SetLocalDouble, jvmti, thread, 0, 0, (jdouble)0.0))) + jvmti->SetLocalDouble(thread, 0, 0, (jdouble)0.0))) return NSK_FALSE; return NSK_TRUE; @@ -386,18 +374,17 @@ NSK_DISPLAY0("Checking negative: GetSourceFileName\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetLineNumberTable\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -413,7 +400,7 @@ class_def.class_byte_count = 0; class_def.class_bytes = NULL; if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; return NSK_TRUE; @@ -426,7 +413,7 @@ NSK_DISPLAY0("Checking negative: GetObjectMonitorUsage\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -439,12 +426,12 @@ NSK_DISPLAY0("Checking negative: IsFieldSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: IsMethodSynthetic\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -458,7 +445,7 @@ NSK_DISPLAY0("Checking negative: GetBytecodes\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -472,12 +459,12 @@ NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTimerInfo\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking negative: GetCurrentThreadCpuTime\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -490,13 +477,11 @@ jlong nanos; NSK_DISPLAY0("Checking positive: GetThreadCpuTimerInfo\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: checkGetThreadCpuTime\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -592,7 +577,7 @@ /* testcase #1: check GetPotentialCapabilities */ NSK_DISPLAY0("Testcase #1: check if GetPotentialCapabilities returns the capability\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPotentialCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetPotentialCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetPotentialCapabilities does not return \"%s\" capability\n", @@ -604,13 +589,13 @@ NSK_DISPLAY0("Testcase #2: add the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* testcase #3: check if GetCapabilities returns the capability */ NSK_DISPLAY0("Testcase #3: check if GetCapabilities returns the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", @@ -622,13 +607,13 @@ NSK_DISPLAY0("Testcase #4: relinquish the capability during Onload phase\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RelinquishCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->RelinquishCapabilities(&caps))) return JNI_ERR; /* testcase #5: check if GetCapabilities does not return the capability */ NSK_DISPLAY0("Testcase #5: check if GetCapabilities does not return the capability\n"); memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities returns relinquished \"%s\" capability\n", @@ -640,10 +625,10 @@ NSK_DISPLAY0("Testcase #6: add back the capability and check with GetCapabilities\n"); memset(&caps, 0, sizeof(caps)); caps.CAPABILITY = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return JNI_ERR; if (!caps.CAPABILITY) { NSK_COMPLAIN1("GetCapabilities does not return \"%s\" capability\n", diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM02/cm02t001/cm02t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM02/cm02t001/cm02t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM02/cm02t001/cm02t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -99,17 +99,16 @@ CompiledMethodLoadEventsCount++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetMethodName, - jvmti_env, method, &name, &signature, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetMethodName(method, &name, &signature, NULL))) { nsk_jvmti_setFailStatus(); return; } NSK_DISPLAY3("CompiledMethodLoad event: %s%s (0x%p)\n", name, signature, code_addr); if (name != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)name); + jvmti_env->Deallocate((unsigned char*)name); if (signature != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)signature); + jvmti_env->Deallocate((unsigned char*)signature); } static void JNICALL @@ -126,8 +125,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); } } @@ -139,8 +138,7 @@ MonitorContendedEnterEventsCount++; /* get thread information */ - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetThreadInfo, jvmti_env, - thread, &info))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetThreadInfo(thread, &info))) { nsk_jvmti_setFailStatus(); return; } @@ -156,8 +154,7 @@ MonitorContendedEnteredEventsCount++; /* get thread information */ - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetThreadInfo, jvmti_env, - thread, &info))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetThreadInfo(thread, &info))) { nsk_jvmti_setFailStatus(); return; } @@ -173,8 +170,7 @@ MonitorWaitEventsCount++; /* get thread information */ - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetThreadInfo, jvmti_env, - thread, &info))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetThreadInfo(thread, &info))) { nsk_jvmti_setFailStatus(); return; } @@ -190,8 +186,7 @@ MonitorWaitedEventsCount++; /* get thread information */ - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetThreadInfo, jvmti_env, - thread, &info))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetThreadInfo(thread, &info))) { nsk_jvmti_setFailStatus(); return; } @@ -207,14 +202,13 @@ VMObjectAllocEventsCount++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature, jvmti_env, - object_klass, &signature, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetClassSignature(object_klass, &signature, NULL))) { nsk_jvmti_setFailStatus(); return; } NSK_DISPLAY2("VMObjectAlloc: \"%s\", size=%d\n", signature, size); if (signature != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)signature); + jvmti_env->Deallocate((unsigned char*)signature); } static void JNICALL @@ -226,7 +220,7 @@ NativeMethodBindEventsCount++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); return; } @@ -234,8 +228,7 @@ if (phase != JVMTI_PHASE_START && phase != JVMTI_PHASE_LIVE) return; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetMethodName, - jvmti_env, method, &name, &signature, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetMethodName(method, &name, &signature, NULL))) { nsk_jvmti_setFailStatus(); return; } @@ -243,9 +236,9 @@ NSK_DISPLAY2("NativeMethodBind event: %s%s\n", name, signature); if (name != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)name); + jvmti_env->Deallocate((unsigned char*)name); if (signature != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)signature); + jvmti_env->Deallocate((unsigned char*)signature); } static void JNICALL @@ -280,8 +273,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -293,8 +285,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -305,18 +296,15 @@ } } - if (!NSK_JNI_VERIFY(jni, (thread = - NSK_CPP_STUB2(NewGlobalRef, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (thread = jni->NewGlobalRef(thread)) != NULL)) return NSK_FALSE; /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -330,7 +318,7 @@ jvmtiCapabilities caps; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return NSK_FALSE; if (!NSK_VERIFY(caps.can_tag_objects)) return NSK_FALSE; @@ -373,8 +361,7 @@ jobject *monitors = NULL; NSK_DISPLAY0("Checking positive: GetOwnedMonitorInfo\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(GetOwnedMonitorInfo, jvmti, thread, &count, &monitors))) + if (!NSK_JVMTI_VERIFY(jvmti->GetOwnedMonitorInfo(thread, &count, &monitors))) return NSK_FALSE; return NSK_TRUE; @@ -386,8 +373,7 @@ jobject monitor = NULL; NSK_DISPLAY0("Checking positive: GetCurrentContendedMonitor\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetCurrentContendedMonitor, jvmti, thread, &monitor))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCurrentContendedMonitor(thread, &monitor))) return NSK_FALSE; return NSK_TRUE; @@ -439,44 +425,44 @@ jint dummy_user_data = 0; NSK_DISPLAY0("Checking positive: SetTag\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetTag, jvmti, thread, TAG_VALUE))) + if (!NSK_JVMTI_VERIFY(jvmti->SetTag(thread, TAG_VALUE))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: GetTag\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetTag, jvmti, thread, &tag))) + if (!NSK_JVMTI_VERIFY(jvmti->GetTag(thread, &tag))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: GetObjectsWithTags\n"); tag = TAG_VALUE; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB6(GetObjectsWithTags, jvmti, 1, &tag, - &count, &res_objects, &res_tags))) + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectsWithTags(1, &tag, &count, &res_objects, &res_tags))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: IterateOverHeap\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IterateOverHeap, jvmti, JVMTI_HEAP_OBJECT_TAGGED, - HeapObject, &dummy_user_data))) + jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_TAGGED, HeapObject, &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: IterateOverInstancesOfClass\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5(IterateOverInstancesOfClass, jvmti, klass, - JVMTI_HEAP_OBJECT_UNTAGGED, HeapObject, &dummy_user_data))) + jvmti->IterateOverInstancesOfClass(klass, + JVMTI_HEAP_OBJECT_UNTAGGED, + HeapObject, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: IterateOverObjectsReachableFromObject\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IterateOverObjectsReachableFromObject, jvmti, thread, - ThreadObjectReference, &dummy_user_data))) + jvmti->IterateOverObjectsReachableFromObject(thread, + ThreadObjectReference, + &dummy_user_data))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: IterateOverReachableObjects\n"); if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5(IterateOverReachableObjects, jvmti, - HeapRoot, StackReference, ObjectReference, &dummy_user_data))) + jvmti->IterateOverReachableObjects(HeapRoot, + StackReference, + ObjectReference, + &dummy_user_data))) return NSK_FALSE; return NSK_TRUE; @@ -488,8 +474,7 @@ jvmtiMonitorUsage monitor_info; NSK_DISPLAY0("Checking positive: GetObjectMonitorUsage\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetObjectMonitorUsage, jvmti, thread, &monitor_info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectMonitorUsage(thread, &monitor_info))) return NSK_FALSE; return NSK_TRUE; @@ -502,13 +487,11 @@ jlong nanos; NSK_DISPLAY0("Checking positive: GetCurrentThreadCpuTimerInfo\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetCurrentThreadCpuTimerInfo, jvmti, &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCurrentThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: GetCurrentThreadCpuTime\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetCurrentThreadCpuTime, jvmti, &nanos))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCurrentThreadCpuTime(&nanos))) return NSK_FALSE; return NSK_TRUE; @@ -521,13 +504,11 @@ jlong nanos; NSK_DISPLAY0("Checking positive: GetThreadCpuTimerInfo\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetThreadCpuTimerInfo, jvmti, &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadCpuTimerInfo(&info))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: checkGetThreadCpuTime\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadCpuTime, jvmti, thread, &nanos))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadCpuTime(thread, &nanos))) return NSK_FALSE; return NSK_TRUE; @@ -641,7 +622,7 @@ if (!checkGetThreadCpuTime(jvmti)) nsk_jvmti_setFailStatus(); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, thread)); + NSK_TRACE(jni->DeleteGlobalRef(thread)); /* resume debugee and wait for sync */ if (!nsk_jvmti_resumeSync()) @@ -706,7 +687,7 @@ caps.can_generate_native_method_bind_events = 1; caps.can_generate_garbage_collection_events = 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; /* set event callbacks */ @@ -723,46 +704,45 @@ callbacks.GarbageCollectionStart = &GarbageCollectionStart; callbacks.GarbageCollectionFinish = &GarbageCollectionFinish; callbacks.ObjectFree = &ObjectFree; - 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 events */ - 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; - 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; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTER, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode( + JVMTI_ENABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTER, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode( + JVMTI_ENABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_MONITOR_WAIT, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode( + JVMTI_ENABLE, JVMTI_EVENT_MONITOR_WAIT, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_MONITOR_WAITED, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode( + JVMTI_ENABLE, JVMTI_EVENT_MONITOR_WAITED, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_VM_OBJECT_ALLOC, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode( + JVMTI_ENABLE, JVMTI_EVENT_VM_OBJECT_ALLOC, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_NATIVE_METHOD_BIND, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode( + JVMTI_ENABLE, JVMTI_EVENT_NATIVE_METHOD_BIND, 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; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_OBJECT_FREE, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode( + JVMTI_ENABLE, JVMTI_EVENT_OBJECT_FREE, NULL))) return JNI_ERR; /* register agent proc and arg */ diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM03/cm03t001/cm03t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM03/cm03t001/cm03t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/capability/CM03/cm03t001/cm03t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -95,15 +95,15 @@ if (name != NULL && (strcmp(name, CLASS_NAME) == 0)) { NSK_DISPLAY1("ClassFileLoadHook: %s\n", name); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(Allocate, - jvmti_env, class_data_len, &klass_bytes))) + if (!NSK_JVMTI_VERIFY(jvmti_env->Allocate(class_data_len, &klass_bytes))) nsk_jvmti_setFailStatus(); else { memcpy(klass_bytes, class_data, class_data_len); klass_byte_count = class_data_len; } - NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti_env, JVMTI_DISABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL)); + NSK_JVMTI_VERIFY( + jvmti_env->SetEventNotificationMode( + JVMTI_DISABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL)); } } @@ -116,20 +116,18 @@ FieldAccessEventsCount++; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(ClearFieldAccessWatch, jvmti_env, klass, field))) + if (!NSK_JVMTI_VERIFY(jvmti_env->ClearFieldAccessWatch(klass, field))) return; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB6(GetFieldName, - jvmti_env, field_klass, field, &name, &signature, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetFieldName(field_klass, field, &name, &signature, NULL))) { nsk_jvmti_setFailStatus(); return; } NSK_DISPLAY2("FieldAccess event: %s:%s\n", name, signature); if (name != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)name); + jvmti_env->Deallocate((unsigned char*)name); if (signature != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)signature); + jvmti_env->Deallocate((unsigned char*)signature); } static void JNICALL @@ -142,16 +140,15 @@ FieldModificationEventsCount++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB6(GetFieldName, - jvmti_env, field_klass, field, &name, &signature, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetFieldName(field_klass, field, &name, &signature, NULL))) { nsk_jvmti_setFailStatus(); return; } NSK_DISPLAY2("FieldModification event: %s:%s\n", name, signature); if (name != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)name); + jvmti_env->Deallocate((unsigned char*)name); if (signature != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)signature); + jvmti_env->Deallocate((unsigned char*)signature); } static void JNICALL @@ -162,19 +159,19 @@ SingleStepEventsCount++; - NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti_env, JVMTI_DISABLE, JVMTI_EVENT_SINGLE_STEP, NULL)); + NSK_JVMTI_VERIFY( + jvmti_env->SetEventNotificationMode( + JVMTI_DISABLE, JVMTI_EVENT_SINGLE_STEP, NULL)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetMethodName, - jvmti_env, method, &name, &signature, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetMethodName(method, &name, &signature, NULL))) { nsk_jvmti_setFailStatus(); return; } NSK_DISPLAY2("SingleStep event: %s%s\n", name, signature); if (name != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)name); + jvmti_env->Deallocate((unsigned char*)name); if (signature != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)signature); + jvmti_env->Deallocate((unsigned char*)signature); } static void JNICALL @@ -186,19 +183,17 @@ ExceptionEventsCount++; - if (!NSK_JNI_VERIFY(jni_env, (klass = - NSK_CPP_STUB2(GetObjectClass, jni_env, exception)) != NULL)) { + if (!NSK_JNI_VERIFY(jni_env, (klass = jni_env->GetObjectClass(exception)) != NULL)) { nsk_jvmti_setFailStatus(); return; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature, jvmti_env, - klass, &signature, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetClassSignature(klass, &signature, NULL))) { nsk_jvmti_setFailStatus(); return; } NSK_DISPLAY1("Exception event: %s\n", signature); if (signature != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)signature); + jvmti_env->Deallocate((unsigned char*)signature); } void JNICALL @@ -209,19 +204,17 @@ ExceptionCatchEventsCount++; - if (!NSK_JNI_VERIFY(jni_env, (klass = - NSK_CPP_STUB2(GetObjectClass, jni_env, exception)) != NULL)) { + if (!NSK_JNI_VERIFY(jni_env, (klass = jni_env->GetObjectClass(exception)) != NULL)) { nsk_jvmti_setFailStatus(); return; } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(GetClassSignature, jvmti_env, - klass, &signature, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetClassSignature(klass, &signature, NULL))) { nsk_jvmti_setFailStatus(); return; } NSK_DISPLAY1("ExceptionCatch event: %s\n", signature); if (signature != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)signature); + jvmti_env->Deallocate((unsigned char*)signature); } static void JNICALL @@ -231,18 +224,17 @@ char *signature = NULL; BreakpointEventsCount++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetMethodName, - jvmti_env, method, &name, &signature, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetMethodName(method, &name, &signature, NULL))) { nsk_jvmti_setFailStatus(); return; } NSK_DISPLAY2("Breakpoint event: %s%s\n", name, signature); if (name != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)name); + jvmti_env->Deallocate((unsigned char*)name); if (signature != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)signature); + jvmti_env->Deallocate((unsigned char*)signature); - NSK_CPP_STUB3(NotifyFramePop, jvmti_env, thread, 0); + jvmti_env->NotifyFramePop(thread, 0); } static void JNICALL @@ -253,16 +245,15 @@ char *signature = NULL; FramePopEventsCount++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetMethodName, - jvmti_env, method, &name, &signature, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetMethodName(method, &name, &signature, NULL))) { nsk_jvmti_setFailStatus(); return; } NSK_DISPLAY2("FramePop event: %s%s\n", name, signature); if (name != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)name); + jvmti_env->Deallocate((unsigned char*)name); if (signature != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)signature); + jvmti_env->Deallocate((unsigned char*)signature); } static void JNICALL @@ -272,16 +263,15 @@ char *signature = NULL; MethodEntryEventsCount++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetMethodName, - jvmti_env, method, &name, &signature, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetMethodName(method, &name, &signature, NULL))) { nsk_jvmti_setFailStatus(); return; } NSK_DISPLAY2("MethodEntry event: %s%s\n", name, signature); if (name != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)name); + jvmti_env->Deallocate((unsigned char*)name); if (signature != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)signature); + jvmti_env->Deallocate((unsigned char*)signature); } static void JNICALL @@ -292,16 +282,15 @@ char *signature = NULL; MethodExitEventsCount++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetMethodName, - jvmti_env, method, &name, &signature, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetMethodName(method, &name, &signature, NULL))) { nsk_jvmti_setFailStatus(); return; } NSK_DISPLAY2("MethodExit event: %s%s\n", name, signature); if (name != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)name); + jvmti_env->Deallocate((unsigned char*)name); if (signature != NULL) - NSK_CPP_STUB2(Deallocate, jvmti_env, (unsigned char*)signature); + jvmti_env->Deallocate((unsigned char*)signature); } /* ========================================================================== */ @@ -316,8 +305,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -329,8 +317,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -341,28 +328,23 @@ } } - if (!NSK_JNI_VERIFY(jni, (thread = - NSK_CPP_STUB2(NewGlobalRef, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (thread = jni->NewGlobalRef(thread)) != NULL)) return NSK_FALSE; /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread method 'delay' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "delay", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "delay", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingFlag' */ - if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, "waitingFlag", "Z")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (field = jni->GetFieldID(klass, "waitingFlag", "Z")) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -372,41 +354,37 @@ NSK_DISPLAY0("Prepare events ...\n"); /* get tested thread method 'letItGo' */ - if (!NSK_JNI_VERIFY(jni, (method = - NSK_CPP_STUB4(GetMethodID, jni, klass, "letItGo", "()V")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (method = jni->GetMethodID(klass, "letItGo", "()V")) != NULL)) return NSK_FALSE; /* get tested thread field 'waitingFlag' */ - if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, "waitingFlag", "Z")) != NULL)) + if (!NSK_JNI_VERIFY(jni, (field = jni->GetFieldID(klass, "waitingFlag", "Z")) != NULL)) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetFieldAccessWatch, jvmti, klass, field))) + if (!NSK_JVMTI_VERIFY(jvmti->SetFieldAccessWatch(klass, field))) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetFieldModificationWatch, jvmti, klass, field))) + if (!NSK_JVMTI_VERIFY(jvmti->SetFieldModificationWatch(klass, field))) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetBreakpoint, jvmti, method, 0))) + if (!NSK_JVMTI_VERIFY(jvmti->SetBreakpoint(method, 0))) return NSK_FALSE; /* enable events */ - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_SINGLE_STEP, NULL))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_SINGLE_STEP, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_EXCEPTION, NULL))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_EXCEPTION, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_EXCEPTION_CATCH, NULL))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_EXCEPTION_CATCH, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_METHOD_ENTRY, thread))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_METHOD_ENTRY, thread))) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_METHOD_EXIT, thread))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_METHOD_EXIT, thread))) return NSK_FALSE; return NSK_TRUE; @@ -420,7 +398,7 @@ jvmtiCapabilities caps; memset(&caps, 0, sizeof(caps)); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps))) return NSK_FALSE; if (!NSK_VERIFY(caps.can_get_bytecodes)) return NSK_FALSE; @@ -471,10 +449,9 @@ unsigned char *bytecodes; NSK_DISPLAY0("Checking positive: GetBytecodes\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(GetBytecodes, jvmti, method, &count, &bytecodes))) + if (!NSK_JVMTI_VERIFY(jvmti->GetBytecodes(method, &count, &bytecodes))) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, jvmti, bytecodes))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate(bytecodes))) return NSK_FALSE; return NSK_TRUE; @@ -486,13 +463,11 @@ jboolean is_synthetic; NSK_DISPLAY0("Checking positive: IsFieldSynthetic\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(IsFieldSynthetic, jvmti, klass, field, &is_synthetic))) + if (!NSK_JVMTI_VERIFY(jvmti->IsFieldSynthetic(klass, field, &is_synthetic))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: IsMethodSynthetic\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(IsMethodSynthetic, jvmti, method, &is_synthetic))) + if (!NSK_JVMTI_VERIFY(jvmti->IsMethodSynthetic(method, &is_synthetic))) return NSK_FALSE; return NSK_TRUE; @@ -511,12 +486,11 @@ class_def.klass = klass; class_def.class_byte_count = klass_byte_count; class_def.class_bytes = klass_bytes; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(RedefineClasses, jvmti, 1, &class_def))) + if (!NSK_JVMTI_VERIFY(jvmti->RedefineClasses(1, &class_def))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: IsMethodObsolete\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(IsMethodObsolete, jvmti, method, &is_obsolete))) + if (!NSK_JVMTI_VERIFY(jvmti->IsMethodObsolete(method, &is_obsolete))) return NSK_FALSE; return NSK_TRUE; @@ -528,8 +502,7 @@ char *name; NSK_DISPLAY0("Checking positive: GetSourceFileName\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetSourceFileName, jvmti, klass, &name))) + if (!NSK_JVMTI_VERIFY(jvmti->GetSourceFileName(klass, &name))) return NSK_FALSE; return NSK_TRUE; @@ -542,9 +515,7 @@ jvmtiLineNumberEntry *line_number_table = NULL; NSK_DISPLAY0("Checking positive: GetLineNumberTable\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(GetLineNumberTable, jvmti, method, &count, - &line_number_table))) + if (!NSK_JVMTI_VERIFY(jvmti->GetLineNumberTable(method, &count, &line_number_table))) return NSK_FALSE; return NSK_TRUE; @@ -557,7 +528,7 @@ NSK_DISPLAY0("Checking positive: GetSourceDebugExtension\n"); if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_ABSENT_INFORMATION, - NSK_CPP_STUB3(GetSourceDebugExtension, jvmti, klass, &name))) + jvmti->GetSourceDebugExtension(klass, &name))) return NSK_FALSE; return NSK_TRUE; @@ -576,77 +547,74 @@ int i; NSK_DISPLAY0("Checking positive: GetLocalVariableTable\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(GetLocalVariableTable, jvmti, method, &count, - &local_variable_table))) + if (!NSK_JVMTI_VERIFY(jvmti->GetLocalVariableTable(method, &count, &local_variable_table))) return NSK_FALSE; /* DEBUG -- while 4913796 bug not fixed thread should be suspended */ - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->SuspendThread(thread))) return NSK_FALSE; for (i = 0; i < count; i++) { if (strcmp(local_variable_table[i].name, "o") ==0) { NSK_DISPLAY0("Checking positive: GetLocalObject\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetLocalObject, jvmti, - thread, 1, local_variable_table[i].slot, &object_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->GetLocalObject(thread, 1, local_variable_table[i].slot, &object_value))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: SetLocalObject\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(SetLocalObject, jvmti, - thread, 1, local_variable_table[i].slot, object_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetLocalObject(thread, 1, local_variable_table[i].slot, object_value))) return NSK_FALSE; } else if (strcmp(local_variable_table[i].name, "i") ==0) { NSK_DISPLAY0("Checking positive: GetLocalInt\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetLocalInt, jvmti, - thread, 1, local_variable_table[i].slot, &int_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->GetLocalInt(thread, 1, local_variable_table[i].slot, &int_value))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: SetLocalInt\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(SetLocalInt, jvmti, - thread, 1, local_variable_table[i].slot, int_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetLocalInt(thread, 1, local_variable_table[i].slot, int_value))) return NSK_FALSE; } else if (strcmp(local_variable_table[i].name, "l") ==0) { NSK_DISPLAY0("Checking positive: GetLocalLong\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetLocalLong, jvmti, - thread, 1, local_variable_table[i].slot, &long_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->GetLocalLong(thread, 1, local_variable_table[i].slot, &long_value))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: SetLocalLong\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(SetLocalLong, jvmti, - thread, 1, local_variable_table[i].slot, long_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetLocalLong(thread, 1, local_variable_table[i].slot, long_value))) return NSK_FALSE; } else if (strcmp(local_variable_table[i].name, "f") ==0) { NSK_DISPLAY0("Checking positive: GetLocalFloat\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetLocalFloat, jvmti, - thread, 1, local_variable_table[i].slot, &float_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->GetLocalFloat(thread, 1, local_variable_table[i].slot, &float_value))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: SetLocalFloat\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(SetLocalFloat, jvmti, - thread, 1, local_variable_table[i].slot, float_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetLocalFloat(thread, 1, local_variable_table[i].slot, float_value))) return NSK_FALSE; } else if (strcmp(local_variable_table[i].name, "d") ==0) { NSK_DISPLAY0("Checking positive: GetLocalDouble\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(GetLocalDouble, jvmti, - thread, 1, local_variable_table[i].slot, &double_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->GetLocalDouble(thread, 1, local_variable_table[i].slot, &double_value))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: SetLocalDouble\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5(SetLocalDouble, jvmti, - thread, 1, local_variable_table[i].slot, double_value))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetLocalDouble(thread, 1, local_variable_table[i].slot, double_value))) return NSK_FALSE; } } /* DEBUG -- while 4913796 bug not fixed thread should be suspended */ - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->ResumeThread(thread))) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, jvmti, - (unsigned char*)local_variable_table))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)local_variable_table))) return NSK_FALSE; return NSK_TRUE; @@ -658,21 +626,19 @@ jvmtiError err; NSK_DISPLAY0("Checking positive: SuspendThread\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->SuspendThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: ResumeThread\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->ResumeThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: SuspendThreadList\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SuspendThreadList, jvmti, 1, &thread, &err))) + if (!NSK_JVMTI_VERIFY(jvmti->SuspendThreadList(1, &thread, &err))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: ResumeThreadList\n"); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(ResumeThreadList, jvmti, 1, &thread, &err))) + if (!NSK_JVMTI_VERIFY(jvmti->ResumeThreadList(1, &thread, &err))) return NSK_FALSE; return NSK_TRUE; @@ -685,20 +651,20 @@ jvmtiError err; NSK_DISPLAY0("Checking positive: PopFrame\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(SuspendThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->SuspendThread(thread))) return NSK_FALSE; // PopFrame is allowed to fail with JVMTI_ERROR_OPAQUE_FRAME. // That will happen if we are in a native function, // for example while waiting for a Condition. // See JCK-5020108. - err = NSK_CPP_STUB2(PopFrame, jvmti, thread); + err = jvmti->PopFrame(thread); if (err != JVMTI_ERROR_NONE && err != JVMTI_ERROR_OPAQUE_FRAME) { result = NSK_FALSE; NSK_DISPLAY1("jvmti error from PopFrame: %d\n", err); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(ResumeThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->ResumeThread(thread))) result = NSK_FALSE; return result; @@ -714,25 +680,22 @@ jmethodID ctor = NULL; jobject exception = NULL; - if (!NSK_JNI_VERIFY(jni, (cls = - NSK_CPP_STUB2(FindClass, jni, THREAD_DEATH_CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (cls = jni->FindClass(THREAD_DEATH_CLASS_NAME)) != NULL)) return NSK_FALSE; if (!NSK_JNI_VERIFY(jni, (ctor = - NSK_CPP_STUB4(GetMethodID, jni, cls, - THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) + jni->GetMethodID(cls, THREAD_DEATH_CTOR_NAME, THREAD_DEATH_CTOR_SIGNATURE)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (exception = - NSK_CPP_STUB3(NewObject, jni, cls, ctor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (exception = jni->NewObject(cls, ctor)) != NULL)) return NSK_FALSE; NSK_DISPLAY0("Checking positive: InterruptThread\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(InterruptThread, jvmti, thread))) + if (!NSK_JVMTI_VERIFY(jvmti->InterruptThread(thread))) return NSK_FALSE; NSK_DISPLAY0("Checking positive: StopThread\n"); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(StopThread, jvmti, thread, exception))) + if (!NSK_JVMTI_VERIFY(jvmti->StopThread(thread, exception))) return NSK_FALSE; return NSK_TRUE; @@ -847,7 +810,7 @@ if (!checkSignalThread(jvmti, jni)) nsk_jvmti_setFailStatus(); - NSK_TRACE(NSK_CPP_STUB2(DeleteGlobalRef, jni, thread)); + NSK_TRACE(jni->DeleteGlobalRef(thread)); /* resume debugee and wait for sync */ if (!nsk_jvmti_resumeSync()) @@ -916,7 +879,7 @@ caps.can_generate_breakpoint_events = 1; caps.can_generate_method_entry_events = 1; caps.can_generate_method_exit_events = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* set event callbacks */ @@ -931,25 +894,24 @@ callbacks.FramePop = &FramePop; callbacks.MethodEntry = &MethodEntry; callbacks.MethodExit = &MethodExit; - 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 events */ - 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; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_FIELD_ACCESS, NULL))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_FIELD_ACCESS, NULL))) return JNI_ERR; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_FIELD_MODIFICATION, NULL))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_FIELD_MODIFICATION, 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; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4(SetEventNotificationMode, - jvmti, JVMTI_ENABLE, JVMTI_EVENT_FRAME_POP, NULL))) + if (!NSK_JVMTI_VERIFY( + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_FRAME_POP, NULL))) return JNI_ERR; /* register agent proc and arg */ diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC01/tc01t001/tc01t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC01/tc01t001/tc01t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC01/tc01t001/tc01t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -54,8 +54,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -67,8 +66,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -79,38 +77,31 @@ } if (info.name != NULL) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - Deallocate, jvmti, (unsigned char*)info.name))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)info.name))) return NSK_FALSE; } } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread field 'M1' */ - if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, "M1", FIELD_SIG)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (field = jni->GetFieldID(klass, "M1", FIELD_SIG)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (object_M1 = - NSK_CPP_STUB3(GetObjectField, jni, thread, field)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (object_M1 = jni->GetObjectField(thread, field)) != NULL)) return NSK_FALSE; /* get tested thread field 'M2' */ - if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, "M2", FIELD_SIG)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (field = jni->GetFieldID(klass, "M2", FIELD_SIG)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (object_M2 = - NSK_CPP_STUB3(GetObjectField, jni, thread, field)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (object_M2 = jni->GetObjectField(thread, field)) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -126,22 +117,19 @@ int i; NSK_DISPLAY1("Checking GetObjectMonitorUsage for 0x%p\n", object); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3( - GetObjectMonitorUsage, jvmti, object, &inf))) + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectMonitorUsage(object, &inf))) return NSK_FALSE; if (nsk_getVerboseMode()) { if (inf.owner == NULL) { NSK_DISPLAY0("\towner: none (0x0)\n"); } else { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3( - GetThreadInfo, jvmti, inf.owner, &tinf))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(inf.owner, &tinf))) { result = NSK_FALSE; } else { NSK_DISPLAY2("\towner: %s (0x%p)\n", tinf.name, inf.owner); if (tinf.name != NULL) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - Deallocate, jvmti, (unsigned char*)tinf.name))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)tinf.name))) result = NSK_FALSE; } } @@ -152,15 +140,13 @@ if (inf.waiter_count > 0) { NSK_DISPLAY0("\twaiters:\n"); for (i = 0; i < inf.waiter_count; i++) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3( - GetThreadInfo, jvmti, inf.waiters[i], &tinf))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(inf.waiters[i], &tinf))) { result = NSK_FALSE; } else { NSK_DISPLAY3("\t\t%2d: %s (0x%p)\n", i, tinf.name, inf.waiters[i]); if (tinf.name != NULL) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - Deallocate, jvmti, (unsigned char*)tinf.name))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)tinf.name))) result = NSK_FALSE; } } @@ -171,15 +157,13 @@ if (inf.notify_waiter_count > 0) { NSK_DISPLAY0("\tnotify_waiters:\n"); for (i = 0; i < inf.notify_waiter_count; i++) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3( - GetThreadInfo, jvmti, inf.notify_waiters[i], &tinf))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(inf.notify_waiters[i], &tinf))) { result = NSK_FALSE; } else { NSK_DISPLAY3("\t\t%2d: %s (0x%p)\n", i, tinf.name, inf.notify_waiters[i]); if (tinf.name != NULL) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - Deallocate, jvmti, (unsigned char*)tinf.name))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)tinf.name))) result = NSK_FALSE; } } @@ -188,8 +172,7 @@ } /* check owner to be debugee thread */ - if (!NSK_JNI_VERIFY(jni, (NSK_CPP_STUB3( - IsSameObject, jni, inf.owner, thread)) == JNI_TRUE)) + if (!NSK_JNI_VERIFY(jni, (jni->IsSameObject(inf.owner, thread)) == JNI_TRUE)) result = NSK_FALSE; if (!NSK_VERIFY(inf.entry_count == 2)) @@ -203,13 +186,11 @@ /* deallocate monitor waiters arrays */ if (inf.waiters != NULL) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - Deallocate, jvmti, (unsigned char*)inf.waiters))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)inf.waiters))) result = NSK_FALSE; } if (inf.notify_waiters != NULL) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - Deallocate, jvmti, (unsigned char*)inf.notify_waiters))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)inf.notify_waiters))) result = NSK_FALSE; } @@ -279,7 +260,7 @@ /* add capabilities */ memset(&caps, 0, sizeof(caps)); caps.can_get_monitor_info = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* register agent proc and arg */ diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001.java --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001.java Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001.java Thu Oct 11 09:20:07 2018 -0700 @@ -71,7 +71,7 @@ thread.waitingBarrier1.unlock(); try { - Thread.sleep(100); + Thread.sleep(1000); // Wait for contended "synchronized (M)" thread.M.wait(timeout); } catch (InterruptedException e) { throw new Failure(e); @@ -79,7 +79,7 @@ thread.waitingBarrier2.unlock(); try { - Thread.sleep(100); + Thread.sleep(1000); // Wait for contended "synchronized (M)" thread.M.wait(timeout); } catch (InterruptedException e) { throw new Failure(e); @@ -87,7 +87,7 @@ thread.waitingBarrier3.unlock(); try { - Thread.sleep(100); + Thread.sleep(1000); // Wait for contended "synchronized (M)" thread.M.wait(timeout); } catch (InterruptedException e) { throw new Failure(e); diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001/tc02t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001/tc02t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC02/tc02t001/tc02t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -52,8 +52,7 @@ jint line = 0; int i; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB5( - GetFrameLocation, jvmti, thread, 0, &method, &location))) + if (!NSK_JVMTI_VERIFY(jvmti->GetFrameLocation(thread, 0, &method, &location))) return 0; if (!NSK_VERIFY(method != NULL)) @@ -62,8 +61,7 @@ if (!NSK_VERIFY(location != -1)) return 0; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4( - GetLineNumberTable, jvmti, method, &count, &table))) + if (!NSK_JVMTI_VERIFY(jvmti->GetLineNumberTable(method, &count, &table))) return 0; if (!NSK_VERIFY(table != NULL)) @@ -81,8 +79,7 @@ line = table[i-1].line_number; if (table != NULL) { - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)table))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)table))) return 0; } @@ -108,8 +105,8 @@ } /* check if event is for tested thread and object */ - if (NSK_CPP_STUB3(IsSameObject, jni, thread, thr) && - NSK_CPP_STUB3(IsSameObject, jni, object_M, obj)) { + if (jni->IsSameObject(thread, thr) && + jni->IsSameObject(object_M, obj)) { if (!(line = findLineNumber(jvmti, thread))) { nsk_jvmti_setFailStatus(); @@ -152,8 +149,8 @@ } /* check if event is for tested thread and object */ - if (NSK_CPP_STUB3(IsSameObject, jni, thread, thr) && - NSK_CPP_STUB3(IsSameObject, jni, object_M, obj)) { + if (jni->IsSameObject(thread, thr) && + jni->IsSameObject(object_M, obj)) { if (!(line = findLineNumber(jvmti, thread))) { nsk_jvmti_setFailStatus(); @@ -194,8 +191,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -207,8 +203,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -219,15 +214,13 @@ } if (info.name != NULL) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - Deallocate, jvmti, (unsigned char*)info.name))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)info.name))) return NSK_FALSE; } } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; if (thread == NULL) { @@ -236,39 +229,34 @@ } /* make thread accessable for a long time */ - if (!NSK_JNI_VERIFY(jni, (thread = - NSK_CPP_STUB2(NewGlobalRef, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (thread = jni->NewGlobalRef(thread)) != NULL)) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread field 'M' */ - if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, "M", FIELD_SIG)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (field = jni->GetFieldID(klass, "M", FIELD_SIG)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (object_M = - NSK_CPP_STUB3(GetObjectField, jni, thread, field)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (object_M = jni->GetObjectField(thread, field)) != NULL)) return NSK_FALSE; /* make object accessable for a long time */ - if (!NSK_JNI_VERIFY(jni, (object_M = - NSK_CPP_STUB2(NewGlobalRef, jni, object_M)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (object_M = jni->NewGlobalRef(object_M)) != NULL)) return NSK_FALSE; /* enable MonitorContendedEntered event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_MONITOR_CONTENDED_ENTER, NULL))) + jvmti->SetEventNotificationMode( + JVMTI_ENABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTER, NULL))) return NSK_FALSE; /* enable MonitorContendedEntered event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, NULL))) + jvmti->SetEventNotificationMode( + JVMTI_ENABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, NULL))) return NSK_FALSE; return NSK_TRUE; @@ -278,8 +266,8 @@ /* disable MonitorContendedEntered event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_DISABLE, - JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, NULL))) + jvmti->SetEventNotificationMode( + JVMTI_DISABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, NULL))) nsk_jvmti_setFailStatus(); return NSK_TRUE; @@ -364,15 +352,13 @@ memset(&caps, 0, sizeof(caps)); caps.can_generate_monitor_events = 1; caps.can_get_line_numbers = 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)); callbacks.MonitorContendedEnter = &MonitorContendedEnter; callbacks.MonitorContendedEntered = &MonitorContendedEntered; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &callbacks, sizeof(callbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; /* register agent proc and arg */ diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t001/tc03t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t001/tc03t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t001/tc03t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -57,38 +57,32 @@ NSK_DISPLAY1("Found deadlock #%d:\n", numberOfDeadlocks); for (pThread = dThread;;pThread = cThread) { NSK_DISPLAY1(" \"%s\":\n", threadList[pThread].name); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetCurrentContendedMonitor, - jvmti, threadList[pThread].thread, &monitor))) + if (!NSK_JVMTI_VERIFY( + jvmti->GetCurrentContendedMonitor(threadList[pThread].thread, &monitor))) return NSK_FALSE; if (monitor != NULL) { - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, monitor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(monitor)) != NULL)) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4( - GetClassSignature, jvmti, klass, &name, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->GetClassSignature(klass, &name, NULL))) return NSK_FALSE; NSK_DISPLAY2(" waiting to lock %p (%s),\n", monitor, name); - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)name); + jvmti->Deallocate((unsigned char*)name); } else { NSK_DISPLAY0(" (JVMTI raw monitor),\n"); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetObjectMonitorUsage, - jvmti, monitor, &usageInfo))) + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectMonitorUsage(monitor, &usageInfo))) return NSK_FALSE; if (usageInfo.owner == NULL) break; for (cThread = 0; cThread < threads_count; cThread++) { - if (NSK_CPP_STUB3(IsSameObject, jni, - threadList[cThread].thread, usageInfo.owner)) + if (jni->IsSameObject(threadList[cThread].thread, usageInfo.owner)) break; } if (usageInfo.waiters != NULL) { - NSK_CPP_STUB2(Deallocate, jvmti, - (unsigned char*)usageInfo.waiters); + jvmti->Deallocate((unsigned char*)usageInfo.waiters); } if (usageInfo.notify_waiters != NULL) { - NSK_CPP_STUB2(Deallocate, jvmti, - (unsigned char*)usageInfo.notify_waiters); + jvmti->Deallocate((unsigned char*)usageInfo.notify_waiters); } if (!NSK_VERIFY(cThread != threads_count)) return NSK_FALSE; @@ -113,15 +107,14 @@ NSK_DISPLAY0("Create threadList\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(Allocate, jvmti, - threads_count*sizeof(threadDesc), (unsigned char**)&threadList))) + if (!NSK_JVMTI_VERIFY( + jvmti->Allocate(threads_count*sizeof(threadDesc), (unsigned char**)&threadList))) return NSK_FALSE; for (i = 0; i < threads_count; i++) { @@ -129,8 +122,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -141,8 +133,7 @@ } /* deallocate thread list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; for (i = 0; i < threads_count; i++) { @@ -150,28 +141,24 @@ tDfn = gDfn; threadList[i].dfn = gDfn++; for (pThread = i;;pThread = cThread) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetCurrentContendedMonitor, - jvmti, threadList[pThread].thread, &monitor))) + if (!NSK_JVMTI_VERIFY( + jvmti->GetCurrentContendedMonitor(threadList[pThread].thread, &monitor))) return NSK_FALSE; if (monitor == NULL) break; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetObjectMonitorUsage, - jvmti, monitor, &usageInfo))) + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectMonitorUsage(monitor, &usageInfo))) return NSK_FALSE; if (usageInfo.owner == NULL) break; for (cThread = 0; cThread < threads_count; cThread++) { - if (NSK_CPP_STUB3(IsSameObject, jni, - threadList[cThread].thread, usageInfo.owner)) + if (jni->IsSameObject(threadList[cThread].thread, usageInfo.owner)) break; } if (usageInfo.waiters != NULL) { - NSK_CPP_STUB2(Deallocate, jvmti, - (unsigned char*)usageInfo.waiters); + jvmti->Deallocate((unsigned char*)usageInfo.waiters); } if (usageInfo.notify_waiters != NULL) { - NSK_CPP_STUB2(Deallocate, jvmti, - (unsigned char*)usageInfo.notify_waiters); + jvmti->Deallocate((unsigned char*)usageInfo.notify_waiters); } if (!NSK_VERIFY(cThread != threads_count)) return NSK_FALSE; @@ -194,8 +181,7 @@ /* deallocate thread names */ for (i = 0; i < threads_count; i++) { if (threadList[i].name != NULL) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - Deallocate, jvmti, (unsigned char*)threadList[i].name))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threadList[i].name))) return NSK_FALSE; } } @@ -261,7 +247,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_get_current_contended_monitor = 1; caps.can_get_monitor_info = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* register agent proc and arg */ diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t002/tc03t002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t002/tc03t002.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC03/tc03t002/tc03t002.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -57,38 +57,32 @@ NSK_DISPLAY1("Found deadlock #%d:\n", numberOfDeadlocks); for (pThread = dThread;;pThread = cThread) { NSK_DISPLAY1(" \"%s\":\n", threadList[pThread].name); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetCurrentContendedMonitor, - jvmti, threadList[pThread].thread, &monitor))) + if (!NSK_JVMTI_VERIFY( + jvmti->GetCurrentContendedMonitor(threadList[pThread].thread, &monitor))) return NSK_FALSE; if (monitor != NULL) { - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, monitor)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(monitor)) != NULL)) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB4( - GetClassSignature, jvmti, klass, &name, NULL))) + if (!NSK_JVMTI_VERIFY(jvmti->GetClassSignature(klass, &name, NULL))) return NSK_FALSE; NSK_DISPLAY2(" waiting to lock %p (%s),\n", monitor, name); - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)name); + jvmti->Deallocate((unsigned char*)name); } else { NSK_DISPLAY0(" (JVMTI raw monitor),\n"); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetObjectMonitorUsage, - jvmti, monitor, &usageInfo))) + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectMonitorUsage(monitor, &usageInfo))) return NSK_FALSE; if (usageInfo.owner == NULL) break; for (cThread = 0; cThread < threads_count; cThread++) { - if (NSK_CPP_STUB3(IsSameObject, jni, - threadList[cThread].thread, usageInfo.owner)) + if (jni->IsSameObject(threadList[cThread].thread, usageInfo.owner)) break; } if (usageInfo.waiters != NULL) { - NSK_CPP_STUB2(Deallocate, jvmti, - (unsigned char*)usageInfo.waiters); + jvmti->Deallocate((unsigned char*)usageInfo.waiters); } if (usageInfo.notify_waiters != NULL) { - NSK_CPP_STUB2(Deallocate, jvmti, - (unsigned char*)usageInfo.notify_waiters); + jvmti->Deallocate((unsigned char*)usageInfo.notify_waiters); } if (!NSK_VERIFY(cThread != threads_count)) return NSK_FALSE; @@ -113,15 +107,14 @@ NSK_DISPLAY0("Create threadList\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(Allocate, jvmti, - threads_count*sizeof(threadDesc), (unsigned char**)&threadList))) + if (!NSK_JVMTI_VERIFY( + jvmti->Allocate(threads_count*sizeof(threadDesc), (unsigned char**)&threadList))) return NSK_FALSE; for (i = 0; i < threads_count; i++) { @@ -129,8 +122,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -141,8 +133,7 @@ } /* deallocate thread list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; for (i = 0; i < threads_count; i++) { @@ -150,28 +141,24 @@ tDfn = gDfn; threadList[i].dfn = gDfn++; for (pThread = i;;pThread = cThread) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetCurrentContendedMonitor, - jvmti, threadList[pThread].thread, &monitor))) + if (!NSK_JVMTI_VERIFY( + jvmti->GetCurrentContendedMonitor(threadList[pThread].thread, &monitor))) return NSK_FALSE; if (monitor == NULL) break; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetObjectMonitorUsage, - jvmti, monitor, &usageInfo))) + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectMonitorUsage(monitor, &usageInfo))) return NSK_FALSE; if (usageInfo.owner == NULL) break; for (cThread = 0; cThread < threads_count; cThread++) { - if (NSK_CPP_STUB3(IsSameObject, jni, - threadList[cThread].thread, usageInfo.owner)) + if (jni->IsSameObject(threadList[cThread].thread, usageInfo.owner)) break; } if (usageInfo.waiters != NULL) { - NSK_CPP_STUB2(Deallocate, jvmti, - (unsigned char*)usageInfo.waiters); + jvmti->Deallocate((unsigned char*)usageInfo.waiters); } if (usageInfo.notify_waiters != NULL) { - NSK_CPP_STUB2(Deallocate, jvmti, - (unsigned char*)usageInfo.notify_waiters); + jvmti->Deallocate((unsigned char*)usageInfo.notify_waiters); } if (!NSK_VERIFY(cThread != threads_count)) return NSK_FALSE; @@ -194,8 +181,7 @@ /* deallocate thread names */ for (i = 0; i < threads_count; i++) { if (threadList[i].name != NULL) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - Deallocate, jvmti, (unsigned char*)threadList[i].name))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threadList[i].name))) return NSK_FALSE; } } @@ -261,7 +247,7 @@ memset(&caps, 0, sizeof(caps)); caps.can_get_current_contended_monitor = 1; caps.can_get_monitor_info = 1; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(AddCapabilities, jvmti, &caps))) + if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps))) return JNI_ERR; /* register agent proc and arg */ diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC04/tc04t001/tc04t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC04/tc04t001/tc04t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC04/tc04t001/tc04t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -44,14 +44,14 @@ static jboolean lockSyncLock(jvmtiEnv* jvmti) { - jboolean status = NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, jvmti, syncLock)); + jboolean status = NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(syncLock)); if (!status) nsk_jvmti_setFailStatus(); return status; } static void unlockSyncLock(jvmtiEnv* jvmti) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(syncLock))) nsk_jvmti_setFailStatus(); } @@ -73,7 +73,7 @@ } /* check if event is for tested object */ - if (NSK_CPP_STUB3(IsInstanceOf, jni, obj, object_M)) { + if (jni->IsInstanceOf(obj, object_M)) { if (lockSyncLock(jvmti)) { waitEventsCount++; unlockSyncLock(jvmti); @@ -96,7 +96,7 @@ } /* check if event is for tested object */ - if (NSK_CPP_STUB3(IsInstanceOf, jni, obj, object_M)) { + if (jni->IsInstanceOf(obj, object_M)) { if (lockSyncLock(jvmti)) { waitedEventsCount++; unlockSyncLock(jvmti); @@ -118,7 +118,7 @@ } /* check if event is for tested object */ - if (NSK_CPP_STUB3(IsSameObject, jni, object_M, obj)) { + if (jni->IsSameObject(object_M, obj)) { jvmtiMonitorUsage usageInfo; if (lockSyncLock(jvmti)) { @@ -126,12 +126,10 @@ unlockSyncLock(jvmti); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(GetObjectMonitorUsage, - jvmti, obj, &usageInfo))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetObjectMonitorUsage(obj, &usageInfo))) { nsk_jvmti_setFailStatus(); } else if (usageInfo.owner != NULL) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - InterruptThread, jvmti, usageInfo.owner))) + if (!NSK_JVMTI_VERIFY(jvmti->InterruptThread(usageInfo.owner))) nsk_jvmti_setFailStatus(); } } @@ -151,7 +149,7 @@ } /* check if event is for tested object */ - if (NSK_CPP_STUB3(IsSameObject, jni, object_M, obj)) { + if (jni->IsSameObject(object_M, obj)) { if (lockSyncLock(jvmti)) { enteredEventsCount++; unlockSyncLock(jvmti); @@ -166,40 +164,35 @@ NSK_DISPLAY0("Obtain tested object from debugee thread class\n"); - if (!NSK_JNI_VERIFY(jni, (object_M = - NSK_CPP_STUB2(FindClass, jni, CLASS_NAME)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (object_M = jni->FindClass(CLASS_NAME)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (object_M = (jclass) - NSK_CPP_STUB2(NewGlobalRef, jni, object_M)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (object_M = (jclass)jni->NewGlobalRef(object_M)) != NULL)) return NSK_FALSE; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(CreateRawMonitor, jvmti, "_syncLock", &syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("_syncLock", &syncLock))) return NSK_FALSE; /* enable MonitorWait event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_MONITOR_WAIT, NULL))) + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_MONITOR_WAIT, NULL))) nsk_jvmti_setFailStatus(); /* enable MonitorWaited event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_MONITOR_WAITED, NULL))) + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_MONITOR_WAITED, NULL))) nsk_jvmti_setFailStatus(); /* enable MonitorContendedEnter event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_MONITOR_CONTENDED_ENTER, NULL))) + jvmti->SetEventNotificationMode( + JVMTI_ENABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTER, NULL))) nsk_jvmti_setFailStatus(); /* enable MonitorContendedEntered event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, NULL))) + jvmti->SetEventNotificationMode( + JVMTI_ENABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, NULL))) nsk_jvmti_setFailStatus(); return NSK_TRUE; @@ -209,30 +202,27 @@ /* disable MonitorWait event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_DISABLE, - JVMTI_EVENT_MONITOR_WAIT, NULL))) + jvmti->SetEventNotificationMode(JVMTI_DISABLE, JVMTI_EVENT_MONITOR_WAIT, NULL))) nsk_jvmti_setFailStatus(); /* disable MonitorWaited event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_DISABLE, - JVMTI_EVENT_MONITOR_WAITED, NULL))) + jvmti->SetEventNotificationMode(JVMTI_DISABLE, JVMTI_EVENT_MONITOR_WAITED, NULL))) nsk_jvmti_setFailStatus(); /* disable MonitorContendedEnter event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_DISABLE, - JVMTI_EVENT_MONITOR_CONTENDED_ENTER, NULL))) + jvmti->SetEventNotificationMode( + JVMTI_DISABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTER, NULL))) nsk_jvmti_setFailStatus(); /* disable MonitorContendedEntered event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_DISABLE, - JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, NULL))) + jvmti->SetEventNotificationMode( + JVMTI_DISABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, NULL))) nsk_jvmti_setFailStatus(); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(DestroyRawMonitor, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->DestroyRawMonitor(syncLock))) nsk_jvmti_setFailStatus(); return NSK_TRUE; @@ -336,7 +326,7 @@ caps.can_generate_monitor_events = 1; caps.can_get_monitor_info = 1; 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; memset(&callbacks, 0, sizeof(callbacks)); @@ -344,8 +334,7 @@ callbacks.MonitorWaited = &MonitorWaited; callbacks.MonitorContendedEnter = &MonitorContendedEnter; callbacks.MonitorContendedEntered = &MonitorContendedEntered; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &callbacks, sizeof(callbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; /* register agent proc and arg */ diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC05/tc05t001/tc05t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC05/tc05t001/tc05t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/contention/TC05/tc05t001/tc05t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -72,14 +72,12 @@ } /* check if event is for tested thread and object */ - if (NSK_CPP_STUB3(IsSameObject, jni, thread, thr) && - NSK_CPP_STUB3(IsSameObject, jni, object_M, obj)) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3( - GetThreadCpuTime, jvmti, thr, &waitThreadCpuTime))) { + if (jni->IsSameObject(thread, thr) && + jni->IsSameObject(object_M, obj)) { + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadCpuTime(thr, &waitThreadCpuTime))) { nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetTime, jvmti, &waitTime))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetTime(&waitTime))) { nsk_jvmti_setFailStatus(); } waitEventsCount++; @@ -113,14 +111,12 @@ } /* check if event is for tested thread and object */ - if (NSK_CPP_STUB3(IsSameObject, jni, thread, thr) && - NSK_CPP_STUB3(IsSameObject, jni, object_M, obj)) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3( - GetThreadCpuTime, jvmti, thr, &waitedThreadCpuTime))) { + if (jni->IsSameObject(thread, thr) && + jni->IsSameObject(object_M, obj)) { + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadCpuTime(thr, &waitedThreadCpuTime))) { nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(GetTime, jvmti, &waitedTime))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetTime(&waitedTime))) { nsk_jvmti_setFailStatus(); } waitedEventsCount++; @@ -149,8 +145,7 @@ NSK_DISPLAY0("Prepare: find tested thread\n"); /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NSK_FALSE; if (!NSK_VERIFY(threads_count > 0 && threads != NULL)) @@ -162,8 +157,7 @@ return NSK_FALSE; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) return NSK_FALSE; NSK_DISPLAY3(" thread #%d (%s): %p\n", i, info.name, threads[i]); @@ -174,15 +168,13 @@ } if (info.name != NULL) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2( - Deallocate, jvmti, (unsigned char*)info.name))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)info.name))) return NSK_FALSE; } } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NSK_FALSE; if (thread == NULL) { @@ -191,39 +183,32 @@ } /* make thread accessable for a long time */ - if (!NSK_JNI_VERIFY(jni, (thread = - NSK_CPP_STUB2(NewGlobalRef, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (thread = jni->NewGlobalRef(thread)) != NULL)) return NSK_FALSE; /* get tested thread class */ - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(GetObjectClass, jni, thread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->GetObjectClass(thread)) != NULL)) return NSK_FALSE; /* get tested thread field 'M' */ - if (!NSK_JNI_VERIFY(jni, (field = - NSK_CPP_STUB4(GetFieldID, jni, klass, "M", FIELD_SIG)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (field = jni->GetFieldID(klass, "M", FIELD_SIG)) != NULL)) return NSK_FALSE; - if (!NSK_JNI_VERIFY(jni, (object_M = - NSK_CPP_STUB3(GetObjectField, jni, thread, field)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (object_M = jni->GetObjectField(thread, field)) != NULL)) return NSK_FALSE; /* make object accessable for a long time */ - if (!NSK_JNI_VERIFY(jni, (object_M = - NSK_CPP_STUB2(NewGlobalRef, jni, object_M)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (object_M = jni->NewGlobalRef(object_M)) != NULL)) return NSK_FALSE; /* enable MonitorWait event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_MONITOR_WAIT, NULL))) + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_MONITOR_WAIT, NULL))) return NSK_FALSE; /* enable MonitorWaited event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_ENABLE, - JVMTI_EVENT_MONITOR_WAITED, NULL))) + jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_MONITOR_WAITED, NULL))) return NSK_FALSE; return NSK_TRUE; @@ -233,14 +218,12 @@ /* disable MonitorWait event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_DISABLE, - JVMTI_EVENT_MONITOR_WAIT, NULL))) + jvmti->SetEventNotificationMode(JVMTI_DISABLE, JVMTI_EVENT_MONITOR_WAIT, NULL))) nsk_jvmti_setFailStatus(); /* disable MonitorWaited event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_DISABLE, - JVMTI_EVENT_MONITOR_WAITED, NULL))) + jvmti->SetEventNotificationMode(JVMTI_DISABLE, JVMTI_EVENT_MONITOR_WAITED, NULL))) nsk_jvmti_setFailStatus(); return NSK_TRUE; @@ -343,14 +326,13 @@ memset(&caps, 0, sizeof(caps)); caps.can_generate_monitor_events = 1; 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; memset(&callbacks, 0, sizeof(callbacks)); callbacks.MonitorWait = &MonitorWait; callbacks.MonitorWaited = &MonitorWaited; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &callbacks, sizeof(callbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) return JNI_ERR; /* register agent proc and arg */ diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t001/em01t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t001/em01t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t001/em01t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -54,12 +54,12 @@ static void changeCount(jvmtiEvent event) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(syncLock))) nsk_jvmti_setFailStatus(); eventCount[event - JVMTI_MIN_EVENT_TYPE_VAL]++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(syncLock))) nsk_jvmti_setFailStatus(); } @@ -92,9 +92,7 @@ char *generic; jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(GetClassSignature, jvmti_env, klass, - &className, &generic))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetClassSignature(klass, &className, &generic))) { nsk_jvmti_setFailStatus(); return; } @@ -107,7 +105,7 @@ className); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); } @@ -125,13 +123,11 @@ nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)className))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)className))) { nsk_jvmti_setFailStatus(); } if (generic != NULL) - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)generic))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)generic))) { nsk_jvmti_setFailStatus(); } } @@ -145,15 +141,12 @@ jvmtiPhase phase; - if (!NSK_JNI_VERIFY(jni_env, (classObject = - NSK_CPP_STUB2(GetObjectClass, jni_env, thread)) != NULL)) { + if (!NSK_JNI_VERIFY(jni_env, (classObject = jni_env->GetObjectClass(thread)) != NULL)) { nsk_jvmti_setFailStatus(); return; } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(GetClassSignature, jvmti_env, classObject, - &className, &generic))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetClassSignature(classObject, &className, &generic))) { nsk_jvmti_setFailStatus(); return; } @@ -166,7 +159,7 @@ className); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); } @@ -184,13 +177,11 @@ nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)className))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)className))) { nsk_jvmti_setFailStatus(); } if (generic != NULL) - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)generic))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)generic))) { nsk_jvmti_setFailStatus(); } } @@ -200,7 +191,7 @@ jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); } @@ -221,7 +212,7 @@ jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); } @@ -242,7 +233,7 @@ jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); } @@ -257,8 +248,7 @@ currentPhase = JVMTI_PHASE_DEAD; changeCount(JVMTI_EVENT_VM_DEATH); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(DestroyRawMonitor, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->DestroyRawMonitor(syncLock))) nsk_jvmti_setFailStatus(); } @@ -294,9 +284,7 @@ static int enableEvent(jvmtiEventMode enable, jvmtiEvent event) { NSK_DISPLAY1("enabling %s\n", TranslateEvent(event)); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, enable, - event, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(enable, event, NULL))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -369,10 +357,7 @@ eventCallbacks.ThreadStart = cbThreadStart; eventCallbacks.ThreadEnd = cbThreadEnd; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, - sizeof(eventCallbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) return NSK_FALSE; return NSK_TRUE; @@ -446,8 +431,7 @@ if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(jvm, reserved)) != NULL)) return JNI_ERR; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(CreateRawMonitor, jvmti, "_syncLock", &syncLock))) { + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("_syncLock", &syncLock))) { nsk_jvmti_setFailStatus(); return JNI_ERR; } diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t002/em01t002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t002/em01t002.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM01/em01t002/em01t002.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -65,22 +65,20 @@ jmethodID methodID; jclass loadedClass; - if (!NSK_JNI_VERIFY(jni_env, (klass = - NSK_CPP_STUB2(GetObjectClass, jni_env, loader)) != NULL)) { + if (!NSK_JNI_VERIFY(jni_env, (klass = jni_env->GetObjectClass(loader)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } - if (!NSK_JNI_VERIFY(jni_env, (methodID = - NSK_CPP_STUB4(GetMethodID, jni_env, klass, "loadClass", - "(Ljava/lang/String;)Ljava/lang/Class;")) != NULL)) { + if (!NSK_JNI_VERIFY(jni_env, + (methodID = jni_env->GetMethodID( + klass, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;")) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } if (!NSK_JNI_VERIFY(jni_env, (loadedClass = (jclass) - NSK_CPP_STUB4(CallObjectMethod, jni_env, loader, methodID, - className)) != NULL)) { + jni_env->CallObjectMethod(loader, methodID, className)) != NULL)) { nsk_jvmti_setFailStatus(); return NULL; } @@ -99,8 +97,7 @@ jfieldID fieldID; if (!NSK_JNI_VERIFY(jni_env, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni_env, klass, - "toProvokePreparation", "I")) != NULL)) { + jni_env->GetStaticFieldID(klass, "toProvokePreparation", "I")) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -119,20 +116,18 @@ jclass klass; jmethodID methodID; - if (!NSK_JNI_VERIFY(jni_env, (klass = - NSK_CPP_STUB2(GetObjectClass, jni_env, thread)) != NULL)) { + if (!NSK_JNI_VERIFY(jni_env, (klass = jni_env->GetObjectClass(thread)) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } if (!NSK_JNI_VERIFY(jni_env, (methodID = - NSK_CPP_STUB4(GetMethodID, jni_env, klass, "start", "()V")) != NULL)) { + jni_env->GetMethodID(klass, "start", "()V")) != NULL)) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } - if (!NSK_JNI_VERIFY_VOID(jni_env, - NSK_CPP_STUB3(CallVoidMethod, jni_env, thread, methodID)) ) { + if (!NSK_JNI_VERIFY_VOID(jni_env,jni_env->CallVoidMethod(thread, methodID)) ) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -146,12 +141,12 @@ static void changeCount(jvmtiEvent event) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(syncLock))) nsk_jvmti_setFailStatus(); eventCount[event - JVMTI_MIN_EVENT_TYPE_VAL]++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(syncLock))) nsk_jvmti_setFailStatus(); } @@ -184,9 +179,7 @@ char *generic; jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(GetClassSignature, jvmti_env, klass, - &className, &generic))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetClassSignature(klass, &className, &generic))) { nsk_jvmti_setFailStatus(); return; } @@ -199,7 +192,7 @@ className); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); } @@ -217,13 +210,11 @@ nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)className))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)className))) { nsk_jvmti_setFailStatus(); } if (generic != NULL) - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)generic))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)generic))) { nsk_jvmti_setFailStatus(); } } @@ -237,15 +228,12 @@ jvmtiPhase phase; - if (!NSK_JNI_VERIFY(jni_env, (classObject = - NSK_CPP_STUB2(GetObjectClass, jni_env, thread)) != NULL)) { + if (!NSK_JNI_VERIFY(jni_env, (classObject = jni_env->GetObjectClass(thread)) != NULL)) { nsk_jvmti_setFailStatus(); return; } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(GetClassSignature, jvmti_env, classObject, - &className, &generic))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetClassSignature(classObject, &className, &generic))) { nsk_jvmti_setFailStatus(); return; } @@ -258,7 +246,7 @@ className); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); } @@ -276,13 +264,11 @@ nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)className))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)className))) { nsk_jvmti_setFailStatus(); } if (generic != NULL) - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)generic))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)generic))) { nsk_jvmti_setFailStatus(); } } @@ -292,7 +278,7 @@ jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); } @@ -313,7 +299,7 @@ jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); } @@ -334,7 +320,7 @@ jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); } @@ -349,8 +335,7 @@ currentPhase = JVMTI_PHASE_DEAD; changeCount(JVMTI_EVENT_VM_DEATH); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(DestroyRawMonitor, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->DestroyRawMonitor(syncLock))) nsk_jvmti_setFailStatus(); } @@ -393,9 +378,7 @@ } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, enable, - event, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(enable, event, NULL))) { nsk_jvmti_setFailStatus(); return NSK_FALSE; } @@ -468,10 +451,7 @@ eventCallbacks.ThreadStart = cbThreadStart; eventCallbacks.ThreadEnd = cbThreadEnd; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, - sizeof(eventCallbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) return NSK_FALSE; return NSK_TRUE; @@ -544,8 +524,7 @@ if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(jvm, reserved)) != NULL)) return JNI_ERR; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(CreateRawMonitor, jvmti, "_syncLock", &syncLock))) { + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("_syncLock", &syncLock))) { nsk_jvmti_setFailStatus(); return JNI_ERR; } diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t001/em02t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t001/em02t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t001/em02t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -68,8 +68,7 @@ int i; /* get all live threads */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetAllThreads, jvmti, &threads_count, &threads))) + if (!NSK_JVMTI_VERIFY(jvmti->GetAllThreads(&threads_count, &threads))) return NULL; if (!NSK_VERIFY(threads != NULL)) @@ -81,8 +80,7 @@ break; /* get thread information */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, threads[i], &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(threads[i], &info))) break; /* find by name */ @@ -92,8 +90,7 @@ } /* deallocate threads list */ - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(Deallocate, jvmti, (unsigned char*)threads))) + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)threads))) return NULL; return returnValue; @@ -108,16 +105,14 @@ jfieldID fieldID; jclass klass = NULL; - if (!NSK_JNI_VERIFY(jni, (klass = - NSK_CPP_STUB2(FindClass, jni, className)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (klass = jni->FindClass(className)) != NULL)) return NULL; if (!NSK_JNI_VERIFY(jni, (fieldID = - NSK_CPP_STUB4(GetStaticFieldID, jni, klass, objFieldName, - signature)) != NULL)) + jni->GetStaticFieldID(klass, objFieldName, signature)) != NULL)) return NULL; - return NSK_CPP_STUB3(GetStaticObjectField, jni, klass, fieldID); + return jni->GetStaticObjectField(klass, fieldID); } /* ============================================================================= */ @@ -130,8 +125,7 @@ } /* make thread accessable for a long time */ - if (!NSK_JNI_VERIFY(jni, (mainThread = - NSK_CPP_STUB2(NewGlobalRef, jni, mainThread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (mainThread = jni->NewGlobalRef(mainThread)) != NULL)) return NSK_FALSE; if (!NSK_VERIFY((startObject = @@ -140,8 +134,7 @@ return NSK_FALSE; /*make object accessable for a long time*/ - if (!NSK_JNI_VERIFY(jni, (startObject = - NSK_CPP_STUB2(NewGlobalRef, jni, startObject)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (startObject = jni->NewGlobalRef(startObject)) != NULL)) return NSK_FALSE; @@ -151,8 +144,7 @@ return NSK_FALSE; /*make object accessable for a long time*/ - if (!NSK_JNI_VERIFY(jni, (endObject = - NSK_CPP_STUB2(NewGlobalRef, jni, endObject)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (endObject = jni->NewGlobalRef(endObject)) != NULL)) return NSK_FALSE; @@ -162,8 +154,7 @@ return NSK_FALSE; /* make thread accessable for a long time */ - if (!NSK_JNI_VERIFY(jni, (debuggeeThread = - NSK_CPP_STUB2(NewGlobalRef, jni, debuggeeThread)) != NULL)) + if (!NSK_JNI_VERIFY(jni, (debuggeeThread = jni->NewGlobalRef(debuggeeThread)) != NULL)) return NSK_FALSE; return NSK_TRUE; @@ -176,15 +167,15 @@ /* disable MonitorContendedEnter event */ if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, JVMTI_DISABLE, - JVMTI_EVENT_MONITOR_CONTENDED_ENTER, NULL))) + jvmti->SetEventNotificationMode( + JVMTI_DISABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTER, NULL))) nsk_jvmti_setFailStatus(); /* dispose global references */ - NSK_CPP_STUB2(DeleteGlobalRef, jni, startObject); - NSK_CPP_STUB2(DeleteGlobalRef, jni, endObject); - NSK_CPP_STUB2(DeleteGlobalRef, jni, debuggeeThread); - NSK_CPP_STUB2(DeleteGlobalRef, jni, mainThread); + jni->DeleteGlobalRef(startObject); + jni->DeleteGlobalRef(endObject); + jni->DeleteGlobalRef(debuggeeThread); + jni->DeleteGlobalRef(mainThread); startObject = NULL; endObject = NULL; @@ -219,8 +210,7 @@ static void showThreadInfo(jthread thread) { jvmtiThreadInfo info; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(GetThreadInfo, jvmti, thread, &info))) + if (!NSK_JVMTI_VERIFY(jvmti->GetThreadInfo(thread, &info))) return; NSK_DISPLAY2("\tthread (%s): %p\n", info.name, thread); @@ -231,12 +221,12 @@ static void changeCount(jvmtiEvent event, int *currentCounts) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(syncLock))) nsk_jvmti_setFailStatus(); currentCounts[event - JVMTI_MIN_EVENT_TYPE_VAL]++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(syncLock))) nsk_jvmti_setFailStatus(); } @@ -327,8 +317,7 @@ nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(DestroyRawMonitor, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->DestroyRawMonitor(syncLock))) nsk_jvmti_setFailStatus(); } @@ -420,13 +409,13 @@ return; /* check if event is for tested thread and for tested object */ - if (NSK_CPP_STUB3(IsSameObject, jni_env, expectedThread, thread) && - NSK_CPP_STUB3(IsSameObject, jni_env, expectedObject, object)) { + if (jni_env->IsSameObject(expectedThread, thread) && + jni_env->IsSameObject(expectedObject, object)) { NSK_DISPLAY1("--->%-40s is received\n", TranslateEvent(event)); showThreadInfo(thread); - if (NSK_CPP_STUB3(IsSameObject, jni_env, expectedObject, endObject)) + if (jni_env->IsSameObject(expectedObject, endObject)) NSK_DISPLAY0("\tobject: 'endingMonitor'\n"); else NSK_DISPLAY0("\tobject: 'startingMonitor'\n"); @@ -506,13 +495,13 @@ return; /* check if event is for tested thread and for tested object */ - if (NSK_CPP_STUB3(IsSameObject, jni_env, expectedThread, thread) && - NSK_CPP_STUB3(IsSameObject, jni_env, expectedObject, object)) { + if (jni_env->IsSameObject(expectedThread, thread) && + jni_env->IsSameObject(expectedObject, object)) { NSK_DISPLAY1("--->%-40s is received (new callbacks)\n", TranslateEvent(event)); showThreadInfo(thread); - if (NSK_CPP_STUB3(IsSameObject, jni_env, expectedObject, endObject)) + if (jni_env->IsSameObject(expectedObject, endObject)) NSK_DISPLAY0("\tobject: 'endingMonitor'\n"); else NSK_DISPLAY0("\tobject: 'startingMonitor'\n"); @@ -572,16 +561,13 @@ && (event != JVMTI_EVENT_MONITOR_WAIT) && (event != JVMTI_EVENT_MONITOR_WAITED)) { if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, - JVMTI_ENABLE, event, NULL))) { + jvmti->SetEventNotificationMode(JVMTI_ENABLE, event, NULL))) { NSK_COMPLAIN1("Unexpected error enabling %s\n", TranslateEvent(event)); return NSK_FALSE; } } else { - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, - JVMTI_ENABLE, event, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, event, NULL))) { NSK_COMPLAIN1("Unexpected error enabling %s\n", TranslateEvent(event)); return NSK_FALSE; @@ -679,10 +665,7 @@ break; } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, - sizeof(eventCallbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) return NSK_FALSE; return NSK_TRUE; @@ -771,8 +754,7 @@ if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(jvm, reserved)) != NULL)) return JNI_ERR; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(CreateRawMonitor, jvmti, "_syncLock", &syncLock))) { + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("_syncLock", &syncLock))) { nsk_jvmti_setFailStatus(); return JNI_ERR; } @@ -782,7 +764,7 @@ 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; } diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t002/em02t002.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t002/em02t002.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t002/em02t002.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -150,12 +150,12 @@ static void changeCount(jvmtiEvent event, int *currentCounts) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(syncLock))) nsk_jvmti_setFailStatus(); currentCounts[event - JVMTI_MIN_EVENT_TYPE_VAL]++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(syncLock))) nsk_jvmti_setFailStatus(); } @@ -177,8 +177,7 @@ if (!checkEvents(STEP_AMOUNT)) nsk_jvmti_setFailStatus(); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(DestroyRawMonitor, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->DestroyRawMonitor(syncLock))) nsk_jvmti_setFailStatus(); } @@ -345,16 +344,13 @@ && (event != JVMTI_EVENT_GARBAGE_COLLECTION_START) && (event != JVMTI_EVENT_GARBAGE_COLLECTION_FINISH)) { if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, - JVMTI_ENABLE, event, NULL))) { + jvmti->SetEventNotificationMode(JVMTI_ENABLE, event, NULL))) { NSK_COMPLAIN1("Unexpected error enabling %s\n", TranslateEvent(event)); return NSK_FALSE; } } else { - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, - JVMTI_ENABLE, event, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, event, NULL))) { NSK_COMPLAIN1("Unexpected error enabling %s\n", TranslateEvent(event)); return NSK_FALSE; @@ -450,10 +446,7 @@ break; } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, - sizeof(eventCallbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) return NSK_FALSE; return NSK_TRUE; @@ -519,8 +512,7 @@ if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(jvm, reserved)) != NULL)) return JNI_ERR; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(CreateRawMonitor, jvmti, "_syncLock", &syncLock))) { + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("_syncLock", &syncLock))) { nsk_jvmti_setFailStatus(); return JNI_ERR; } @@ -530,7 +522,7 @@ 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; } diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t003/em02t003.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t003/em02t003.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t003/em02t003.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -134,12 +134,12 @@ static void changeCount(jvmtiEvent event, int *currentCounts) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(syncLock))) nsk_jvmti_setFailStatus(); currentCounts[event - JVMTI_MIN_EVENT_TYPE_VAL]++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(syncLock))) nsk_jvmti_setFailStatus(); } @@ -159,8 +159,7 @@ if (!checkEvents(STEP_AMOUNT)) nsk_jvmti_setFailStatus(); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(DestroyRawMonitor, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->DestroyRawMonitor(syncLock))) nsk_jvmti_setFailStatus(); } @@ -265,9 +264,7 @@ char *sign; char *genc; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5( - GetMethodName, jvmti, method, &name, &sign, &genc))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetMethodName(method, &name, &sign, &genc))) { nsk_jvmti_setFailStatus(); return; } @@ -277,17 +274,14 @@ changeCount(event, &eventCount[0]); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti, (unsigned char*)name))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)name))) { nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti, (unsigned char*)sign))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)sign))) { nsk_jvmti_setFailStatus(); } if (genc != NULL) - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti, (unsigned char*)genc))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)genc))) { nsk_jvmti_setFailStatus(); } } @@ -338,9 +332,7 @@ char *sign; char *genc; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5( - GetMethodName, jvmti, method, &name, &sign, &genc))) { + if (!NSK_JVMTI_VERIFY(jvmti->GetMethodName(method, &name, &sign, &genc))) { nsk_jvmti_setFailStatus(); return; } @@ -348,17 +340,14 @@ NSK_DISPLAY2("\tMethod: %s, signature: %s\n", name, sign); changeCount(event, &newEventCount[0]); - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti, (unsigned char*)name))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)name))) { nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti, (unsigned char*)sign))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)sign))) { nsk_jvmti_setFailStatus(); } if (genc != NULL) - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti, (unsigned char*)genc))) { + if (!NSK_JVMTI_VERIFY(jvmti->Deallocate((unsigned char*)genc))) { nsk_jvmti_setFailStatus(); } } @@ -389,16 +378,13 @@ && (event != JVMTI_EVENT_COMPILED_METHOD_LOAD) && (event != JVMTI_EVENT_COMPILED_METHOD_UNLOAD)) { if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, - JVMTI_ENABLE, event, NULL))) { + jvmti->SetEventNotificationMode(JVMTI_ENABLE, event, NULL))) { NSK_COMPLAIN1("Unexpected error enabling %s\n", TranslateEvent(event)); return NSK_FALSE; } } else { - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, - JVMTI_ENABLE, event, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, event, NULL))) { NSK_COMPLAIN1("Unexpected error enabling %s\n", TranslateEvent(event)); return NSK_FALSE; @@ -498,10 +484,7 @@ break; } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, - sizeof(eventCallbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) return NSK_FALSE; return NSK_TRUE; @@ -568,8 +551,7 @@ if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(jvm, reserved)) != NULL)) return JNI_ERR; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(CreateRawMonitor, jvmti, "_syncLock", &syncLock))) { + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("_syncLock", &syncLock))) { nsk_jvmti_setFailStatus(); return JNI_ERR; } @@ -579,7 +561,7 @@ 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; } diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t004/em02t004.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t004/em02t004.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t004/em02t004.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -146,12 +146,12 @@ static void changeCount(jvmtiEvent event, int *currentCounts) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(syncLock))) nsk_jvmti_setFailStatus(); currentCounts[event - JVMTI_MIN_EVENT_TYPE_VAL]++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(syncLock))) nsk_jvmti_setFailStatus(); } @@ -171,8 +171,7 @@ if (!checkEvents(STEP_AMOUNT)) nsk_jvmti_setFailStatus(); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(DestroyRawMonitor, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->DestroyRawMonitor(syncLock))) nsk_jvmti_setFailStatus(); } @@ -310,7 +309,7 @@ char *genc; jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); } @@ -318,9 +317,7 @@ return; } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5( - GetMethodName, jvmti_env, method, &name, &sign, &genc))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetMethodName(method, &name, &sign, &genc))) { return; } @@ -331,17 +328,14 @@ changeCount(JVMTI_EVENT_NATIVE_METHOD_BIND, &eventCount[0]); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)name))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)name))) { nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)sign))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)sign))) { nsk_jvmti_setFailStatus(); } if (genc != NULL) - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)genc))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)genc))) { nsk_jvmti_setFailStatus(); } } @@ -355,7 +349,7 @@ jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); } @@ -363,9 +357,7 @@ return; } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB5( - GetMethodName, jvmti_env, method, &name, &sign, &genc))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetMethodName(method, &name, &sign, &genc))) { return; } @@ -376,17 +368,14 @@ changeCount(JVMTI_EVENT_NATIVE_METHOD_BIND, &newEventCount[0]); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)name))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)name))) { nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)sign))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)sign))) { nsk_jvmti_setFailStatus(); } if (genc != NULL) - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)genc))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)genc))) { nsk_jvmti_setFailStatus(); } } @@ -398,16 +387,13 @@ if (nsk_jvmti_isOptionalEvent(event) && (event != JVMTI_EVENT_NATIVE_METHOD_BIND)) { if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, - JVMTI_ENABLE, event, NULL))) { + jvmti->SetEventNotificationMode(JVMTI_ENABLE, event, NULL))) { NSK_COMPLAIN1("Unexpected error enabling %s\n", TranslateEvent(event)); return NSK_FALSE; } } else { - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, - JVMTI_ENABLE, event, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, event, NULL))) { NSK_COMPLAIN1("Unexpected error enabling %s\n", TranslateEvent(event)); return NSK_FALSE; @@ -505,10 +491,7 @@ break; } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, - sizeof(eventCallbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) return NSK_FALSE; return NSK_TRUE; @@ -574,8 +557,7 @@ if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(jvm, reserved)) != NULL)) return JNI_ERR; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(CreateRawMonitor, jvmti, "_syncLock", &syncLock))) { + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("_syncLock", &syncLock))) { nsk_jvmti_setFailStatus(); return JNI_ERR; } @@ -585,7 +567,7 @@ memset(&caps, 0, sizeof(caps)); 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; } diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t005/em02t005.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t005/em02t005.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM02/em02t005/em02t005.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -133,12 +133,12 @@ static void changeCount(jvmtiEvent event, int *currentCounts) { - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorEnter, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorEnter(syncLock))) nsk_jvmti_setFailStatus(); currentCounts[event - JVMTI_MIN_EVENT_TYPE_VAL]++; - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(RawMonitorExit, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->RawMonitorExit(syncLock))) nsk_jvmti_setFailStatus(); } @@ -158,8 +158,7 @@ if (!checkEvents(STEP_NUMBER)) nsk_jvmti_setFailStatus(); - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB2(DestroyRawMonitor, jvmti, syncLock))) + if (!NSK_JVMTI_VERIFY(jvmti->DestroyRawMonitor(syncLock))) nsk_jvmti_setFailStatus(); } @@ -302,9 +301,7 @@ jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(GetClassSignature, jvmti_env, object_klass, - &sign_ptr, &gen_ptr))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetClassSignature(object_klass, &sign_ptr, &gen_ptr))) { nsk_jvmti_setFailStatus(); return; } @@ -313,7 +310,7 @@ changeCount(JVMTI_EVENT_VM_OBJECT_ALLOC, &eventCount[0]); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); } @@ -326,13 +323,11 @@ nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)sign_ptr))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)sign_ptr))) { nsk_jvmti_setFailStatus(); } if (gen_ptr != NULL) - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)gen_ptr))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)gen_ptr))) { nsk_jvmti_setFailStatus(); } } @@ -346,9 +341,7 @@ jvmtiPhase phase; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(GetClassSignature, jvmti_env, object_klass, - &sign_ptr, &gen_ptr))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetClassSignature(object_klass, &sign_ptr, &gen_ptr))) { nsk_jvmti_setFailStatus(); return; } @@ -357,7 +350,7 @@ changeCount(JVMTI_EVENT_VM_OBJECT_ALLOC, &newEventCount[0]); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(GetPhase, jvmti_env, &phase))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->GetPhase(&phase))) { nsk_jvmti_setFailStatus(); } @@ -370,13 +363,11 @@ nsk_jvmti_setFailStatus(); } - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)sign_ptr))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)sign_ptr))) { nsk_jvmti_setFailStatus(); } if (gen_ptr != NULL) - if (!NSK_JVMTI_VERIFY(NSK_CPP_STUB2(Deallocate, - jvmti_env, (unsigned char*)gen_ptr))) { + if (!NSK_JVMTI_VERIFY(jvmti_env->Deallocate((unsigned char*)gen_ptr))) { nsk_jvmti_setFailStatus(); } } @@ -388,16 +379,13 @@ if (nsk_jvmti_isOptionalEvent(event) && (event != JVMTI_EVENT_VM_OBJECT_ALLOC)) { if (!NSK_JVMTI_VERIFY_CODE(JVMTI_ERROR_MUST_POSSESS_CAPABILITY, - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, - JVMTI_ENABLE, event, NULL))) { + jvmti->SetEventNotificationMode(JVMTI_ENABLE, event, NULL))) { NSK_COMPLAIN1("Unexpected error enabling %s\n", TranslateEvent(event)); return NSK_FALSE; } } else { - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB4(SetEventNotificationMode, jvmti, - JVMTI_ENABLE, event, NULL))) { + if (!NSK_JVMTI_VERIFY(jvmti->SetEventNotificationMode(JVMTI_ENABLE, event, NULL))) { NSK_COMPLAIN1("Unexpected error enabling %s\n", TranslateEvent(event)); return NSK_FALSE; @@ -490,10 +478,7 @@ break; } - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(SetEventCallbacks, jvmti, - &eventCallbacks, - sizeof(eventCallbacks)))) + if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) return NSK_FALSE; return NSK_TRUE; @@ -553,8 +538,7 @@ return JNI_ERR; - if (!NSK_JVMTI_VERIFY( - NSK_CPP_STUB3(CreateRawMonitor, jvmti, "_syncLock", &syncLock))) { + if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("_syncLock", &syncLock))) { nsk_jvmti_setFailStatus(); return JNI_ERR; } @@ -564,7 +548,7 @@ 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; } diff -r 2ea07b19b446 -r 4762fcec08d4 test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM06/em06t001/em06t001.cpp --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM06/em06t001/em06t001.cpp Thu Oct 11 16:41:13 2018 +0200 +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/scenarios/events/EM06/em06t001/em06t001.cpp Thu Oct 11 09:20:07 2018 -0700 @@ -73,8 +73,7 @@ return; } - jclassName = (jstring) (jstring) (jstring) (jstring) (jstring) (jstring) (jstring) (jstring) (jstring) NSK_CPP_STUB3(CallObjectMethod, jni_env, klass, - methodID); + jclassName = (jstring) NSK_CPP_STUB3(CallObjectMethod, jni_env, klass, methodID); className = NSK_CPP_STUB3(GetStringUTFChars, jni_env, jclassName, 0); diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/Makefile --- a/test/jdk/Makefile Thu Oct 11 16:41:13 2018 +0200 +++ b/test/jdk/Makefile Thu Oct 11 09:20:07 2018 -0700 @@ -29,8 +29,6 @@ USE_FAILURE_HANDLER := true -TREAT_EXIT_CODE_1_AS_0 := true - include ../TestCommon.gmk # Default make rule (runs default jdk tests) diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/ProblemList.txt --- a/test/jdk/ProblemList.txt Thu Oct 11 16:41:13 2018 +0200 +++ b/test/jdk/ProblemList.txt Thu Oct 11 09:20:07 2018 -0700 @@ -508,6 +508,8 @@ # jdk_lang java/lang/StringCoding/CheckEncodings.sh 7008363 generic-all +java/lang/ProcessBuilder/PipelineTest.java 8211844 aix-ppc64 +java/lang/ProcessHandle/InfoTest.java 8211847 aix-ppc64 ############################################################################ @@ -556,6 +558,8 @@ java/net/DatagramSocket/SendDatagramToBadAddress.java 7143960 macosx-all +java/net/ServerSocket/AcceptInheritHandle.java 8211854 aix-ppc64 + ############################################################################ # jdk_nio @@ -564,6 +568,8 @@ java/nio/channels/DatagramChannel/ChangingAddress.java 7141822 macosx-all +java/nio/channels/AsynchronousSocketChannel/StressLoopback.java 8211851 aix-ppc64 + java/nio/channels/Selector/Wakeup.java 6963118 windows-all java/nio/file/WatchService/Basic.java 7158947 solaris-all Solaris 11 @@ -571,6 +577,8 @@ java/nio/file/WatchService/LotsOfCancels.java 8188039 solaris-all Solaris 11 java/nio/file/WatchService/LotsOfEvents.java 7158947 solaris-all Solaris 11 +sun/nio/cs/OLD/TestIBMDB.java 8211841 aix-ppc64 + ############################################################################ # jdk_rmi @@ -852,7 +860,7 @@ # svc_tools sun/tools/jstat/jstatClassloadOutput1.sh 8173942 generic-all -sun/tools/jhsdb/BasicLauncherTest.java 8193639 solaris-all +sun/tools/jhsdb/BasicLauncherTest.java 8193639,8211767 solaris-all,linux-ppc64,linux-ppc64le sun/tools/jhsdb/HeapDumpTest.java 8193639 solaris-all @@ -866,8 +874,6 @@ javax/rmi/ssl/SSLSocketParametersTest.sh 8162906 generic-all -javax/naming/module/RunBasic.java 8211850 generic-all - ############################################################################ ########################################################################### diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/com/sun/jdi/DeferredStepTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jdk/com/sun/jdi/DeferredStepTest.java Thu Oct 11 09:20:07 2018 -0700 @@ -0,0 +1,180 @@ +/* + * Copyright (c) 2002, 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 4629548 + * @summary Deferred StepRequests are lost in multithreaded debuggee + * @comment converted from test/jdk/com/sun/jdi/DeferredStepTest.sh + * + * @library /test/lib + * @build DeferredStepTest + * @run main/othervm DeferredStepTest + */ + +import jdk.test.lib.Asserts; +import jdk.test.lib.Utils; +import lib.jdb.JdbCommand; +import lib.jdb.JdbTest; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +class DeferredStepTestTarg { + static class jj1 implements Runnable { + public void run() { + int count = 0; + + for ( int ii = 0; ii < 10; ii++) { + int intInPotato04 = 666; + ++count; // @1 breakpoint + System.out.println("Thread: " + Thread.currentThread().getName()); + } + } + } + + static class jj2 implements Runnable { + public void run() { + int count2 = 0; + + for (int ii = 0; ii < 10; ii++) { + String StringInPotato05 = "I am"; + ++count2; // @2 breakpoint + System.out.println("Thread: " + Thread.currentThread().getName()); + } + } + } + + public static void main(String argv[]) { + System.out.println("Version = " + System.getProperty("java.version")); + + jj1 obj1 = new jj1(); + jj2 obj2 = new jj2(); + new Thread(obj1, "jj1").start(); + new Thread(obj2, "jj2").start(); + } +} + +public class DeferredStepTest extends JdbTest { + public static void main(String argv[]) { + new DeferredStepTest().run(); + } + + private DeferredStepTest() { + super(DeferredStepTestTarg.class.getName()); + } + + private static class ThreadData { + int lastLine = -1; // line of the last stop + int minLine = -1; // min line (-1 means "not known yet") + int maxLine = -1; // max line (-1 means "not known yet") + } + + private Map threadData = new HashMap<>(); + + private Pattern threadRegexp = Pattern.compile("^(.+)\\[\\d+\\].*"); + private Pattern lineRegexp = Pattern.compile("^(\\d+)\\b.*", Pattern.MULTILINE); + + // returns the 1st group of the pattern. + private String parse(Pattern p, String input) { + Matcher m = p.matcher(input); + if (!m.find()) { + throw new RuntimeException("Input '" + input + "' does not matches '" + p.pattern() + "'"); + } + return m.group(1); + } + + private void next() { + List reply = jdb.command(JdbCommand.next()); + /* + * Each "next" produces something like ("Breakpoint hit" line only if the line has BP) + * Step completed: + * Breakpoint hit: "thread=jj2", DeferredStepTestTarg$jj2.run(), line=74 bci=12 + * 74 ++count2; // @2 breakpoint + * + * jj2[1] + */ + // detect thread from the last line + String lastLine = reply.get(reply.size() - 1); + String threadName = parse(threadRegexp, lastLine); + String wholeReply = reply.stream().collect(Collectors.joining(Utils.NEW_LINE)); + int lineNum = Integer.parseInt(parse(lineRegexp, wholeReply)); + + System.out.println("got: thread=" + threadName + ", line=" + lineNum); + + ThreadData data = threadData.get(threadName); + if (data == null) { + data = new ThreadData(); + threadData.put(threadName, data); + } + processThreadData(threadName, lineNum, data); + } + + private void processThreadData(String threadName, int lineNum, ThreadData data) { + int lastLine = data.lastLine; + data.lastLine = lineNum; + if (lastLine < 0) { + // the 1st stop in the thread + return; + } + if (lineNum == lastLine + 1) { + // expected. + return; + } + if (lineNum < lastLine) { + // looks like step to the beginning of the cycle + if (data.minLine > 0) { + // minLine and maxLine are not set - verify + Asserts.assertEquals(lineNum, data.minLine, threadName + " - minLine"); + Asserts.assertEquals(lastLine, data.maxLine, threadName + " - maxLine"); + } else { + // set minLine/maxLine + data.minLine = lineNum; + data.maxLine = lastLine; + } + return; + } + throw new RuntimeException(threadName + " (line " + lineNum + ") - unexpected." + + " lastLine=" + lastLine + ", minLine=" + data.minLine + ", maxLine=" + data.maxLine); + } + + @Override + protected void runCases() { + setBreakpoints(jdb, DeferredStepTestTarg.jj1.class.getName(), + getTestSourcePath("DeferredStepTest.java"), 1); + setBreakpoints(jdb, DeferredStepTestTarg.jj2.class.getName(), + getTestSourcePath("DeferredStepTest.java"), 2); + + // Run to breakpoint #1 + jdb.command(JdbCommand.run()); + + // 2 cycles with 4 lines each - maximum 80 stops + for (int i=0; i<50; i++) { + next(); + } + } +} diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/com/sun/jdi/DeferredStepTest.sh --- a/test/jdk/com/sun/jdi/DeferredStepTest.sh Thu Oct 11 16:41:13 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,183 +0,0 @@ -#!/bin/sh - -# -# Copyright (c) 2002, 2014, 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 -# This is a manual test. The script isn't smart enough -# to detect the correct ordering of the output since it -# is produced by multiple threads and can be interleaved -# in many different ways. -# -# @bug 4629548 -# @summary Deferred StepRequests are lost in multithreaded debuggee -# @author Jim Holmlund -# -# @run shell/manual DeferredStepTest.sh - -# Run this script to see the bug. See comments at the end -# of the .java file for info on what the bug looks like. - -# These are variables that can be set to control execution - -#pkg=untitled7 -classname=DeferredStepTest -#compileOptions=-g -#java=java_g -#mode=-Xcomp - -createJavaFile() -{ - cat < $classname.java.1 -public class $classname { - static class jj1 implements Runnable { - public void run() { - int count = 0; - - for ( int ii = 0; ii < 10; ii++) { // line 6 - int intInPotato04 = 666; // line 7 - ++count; // line 8; @1 breakpoint - System.out.println("Thread: " + Thread.currentThread().getName()); // line 9 - } - } - } - - static class jj2 implements Runnable { - public void run() { - int count2 = 0; - - for (int ii = 0; ii < 10; ii++) { // line 18 - String StringInPotato05 = "I am"; // line 19 - ++count2; // line 20; @1 breakpoint - System.out.println("Thread: " + Thread.currentThread().getName()); // line 21 - } - } - } - - public static void main(String argv[]) { - System.out.println("Version = " + System.getProperty("java.version")); - - jj1 aRP = new jj1(); - jj2 asRP = new jj2(); - new Thread(aRP, "jj1 *").start(); - new Thread(asRP, "jj2 **").start(); -// new Thread(aRP, "jj3 ***").start(); -// new Thread(asRP, "jj4 ****").start(); - } -} - -/**************************** -To see this bug, do this - - jdb DeferredStep - stop at DeferredStepTest$jj1:8 - stop at DeferredStepTest$jj2:20 - run - next - next - : - -********/ - -EOF -} - -#sleepcmd="sleep 2" - -# This is called to feed cmds to jdb. -dojdbCmds() -{ - #set -x - # We can't use setBkpts because it can only set bkpts in one class :-( - #setBkpts @1 - cmd stop at $classname'$jj1:8' - cmd stop at $classname'$jj2:20' - #cmd run; $sleepcmd - runToBkpt @1 - cmd next; $sleepcmd - cmd next; $sleepcmd - cmd next; $sleepcmd - cmd next; $sleepcmd - cmd next; $sleepcmd - cmd next; $sleepcmd - cmd next; $sleepcmd - cmd next; $sleepcmd - cmd next; $sleepcmd - cmd next; $sleepcmd - cmd next; $sleepcmd - cmd next; $sleepcmd - cmd next; $sleepcmd - cmd next; $sleepcmd - cmd next; $sleepcmd -} - -mysetup() -{ - if [ -z "$TESTSRC" ] ; then - TESTSRC=. - fi - - for ii in . $TESTSRC $TESTSRC/.. ; do - if [ -r "$ii/ShellScaffold.sh" ] ; then - . $ii/ShellScaffold.sh - break - fi - done -} - - -# You could replace this next line with the contents -# of ShellScaffold.sh and this script will run just the same. -mysetup - -cat < To use a package, define it here and put -# package $pkg -# in your java file -# classname= Omit this to use the default class name, 'shtest'. - -# compileOptions= compile options for at least the first compile, -# eg, compileOptions=-g -# compileOptions2= Options for the 2nd, ..., compile. compileOptions1 -# is used if this is not set. To use no compile -# options for the 2nd ... compiles, do -# compileOptions2=none -# -# mode=-Xcomp or mode=-Xint to run in these modes. These should not -# really be used since the tests are normally -# run in both modes. -# javacCmd=path-to-javac to use a non-standard javac for compiling -# compileOptions= Options to pass to javac -# -# See RedefineException.sh as an example of a caller script. -# -# To do RedefineClasses operations, embed @1 tags in the .java -# file to tell this script how to modify it to produce the 2nd -# version of the .class file to be used in the redefine operation. -# Here are examples of each editting tag and what change -# it causes in the new file. Note that blanks are not preserved -# in these editing operations. -# -# @1 uncomment -# orig: // @1 uncomment gus = 89; -# new: gus = 89; -# -# @1 commentout -# orig: gus = 89 // @1 commentout -# new: // gus = 89 // @1 commentout -# -# @1 delete -# orig: gus = 89 // @1 delete -# new: entire line deleted -# -# @1 newline -# orig: gus = 89; // @1 newline gus++; -# new: gus = 89; // -# gus++; -# -# @1 replace -# orig: gus = 89; // @1 replace gus = 90; -# new: gus = 90; -# -# The only other tag supported is @1 breakpoint. The setbkpts function -# sets bkpts at all lines that contain this string. -# -# Currently, all these tags are start with @1. It is envisioned that this script -# could be ehanced to allow multiple cycles of redefines by allowing -# @2, @3, ... tags. IE, processing the @i tags in the ith version of -# the file will produce the i+1th version of the file. -# -# There are problem with jtreg leaving behind orphan java and jdb processes -# when this script is run. Sometimes, on some platforms, it just doesn't -# get them all killed properly. -# The solution is to put a magic word in the cmd lines of background java -# and jdb processes this script launches. We can then do the right kind -# of ps cmds to find all these processes and kill them. We do this by -# trapping the completion of this script. -# -# An associated problem is that our trap handler (cleanup) doesn't -# always get called when jtreg terminates a test. This can leave tests -# hanging but following tests should run ok because each test uses -# unique names for the port and temp files (based on the PID returned -# by $$). -# -# mks 6.2a on win 98 presents two problems: -# $! returns the PID as a negative number whereas ps returns -# it in the form 0xFFF.... This means our trick of -# of using $! to get the PIDs of the jdb and debuggee processes -# doesn't work. This will cause some error cases to fail -# with a jtreg timeout instead of failing more gracefully. -# -# There is no form of the ps command that will show the whole -# cmd line. Thus, the magic keyword trick doesn't work. We -# resort to just killing java.exe and jdb.exes -# -# pid usage: -# debuggeepid: used in jdb process to detect if debuggee has died. -# - waitForDebuggeeMsg: fail if debuggee is gone -# -# jdbpid: dofail: used to detect if in main process or jdb process -# waitforfinish: quit if the jdb process is gone - -#killcmd=/bin/kill -killcmd=kill - -# This can be increased if timing seems to be an issue. -sleep_seconds=1 -timeout_factor=1 -if [ -n "$TESTTIMEOUTFACTOR" ] ; then - # convert float value to int - timeout_factor=$(echo $TESTTIMEOUTFACTOR | awk '{printf "%d\n", int($1)}') -fi - -echo "ShellScaffold.sh: Running with timeout_factor = $timeout_factor" >& 2 -topPid=$$ - -# Be careful to echo to >& in these general functions. -# If they are called from the functions that are sending -# cmds to jdb, then stdout is redirected to jdb. -cleanup() -{ - if [ -r "$failFile" ] ; then - ls -l "$failFile" >&2 - echo "" >&2 - cat "$failFile" >&2 - echo "" >&2 - fi - - # Kill all processes that have our special - # keyword in their cmd line. - killOrphans cleanup $jdbKeyword - killOrphans cleanup $debuggeeKeyword -} - -# Kill all processes with $2 in their cmd lines -# Print a msg about this using $1 as the prefix -killOrphans() -{ - str=$2 - - if [ -z "$isCygwin" ] ; then - toBeKilled=`$psCmd | $grep -v grep | $grep -i $str | awk '{print $1}' | tr '\n\r' ' '` - else - # The cygwin ps command doesn't show the options passed to a cmd. - # We will use jps to get the win PID of the command, and - # then use ps to find the cygwin pid to be killed. - # The form of a ps output line is - # ^ ddddd dddd dddd dddd.* - # where the 4th digits are the win pid and the first - # are the cygwin pid. - if [ -r "$jdk/bin/$jstack" ] ; then - winPid=`$jdk/bin/jps -v | $grep -i $str | sed -e 's@ .*@@'` - if [ ! -z "$winPid" ] ; then - # Here is a way to kill using a win cmd and the win PID. - #echo "$1: taskkill /F $winPid" >& 2 - #taskkill /F /PID $winPid - - toBeKilled=`$psCmd | $grep -v grep | \ - $grep '^ +[0-9]+ +[0-9]+ +[0-9]+ +'"$winPid" |\ - awk '{print $1}' | tr '\n\r' ' '` - fi - else - # Well, too bad - we can't find what to kill. - toBeKilled= - fi - fi - - if [ ! -z "$toBeKilled" ] ; then - echo "$1: kill -9 $toBeKilled" >& 2 - kill -9 $toBeKilled - fi -} - -# Returns 0 if $1 is the pid of a running process -findPid() -{ - if [ -z "$1" ] ; then - return 1 - fi - - case "$osname" in - SunOS | AIX) - $psCmd | $grep '^ *'"$1 " > $devnull 2>&1 - res=$? - ;; - Windows* | CYGWIN*) - # Don't use ps on cygwin since it sometimes misses - # some processes (!). - tasklist /NH | $grep " $1 " > $devnull 2>&1 - res=$? - ;; - *) - # Never use plain 'ps', which requires a "controlling terminal" - # and will fail with a "ps: no controlling terminal" error. - # Running under 'rsh' will cause this ps error. - $psCmd -e | $grep '^ *'"$1 " > $devnull 2>&1 - res=$? - ;; - esac - return $res -} - -setup() -{ - failed= - # This is used to tag each java and jdb cmd we issue so - # we can kill them at the end of the run. - - orphanKeyword=HANGINGJAVA-$$ - debuggeeKeyword=${orphanKeyword}_DEB - jdbKeyword=${orphanKeyword}_JDB - baseArgs=-D${debuggeeKeyword} - if [ -z "$TESTCLASSES" ] ; then - echo "--Warning: TESTCLASSES is not defined; using TESTCLASSES=." - echo " You should run: " - echo " runregress $0 -no" - echo " or" - echo " (setenv TESTCLASSES .; $0 $*)" - TESTCLASSES=. - fi - if [ ! -z "$TESTJAVA" ] ; then - jdk="$TESTJAVA" - else - echo "--Error: TESTJAVA must be defined as the pathname of a jdk to test." - exit 1 - fi - - ulimitCmd= - osname=`uname -s` - isCygwin= - case "$osname" in - Windows* | CYGWIN*) - devnull=NUL - case "$osname" in - CYGWIN*) - isCygwin=1 - devnull=/dev/null - ;; - esac - - if [ -r $jdk/bin/dt_shmem.dll ] ; then - transport=dt_shmem - address=kkkk.$$ - else - transport=dt_socket - address= - fi - baseArgs="$baseArgs -XX:-ShowMessageBoxOnError" - # jtreg puts \\s in TESTCLASSES and some uses, eg. echo - # treat them as control chars on mks (eg \t is tab) - # Oops; windows mks really seems to want this cat line - # to start in column 1 - if [ -w "$Temp" ] ; then - tmpFile=$Temp/tmp.$$ - elif [ -w "$TEMP" ] ; then - tmpFile=$TEMP/tmp.$$ - else - tmpFile=tmp.$$ - fi -cat <$tmpFile -$TESTCLASSES -EOF - TESTCLASSES=`cat $tmpFile | sed -e 's@\\\\@/@g'` - rm -f $tmpFile - # on mks - grep=egrep - psCmd=ps - jstack=jstack.exe - ;; - SunOS | Linux | Darwin | AIX) - transport=dt_socket - address= - devnull=/dev/null - grep=egrep - jstack=jstack - # On linux, core files take a long time, and can leave - # zombie processes - if [ "$osname" = SunOS ] ; then - # Experiments show Solaris '/usr/ucb/ps -axwww' and - # '/usr/bin/pgrep -f -l' provide the same small amount of the - # argv string (PRARGSZ=80 in /usr/include/sys/procfs.h) - # 1) This seems to have been working OK in ShellScaffold. - # 2) OpenSolaris does not provide /usr/ucb/ps, so use pgrep - # instead - # The alternative would be to use /usr/bin/pargs [pid] to get - # all the args for a process, splice them back into one - # long string, then grep. - UU=`/usr/xpg4/bin/id -u -n` - psCmd="pgrep -f -l -U $UU" - else - ulimit -c 0 - # See bug 6238593. - psCmd="ps axwww" - fi - ;; - *) - echo "--Error: Unknown result from 'uname -s': $osname" - exit 1 - ;; - esac - - - tmpFileDir=$TESTCLASSES/aa$$ - TESTCLASSES=$tmpFileDir - - mkdir -p $tmpFileDir - - # This must not contain 'jdb' or it shows up - # in grep of ps output for some platforms - jdbOutFile=$tmpFileDir/jxdbOutput.txt - rm -f $jdbOutFile - touch $jdbOutFile - - debuggeeOutFile=$tmpFileDir/debuggeeOutput.txt - failFile=$tmpFileDir/testFailed - debuggeepidFile=$tmpFileDir/debuggeepid - rm -f $failFile $debuggeepidFile - if [ -f "$failFile" ]; then - echo "ERROR: unable to delete existing failFile:" >&2 - ls -l "$failFile" >&2 - fi - - if [ -z "$pkg" ] ; then - pkgSlash= - pkgDot= - redefineSubdir=. - else - pkgSlash=$pkg/ - pkgDot=$pkg. - redefineSubdir=$pkgSlash - fi - if [ -z "$classname" ] ; then - classname=shtest - fi - - if [ -z "$java" ] ; then - java=java - fi - - if [ -z "$jdb" ] ; then - jdb=$jdk/bin/jdb - fi - -####################################################3 -####################################################3 -####################################################3 -####################################################3 -# sol: this gets all processes killed but -# no jstack -# linux same as above -# win mks: No dice; processes still running - trap "cleanup" 0 1 2 3 4 6 9 10 15 - - jdbOptions="$jdbOptions -J-D${jdbKeyword}" -} - -docompile() -{ - if [ "$compile" = 0 ] ; then - return - fi - saveDir=`pwd` - cd $tmpFileDir - rm -f *.java - createJavaFile $classname - - # Compile two versions of the file, the original and with the - # indicated lines modified. - cp $classname.java.1 $classname.java - echo "--Compiling first version of `pwd`/$classname.java with options: $compileOptions" - # Result is in $pkgSlash$classname.class - - if [ -z "$javacCmd" ] ; then - javacCmd=$jdk/bin/javac - fi - - echo "compiling " `ls *.java` - $javacCmd $compileOptions -d . *.java - if [ $? != 0 ] ; then - dofail "First compile failed" - fi - if [ -r vers1 ] ; then - rm -rf vers1 - fi - mkdir -p vers1 - mv *.class vers1 - if [ ! -z "$compileOptions2" ] ; then - if [ "$compileOptions2" = none ] ; then - compileOptions= - else - compileOptions=$compileOptions2 - fi - fi - - while [ 1 = 1 ] ; do - # Not really a loop; just a way to avoid goto - # by using breaks - sed -e '/@1 *delete/ d' \ - -e 's! *// *@1 *uncomment! !' \ - -e 's!\(.*@1 *commentout\)!//\1!' \ - -e 's/@1 *newline/\ - /' \ - -e 's/.*@1 *replace//' \ - $classname.java.1 >$classname.java - - cmp -s $classname.java.1 $classname.java - if [ $? = 0 ] ; then - break - fi - echo - echo "--Compiling second version of `pwd`/$classname.java with $compileOptions" - $javacCmd $compileOptions -d . $classname.java - if [ $? != 0 ] ; then - dofail "Second compile failed" - fi - if [ -r vers2 ] ; then - rm -rf vers2 - fi - mkdir -p vers2 - mv *.class vers2 - mv $classname.java $classname.java.2 - cp $classname.java.1 $classname.java - - ###### Do the same for @2, and @3 allowing 3 redefines to occur. - ###### If I had more time to write sed cmds, I would do - ###### this in a loop. But, I don't think we will ever need - ###### more than 3 redefines. - sed -e '/@2 *delete/ d' \ - -e 's! *// *@2 *uncomment! !' \ - -e 's!\(.*@2 *commentout\)!//\1!' \ - -e 's/@2 *newline/\ - /' \ - -e 's/.*@2 *replace//' \ - $classname.java.2 >$classname.java - cmp -s $classname.java.2 $classname.java - if [ $? = 0 ] ; then - break - fi - echo - echo "--Compiling third version of `pwd`/$classname.java with $compileOptions" - $javacCmd $compileOptions -d . $classname.java - if [ $? != 0 ] ; then - dofail "Third compile failed" - fi - if [ -r vers3 ] ; then - rm -rf vers3 - fi - mkdir -p vers3 - mv *.class vers3 - mv $classname.java $classname.java.3 - cp $classname.java.1 $classname.java - - ######## - sed -e '/@3 *delete/ d' \ - -e 's! *// *@3 *uncomment! !' \ - -e 's!\(.*@3 *commentout\)!//\1!' \ - -e 's/@3 *newline/\ - /' \ - -e 's/.*@3 *replace//' \ - $classname.java.3 >$classname.java - cmp -s $classname.java.3 $classname.java - if [ $? = 0 ] ; then - break - fi - echo - echo "--Compiling fourth version of `pwd`/$classname.java with $compileOptions" - $javacCmd $compileOptions -d . $classname.java - if [ $? != 0 ] ; then - dofail "fourth compile failed" - fi - if [ -r vers4 ] ; then - rm -rf vers4 - fi - mkdir -p vers4 - mv *.class vers4 - mv $classname.java $classname.java.4 - cp $classname.java.1 $classname.java - break - fgrep @4 $classname.java - if [ $? = 0 ] ; then - echo "--Error: @4 and above are not yet allowed" - exit 1 - fi - done - - cp vers1/* $redefineSubdir - cd $saveDir -} - -# Send a cmd to jdb and wait for the jdb prompt to appear. -# We don't want to allow > as a prompt because if the debuggee -# runs for awhile after a command, jdb will show this prompt -# but is not really ready to accept another command for the -# debuggee - ie, a cont in this state will be ignored. -# If it ever becomes necessary to send a jdb command before -# a main[10] form of prompt appears, then this -# code will have to be modified. -# -# Specify $1 = allowExit to show that the command given -# allows JDB to exit -cmd() -{ - allowExit= - case "$1" in - allowExit) - allowExit="allowExit" - shift - ;; - exitJdb) - # Quit JDB only with this cmd() invocation - echo "--Sending cmd: quit" >& 2 - echo quit - echo "--Quit cmd was sent" >& 2 - # See 6562090. Maybe there is a way that the exit - # can cause jdb to not get the quit. - sleep 5 - - # The exit code value here doesn't matter since this function - # is called as part of a pipeline and it is not the last command - # in the pipeline. - exit 1 - ;; - esac - command=$* - - if [ -z "$command" ] ; then - dofail "Command can't be a null string. Test failure" - fi - if [ "$command" = "quit" -o "$command" = "exit" ] ; then - # We don't want the test to manually quit jdb, - # we will do it in the end automatically - dofail "It's not allowed to send quit or exit commands from the test" - fi - if [ -r "$failFile" ] ; then - # failFile exists, it's better to finish execution - dofinish "quit" - fi - - # $jdbOutFile always exists here and is non empty - # because after starting jdb, we waited - # for the prompt. - fileSize=`wc -c $jdbOutFile | awk '{ print $1 }'` - echo "--Sending cmd: " $command >&2 - - # jjh: We have a few intermittent failures here. - # It is as if every so often, jdb doesn't - # get the first cmd that is sent to it here. - # (actually, I have seen it get the first cmd ok, - # but then not get some subsequent cmd). - # It seems like jdb really doesn't get the cmd; jdb's response - # does not appear in the jxdboutput file. It contains: - # main[1] - # The application has been disconnected - - # Is it possible - # that jdb got the cmd ok, but its response didn't make - # it to the jxdboutput file? If so, why did 'The application - # has been disconnected' make it? - - # This causes the following loop to timeout and the test to fail. - # The above echo works because the cmd (stop at ...) - # is in the System.err shown in the .jtr file. - # Also, the cmd is shown in the 'jdb never responded ...' - # msg output below after the timeout. - # And, we know jdb is started because the main[1] output is in the .jtr - # file. And, we wouldn't have gotten here if mydojdbcmds hadn't - # seen the ]. - echo $command - - # Now we have to wait for the next jdb prompt. We wait for a pattern - # to appear in the last line of jdb output. Normally, the prompt is - # - # 1) ^main[89] @ - # - # where ^ means start of line, and @ means end of file with no end of line - # and 89 is the current command counter. But we have complications e.g., - # the following jdb output can appear: - # - # 2) a[89] = 10 - # - # The above form is an array assignment and not a prompt. - # - # 3) ^main[89] main[89] ... - # - # This occurs if the next cmd is one that causes no jdb output, e.g., - # 'trace methods'. - # - # 4) ^main[89] [main[89]] .... > @ - # - # jdb prints a > as a prompt after something like a cont. - # Thus, even though the above is the last 'line' in the file, it - # isn't the next prompt we are waiting for after the cont completes. - # HOWEVER, sometimes we see this for a cont command: - # - # ^main[89] $ - # - # - # 5) ^main[89] > @ - # - # i.e., the > prompt comes out AFTER the prompt we we need to wait for. - # - # So, how do we know when the next prompt has appeared?? - # 1. Search for - # main[89] $ - # This will handle cases 1, 2, 3 - # 2. This leaves cases 4 and 5. - # - # What if we wait for 4 more chars to appear and then search for - # - # main[89] [>]$ - # - # on the last line? - # - # a. if we are currently at - # - # ^main[89] main[89] @ - # - # and a 'trace methods comes in, we will wait until at least - # - # ^main[89] main[89] main@ - # - # and then the search will find the new prompt when it completes. - # - # b. if we are currently at - # - # ^main[89] main[89] @ - # - # and the first form of cont comes in, then we will see - # - # ^main[89] main[89] > $ - # ^x@ - # - # where x is the first char of the msg output when the bkpt is hit - # and we will start our search, which will find the prompt - # when it comes out after the bkpt output, with or without the - # trailing > - # - - # wait for 4 new chars to appear in the jdb output - count=0 - desiredFileSize=`expr $fileSize + 4` - msg1=`echo At start: cmd/size/waiting : $command / $fileSize / \`date\`` - timeLimit=`expr 60 * $timeout_factor` - while [ 1 = 1 ] ; do - newFileSize=`wc -c $jdbOutFile | awk '{ print $1 } '` - #echo jj: desired = $desiredFileSize, new = $newFileSize >& 2 - - done=`expr $newFileSize \>= $desiredFileSize` - if [ $done = 1 ] ; then - break - fi - sleep ${sleep_seconds} - count=`expr $count + ${sleep_seconds}` - if [ $count -gt $timeLimit ] ; then - # record some debug info. - echo "--DEBUG: jdb $$ didn't respond to command in $count secs: $command" >& 2 - echo "--DEBUG:" $msg1 >& 2 - echo "--DEBUG: "done size/waiting : / $newFileSize / `date` >& 2 - echo "-- $jdbOutFile follows-------------------------------" >& 2 - cat $jdbOutFile >& 2 - echo "------------------------------------------" >& 2 - dojstack - dofail "jdb never responded to command: $command" - fi - done - # Note that this assumes just these chars in thread names. - waitForJdbMsg '[a-zA-Z0-9_-][a-zA-Z0-9_-]*\[[1-9][0-9]*\] [ >]*$' 1 $allowExit -} - -setBkpts() -{ - # Can set multiple bkpts, but only in one class. - # $1 is the bkpt name, eg, @1 - allLines=`$grep -n "$1 *breakpoint" $tmpFileDir/$classname.java.1 | sed -e 's@^\([0-9]*\).*@\1@g'` - for ii in $allLines ; do - cmd "stop at $pkgDot$classname:$ii" - done -} - -runToBkpt() -{ - # Don't pass allowExit here as we don't want JDB to unexpectedly exit - cmd run - # Don't need to do this - the above waits for the next prompt which comes out - # AFTER the Breakpoint hit message. - # Wait for jdb to hit the bkpt - #waitForJdbMsg "Breakpoint hit" 5 -} - -contToBkpt() -{ - # Don't pass allowExit here as we don't want JDB to unexpectedly exit - cmd cont - # Don't need to do this - the above waits for the next prompt which comes out - # AFTER the Breakpoint hit message. - # Wait for jdb to hit the bkpt - #waitForJdbMsg "Breakpoint hit" 5 -} - - -# Wait until string $1 appears in the output file, within the last $2 lines -# If $3 is allowExit, then don't fail if jdb exits before -# the desired string appears. -waitForJdbMsg() -{ - # This can be called from the jdb thread which doesn't - # have access to $debuggeepid, so we have to read it from the file. - nlines=$2 - allowExit="$3" - myCount=0 - timeLimit=`expr 40 * $timeout_factor` # wait a max of this many secs for a response from a jdb command - - while [ 1 = 1 ] ; do - if [ -r $jdbOutFile ] ; then - # Something here causes jdb to complain about Unrecognized cmd on x86. - tail -$nlines $jdbOutFile | $grep -s "$1" > $devnull 2>&1 - if [ $? = 0 ] ; then - # Found desired string - break - fi - fi - tail -2 $jdbOutFile | $grep -s "The application exited" > $devnull 2>&1 - if [ $? = 0 ] ; then - # Found 'The application exited' - echo "--JDB finished: The application exited" >&2 - if [ ! -z "$allowExit" ] ; then - # Exit is allowed - dofinish - fi - # Otherwise, it is an error if we don't find $1 - if [ -r $jdbOutFile ] ; then - tail -$nlines $jdbOutFile | $grep -s "$1" > $devnull 2>&1 - if [ $? = 0 ] ; then - break - fi - fi - dofail "JDB unexpectedly finished: Waited for jdb msg $1, but it never appeared" - fi - - sleep ${sleep_seconds} - findPid $topPid - if [ $? != 0 ] ; then - echo "--Top process ($topPid) is dead. We better die too" >&2 - dojstack - exit 1 - fi - - myCount=`expr $myCount + ${sleep_seconds}` - if [ $myCount -gt $timeLimit ] ; then - echo "--Fail: waitForJdbMsg timed out after $timeLimit seconds, looking for /$1/, in $nlines lines; exiting" >> $failFile - echo "vv jdbOutFile vvvvvvvvvvvvvvvvvvvvvvvvvvvv" >& 2 - cat $jdbOutFile >& 2 - echo "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" >& 2 - dojstack - exit 1 - fi - done - -} - -# Finishes JDB execution -# Specify command to finish if it's needed -dofinish() -{ - if [ ! -z "$*" ] ; then - echo "--Finish execution with sending \"$*\" command to JDB" >&2 - cmd "exitJdb" "$*" - else - echo "--Finish without sending \"quit\" command to JDB" >&2 - fi - exit 0 -} - -# $1 is the string to print. If $2 exists, -# it is the name of a file to print, ie, the name -# of the file that contains the $1 string. -dofail() -{ - if [ ! -z "$jdbpid" ] ; then - # we are in the main process instead of the jdb process - echo " " >> $failFile - echo "--Fail: main: $*" >> $failFile - else - # Kill the debuggee ; it could be hung so - # we want to get rid of it as soon as possible. - killOrphans "killing debuggee" $debuggeeKeyword - # Kill debugger, it could be hung - killOrphans "killing debugger" $jdbKeyword - - echo " " >>$failFile - echo "--Fail: $*" >> $failFile - fi - if [ ! -z "$2" ] ; then - echo "---- contents of $2 follows -------" >> $failFile - cat "$2" >> $failFile - echo "---------------" >>$failFile - fi - exit 1 -} - - -redefineClass() -{ - if [ -z "$1" ] ; then - vers=2 - else - vers=`echo $1 | sed -e 's/@//'` - vers=`expr $vers + 1` - fi - - cmd "redefine $pkgDot$classname $tmpFileDir/vers$vers/$classname.class" - - cp $tmpFileDir/$classname.java.$vers \ - $tmpFileDir/$classname.java -} - -mydojdbCmds() -{ - # Wait for jdb to start before we start sending cmds - waitForJdbMsg ']' 1 - # Send commands from the test - dojdbCmds - # Finish jdb with quit command - dofinish "quit" -} - -startJdb() -{ - if [ ! -r "$jdb" -a ! -r "$jdb.exe" ] ; then - dofail "$jdb does not exist" - fi - echo - echo "--Starting jdb, address=$address" - if [ -z "$address" ] ; then - # Let jdb choose the port and write it to stdout - mydojdbCmds | $jdb $jdbOptions -listenany | tee $jdbOutFile & - - while [ 1 ] ; do - lastLine=`$grep 'Listening at address' $jdbOutFile` - if [ ! -z "$lastLine" ] ; then - break - fi - sleep 1 - done - # jjh: we got the address ok, and seemed to start the debuggee - address=`echo $lastLine | sed -e 's@.*: *@@'` - else - mydojdbCmds | $jdb $jdbOptions -listen $address | tee $jdbOutFile & - fi - #echo address = $address - - - # this gets the pid of tee, at least it does on solaris - jdbpid=$! - - # This fails on linux because there is an entry for each thread in jdb - # so we get a list of numbers in jdbpid - # jdbpid=`$psCmd | $grep -v grep | $grep ${orphanKeyword}_JDB | awk '{print $1}' | tr '\n\r' ' '` -} - -startDebuggee() -{ - args="$TESTVMOPTS $TESTJAVAOPTS" - - if [ ! -z "$args" ] ; then - echo "--Starting debuggee with args from TESTVMOPTS and/or TESTJAVAOPTS: $args" - else - echo "--Starting debuggee" - fi - - debuggeepid= - waitForJdbMsg Listening 4 - - beOption="-agentlib:jdwp=transport=$transport,address=$address,server=n,suspend=y" -# beOption="-Xdebug -Xrunjdwp:transport=$transport,address=$address,server=n,suspend=y" - - thecmd="$jdk/bin/$java $mode -classpath $tmpFileDir $baseArgs $args \ - -Djtreg.classDir=$TESTCLASSES \ - -showversion \ - $beOption \ - $pkgDot$classname" - echo "Cmd: $thecmd" - - sh -c "$thecmd | tee $debuggeeOutFile" & - - # Note that the java cmd and the tee cmd will be children of - # the sh process. We can use that to find them to kill them. - debuggeepid=$! - - # Save this in a place where the jdb process can find it. - # Note that it is possible for the java cmd to abort during startup - # due to a bad classpath or whatever. - echo $debuggeepid > $debuggeepidFile -} - -dojstack() -{ - if [ -r "$jdk/bin/$jstack" ] ; then - # If jstack exists, so will jps - # Show stack traces of jdb and debuggee as a possible debugging aid. - jdbCmd=`$jdk/bin/jps -v | $grep $jdbKeyword` - realJdbPid=`echo "$jdbCmd" | sed -e 's@ .*@@'` - if [ ! -z "$realJdbPid" ] ; then - echo "-- jdb process info ----------------------" >&2 - echo " $jdbCmd" >&2 - echo "-- jdb threads: jstack $realJdbPid" >&2 - $jdk/bin/$jstack $realJdbPid >&2 - echo "------------------------------------------" >&2 - echo >&2 - fi - debuggeeCmd=`$jdk/bin/jps -v | $grep $debuggeeKeyword` - realDebuggeePid=`echo "$debuggeeCmd" | sed -e 's@ .*@@'` - if [ ! -z "$realDebuggeePid" ] ; then - echo "-- debuggee process info ----------------------" >&2 - echo " $debuggeeCmd" >&2 - echo "-- debuggee threads: jstack $moption $realDebuggeePid" >&2 - $jdk/bin/$jstack $realDebuggeePid >&2 - echo "=============================================" >&2 - echo >&2 - fi - fi -} - -waitForFinish() -{ - # This is the main process - # Wait for the jdb process to finish, or some error to occur - - while [ 1 = 1 ] ; do - findPid $jdbpid - if [ $? != 0 ] ; then - break - fi - - # (Don't use jdbFailIfPresent here since it is not safe - # to call from different processes) - $grep -s 'Input stream closed' $jdbOutFile > $devnull 2>&1 - if [ $? = 0 ] ; then - dofail "jdb input stream closed prematurely" - fi - - # If a failure has occured, quit - if [ -r "$failFile" ] ; then - break - fi - - sleep ${sleep_seconds} - done - - # jdb exited because its input stream closed prematurely - # (Don't use jdbFailIfPresent here since it is not safe - # to call from different processes) - $grep -s 'Input stream closed' $jdbOutFile > $devnull 2>&1 - if [ $? = 0 ] ; then - dofail "jdb input stream closed prematurely" - fi - - # It is necessary here to avoid the situation when JDB exited but - # mydojdbCmds() didn't finish because it waits for JDB message - # in waitForJdbMsg(), at the same time main process will finish - # the execution with no errors. - # To avoid that, wait for spawned processes to finish - case "$osname" in - SunOS) - # `wait` function doesn't work in Solaris shell as in bash, - # so create replacement that finds mydojdbCmds() shell process - # and waits for its finish - cmdsPid= - # get list of processes except main process with $topPid - processes=`$psCmd | $grep -v "$grep" | $grep -v $topPid | awk '{print $1}'` - for pid in $processes; do - # for each process grep its full args string for test name $0 - # $0 contains full test name with path - pargs -l $pid 2>$devnull | $grep "$0" >$devnull 2>&1 - if [ $? = 0 ] ; then - cmdsPid=$pid - break - fi - done - echo "--waitForFinish: Waiting for mydojdbCmds() to finish" >&2 - while [ 1 = 1 ] ; do - findPid $cmdsPid - if [ $? != 0 ] ; then - break - fi - sleep ${sleep_seconds} - done - ;; - *) - echo "--waitForFinish: Waiting for all processes to finish" >&2 - wait - ;; - esac - - if [ -r "$failFile" ] ; then - ls -l "$failFile" >&2 - echo "" >&2 - cat "$failFile" >&2 - echo "" >&2 - exit 1 - fi -} - -# $1 is the filename, $2 is the string to look for, -# $3 is the number of lines to search (from the end) -grepForString() -{ - if [ -z "$3" ] ; then - theCmd=cat - else - theCmd="tail -$3" - fi - - case "$2" in - *\>*) - # Target string contains a '>' so we better not ignore it - $theCmd $1 | $grep -s "$2" > $devnull 2>&1 - stat="$?" - ;; - *) - # Target string does not contain a '>'. - # NOTE: if $1 does not end with a new line, piping it to sed - # doesn't include the chars on the last line. Detect this - # case, and add a new line. - theFile="$1" - if [ `tail -1 "$theFile" | wc -l | sed -e 's@ @@g'` = 0 ] ; then - # The target file doesn't end with a new line so we have - # add one to a copy of the target file so the sed command - # below can filter that last line. - cp "$theFile" "$theFile.tmp" - theFile="$theFile.tmp" - echo >> "$theFile" - fi - - # See bug 6220903. Sometimes the jdb prompt chars ('> ') can - # get interleaved in the target file which can keep us from - # matching the target string. - $theCmd "$theFile" | sed -e 's@> @@g' -e 's@>@@g' \ - | $grep -s "$2" > $devnull 2>&1 - stat=$? - if [ "$theFile" != "$1" ]; then - # remove the copy of the target file - rm -f "$theFile" - fi - unset theFile - esac - - return $stat -} - -# $1 is the filename, $2 is the regexp to match and return, -# $3 is the number of lines to search (from the end) -matchRegexp() -{ - if [ -z "$3" ] ; then - theCmd=cat - else - theCmd="tail -$3" - fi - - case "$2" in - *\>*) - # Target string contains a '>' so we better not ignore it - res=`$theCmd $1 | sed -e "$2"` - ;; - *) - # Target string does not contain a '>'. - # NOTE: if $1 does not end with a new line, piping it to sed - # doesn't include the chars on the last line. Detect this - # case, and add a new line. - theFile="$1" - if [ `tail -1 "$theFile" | wc -l | sed -e 's@ @@g'` = 0 ] ; then - # The target file doesn't end with a new line so we have - # add one to a copy of the target file so the sed command - # below can filter that last line. - cp "$theFile" "$theFile.tmp" - theFile="$theFile.tmp" - echo >> "$theFile" - fi - - # See bug 6220903. Sometimes the jdb prompt chars ('> ') can - # get interleaved in the target file which can keep us from - # matching the target string. - res=`$theCmd "$theFile" | sed -e 's@> @@g' -e 's@>@@g' \ - | sed -e "$2"` - if [ "$theFile" != "$1" ]; then - # remove the copy of the target file - rm -f "$theFile" - fi - unset theFile - esac - return $res -} - -# $1 is the filename, $2 is the string to look for, -# $3 is the number of lines to search (from the end) -failIfPresent() -{ - if [ -r "$1" ] ; then - grepForString "$1" "$2" "$3" - if [ $? = 0 ] ; then - dofail "Error output found: \"$2\" in $1" $1 - fi - fi -} - -# $1 is the filename, $2 is the string to look for -# $3 is the number of lines to search (from the end) -failIfNotPresent() -{ - if [ ! -r "$1" ] ; then - dofail "Required output \"$2\" not found in $1" - fi - grepForString "$1" "$2" "$3" - if [ $? != 0 ] ; then - dofail "Required output \"$2\" not found in $1" $1 - fi - -} - -# fail if $1 is not in the jdb output -# $2 is the number of lines to search (from the end) -jdbFailIfNotPresent() -{ - failIfNotPresent $jdbOutFile "$1" $2 -} - -# fail if $1 is not in the debuggee output -# $2 is the number of lines to search (from the end) -debuggeeFailIfNotPresent() -{ - failIfNotPresent $debuggeeOutFile "$1" $2 -} - -# fail if $1 is in the jdb output -# $2 is the number of lines to search (from the end) -jdbFailIfPresent() -{ - failIfPresent $jdbOutFile "$1" $2 -} - -# fail if $1 is in the debuggee output -# $2 is the number of lines to search (from the end) -debuggeeFailIfPresent() -{ - failIfPresent $debuggeeOutFile "$1" $2 -} - -# match and return the output from the regexp $1 in the debuggee output -# $2 is the number of lines to search (from the end) -debuggeeMatchRegexp() -{ - matchRegexp $debuggeeOutFile "$1" $2 -} - - -# This should really be named 'done' instead of pass. -pass() -{ - if [ ! -r "$failFile" ] ; then - echo - echo "--Done: test passed" - exit 0 - else - ls -l "$failFile" >&2 - echo "" >&2 - cat "$failFile" >&2 - echo "" >&2 - fi -} - -runit() -{ - setup - docompile - startJdb - startDebuggee - waitForFinish - - # in hs_err file from 1.3.1 - debuggeeFailIfPresent "Virtual Machine Error" - - # in hs_err file from 1.4.2, 1.5: An unexpected error - debuggeeFailIfPresent "An unexpected error" - - # in hs_err file from 1.4.2, 1.5: Internal error - debuggeeFailIfPresent "Internal error" - - - # Don't know how this arises - debuggeeFailIfPresent "An unexpected exception" - - # Don't know how this arises - debuggeeFailIfPresent "Internal exception" -} diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/com/sun/jdi/TestScaffold.java --- a/test/jdk/com/sun/jdi/TestScaffold.java Thu Oct 11 16:41:13 2018 +0200 +++ b/test/jdk/com/sun/jdi/TestScaffold.java Thu Oct 11 09:20:07 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2013, 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 @@ -784,9 +784,16 @@ } public BreakpointEvent resumeTo(Location loc) { + return resumeTo(loc, false); + } + + public BreakpointEvent resumeTo(Location loc, boolean suspendThread) { final BreakpointRequest request = - requestManager.createBreakpointRequest(loc); + requestManager.createBreakpointRequest(loc); request.addCountFilter(1); + if (suspendThread) { + request.setSuspendPolicy(EventRequest.SUSPEND_EVENT_THREAD); + } request.enable(); return (BreakpointEvent)waitForRequestedEvent(request); } @@ -845,12 +852,16 @@ } public BreakpointEvent resumeTo(String clsName, int lineNumber) throws AbsentInformationException { + return resumeTo(clsName, lineNumber, false); + } + + public BreakpointEvent resumeTo(String clsName, int lineNumber, boolean suspendThread) throws AbsentInformationException { ReferenceType rt = findReferenceType(clsName); if (rt == null) { rt = resumeToPrepareOf(clsName).referenceType(); } - return resumeTo(findLocation(rt, lineNumber)); + return resumeTo(findLocation(rt, lineNumber), suspendThread); } public ClassPrepareEvent resumeToPrepareOf(String className) { diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/com/sun/jdi/ZZZcleanup.sh --- a/test/jdk/com/sun/jdi/ZZZcleanup.sh Thu Oct 11 16:41:13 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -#!/bin/sh - -# -# Copyright (c) 2002, 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 1234567 -# @summary no bug -# @author Jim Holmlund -# -# @run shell ZZZcleanup.sh - -# This is run by jtreg after all other tests in -# this dir have run. It kills any orphan -# processes that have been left. -# If you can figure out a better way, let me know - -mysetup() -{ - if [ -z "$TESTSRC" ] ; then - TESTSRC=. - fi - - for ii in . $TESTSRC $TESTSRC/.. ; do - if [ -r "$ii/ShellScaffold.sh" ] ; then - . $ii/ShellScaffold.sh - break - fi - done -} - -# You could replace this next line with the contents -# of ShellScaffold.sh and this script will run just the same. -mysetup -setup -pass diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/com/sun/jdi/lib/jdb/JdbTest.java --- a/test/jdk/com/sun/jdi/lib/jdb/JdbTest.java Thu Oct 11 16:41:13 2018 +0200 +++ b/test/jdk/com/sun/jdi/lib/jdb/JdbTest.java Thu Oct 11 09:20:07 2018 -0700 @@ -238,7 +238,7 @@ } // gets full test source path for the given test filename - protected static String getTestSourcePath(String fileName) { + public static String getTestSourcePath(String fileName) { return Paths.get(System.getProperty("test.src")).resolve(fileName).toString(); } diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/java/lang/System/AllowSecurityManager.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jdk/java/lang/System/AllowSecurityManager.java Thu Oct 11 09:20:07 2018 -0700 @@ -0,0 +1,53 @@ +/* + * 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 8191053 + * @summary Test that the allow/disallow options of the java.security.manager + * system property work correctly + * @run main/othervm AllowSecurityManager + * @run main/othervm -Djava.security.manager=disallow AllowSecurityManager + * @run main/othervm -Djava.security.manager=allow AllowSecurityManager + */ + +public class AllowSecurityManager { + + public static void main(String args[]) throws Exception { + String prop = System.getProperty("java.security.manager"); + boolean disallow = "disallow".equals(prop); + try { + System.setSecurityManager(new SecurityManager()); + if (disallow) { + throw new Exception("System.setSecurityManager did not " + + "throw UnsupportedOperationException"); + } + } catch (UnsupportedOperationException uoe) { + if (!disallow) { + throw new Exception("UnsupportedOperationException " + + "unexpectedly thrown by " + + "System.setSecurityManager"); + } + } + } +} diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/java/lang/annotation/typeAnnotations/TestObjectMethods.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/jdk/java/lang/annotation/typeAnnotations/TestObjectMethods.java Thu Oct 11 09:20:07 2018 -0700 @@ -0,0 +1,314 @@ +/* + * 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 8058202 + * @summary Test java.lang.Object methods on AnnotatedType objects. + */ + +import java.lang.annotation.*; +import java.lang.reflect.*; +import java.util.*; + +/** + * Test toString, equals, and hashCode on various AnnotatedType objects. + */ +public class TestObjectMethods { + private static int errors = 0; + + /* + * There are various subtypes of AnnotatedType implementations: + * + * AnnotatedType + * AnnotatedArrayType + * AnnotatedParameterizedType + * AnnotatedTypeVariable + * AnnotatedWildcardType + * + * The implementations of each these implementations are + * examined. Wildcards don't appear as top-level types and need to + * be extracted from bounds. + * + * AnnotatedTypes with and without annotations are examined as + * well. + */ + public static void main(String... args) { + Class[] testClasses = {TypeHost.class, AnnotatedTypeHost.class}; + + for (Class clazz : testClasses) { + testEqualsReflexivity(clazz); + testEquals(clazz); + } + + testToString(TypeHost.class, false); + testToString(AnnotatedTypeHost.class, true); + + testAnnotationsMatterForEquals(TypeHost.class, AnnotatedTypeHost.class); + + testGetAnnotations(TypeHost.class, false); + testGetAnnotations(AnnotatedTypeHost.class, true); + + testWildcards(); + + if (errors > 0) { + throw new RuntimeException(errors + " errors"); + } + } + + /* + * For non-array types, verify toString version of the annotated + * type ends with the same string as the generic type. + */ + static void testToString(Class clazz, boolean leadingAnnotations) { + System.err.println("Testing toString on methods of class " + clazz.getName()); + Method[] methods = clazz.getDeclaredMethods(); + for (Method m : methods) { + AnnotatedType annotType = m.getAnnotatedReturnType(); + String annotTypeString = annotType.toString(); + + Type type = m.getGenericReturnType(); + String typeString = type.toString(); + + boolean isArray = annotType instanceof AnnotatedArrayType; + boolean isVoid = "void".equals(typeString); + + boolean valid; + if (!isArray) { + if (leadingAnnotations && !isVoid) { + valid = + annotTypeString.endsWith(typeString) && + !annotTypeString.startsWith(typeString); + } else { + valid = annotTypeString.equals(typeString); + } + } else { + // Find final non-array component type and gets its name. + typeString = null; + + AnnotatedType componentType = annotType; + while (componentType instanceof AnnotatedArrayType) { + AnnotatedArrayType annotatedArrayType = (AnnotatedArrayType) componentType; + componentType = annotatedArrayType.getAnnotatedGenericComponentType(); + } + + String componentName = componentType.getType().getTypeName(); + valid = annotTypeString.contains(componentName); + } + + if (!valid) { + errors++; + System.err.println(typeString + "\n" + annotTypeString + + "\n " + valid + + "\n\n"); + } + } + } + + static void testGetAnnotations(Class clazz, boolean annotationsExpectedOnMethods) { + System.err.println("Testing getAnnotations on methods of class " + clazz.getName()); + Method[] methods = clazz.getDeclaredMethods(); + for (Method m : methods) { + Type type = m.getGenericReturnType(); + AnnotatedType annotType = m.getAnnotatedReturnType(); + Annotation[] annotations = annotType.getAnnotations(); + + boolean isVoid = "void".equals(type.toString()); + + if (annotationsExpectedOnMethods && !isVoid) { + if (annotations.length == 0 ) { + errors++; + System.err.println("Expected annotations missing on " + annotType); + } + } else { + if (annotations.length > 0 ) { + errors++; + System.err.println("Unexpected annotations present on " + annotType); + } + } + } + } + + static void testEqualsReflexivity(Class clazz) { + System.err.println("Testing reflexivity of equals on methods of class " + clazz.getName()); + Method[] methods = clazz.getDeclaredMethods(); + for (Method m : methods) { + checkTypesForEquality(m.getAnnotatedReturnType(), + m.getAnnotatedReturnType(), + true); + } + } + + private static void checkTypesForEquality(AnnotatedType annotType1, + AnnotatedType annotType2, + boolean expected) { + boolean comparison = annotType1.equals(annotType2); + + if (comparison) { + int hash1 = annotType1.hashCode(); + int hash2 = annotType2.hashCode(); + if (hash1 != hash2) { + errors++; + System.err.format("Equal AnnotatedTypes with unequal hash codes: %n%s%n%s%n", + annotType1.toString(), annotType2.toString()); + } + } + + if (comparison != expected) { + errors++; + System.err.println(annotType1); + System.err.println(expected ? " is not equal to " : " is equal to "); + System.err.println(annotType2); + System.err.println(); + } + } + + /* + * For each of the type host classes, the return type of a method + * should only equal the return type of that method. + */ + static void testEquals(Class clazz) { + Method[] methods = clazz.getDeclaredMethods(); + + for (int i = 0; i < methods.length; i++) { + for (int j = 0; j < methods.length; j++) { + if (i == j) + continue; + else { + checkTypesForEquality(methods[i].getAnnotatedReturnType(), + methods[j].getAnnotatedReturnType(), + false); + } + } + } + } + + /** + * Roughly, compare the return types of corresponding methods on + * TypeHost and AnnotatedtypeHost and verify the AnnotatedType + * objects are *not* equal even if their underlying generic types + * are. + */ + static void testAnnotationsMatterForEquals(Class clazz1, Class clazz2) { + System.err.println("Testing that presence/absence of annotations matters for equals comparison."); + + String methodName = null; + for (Method method : clazz1.getDeclaredMethods()) { + if ("void".equals(method.getReturnType().toString())) { + continue; + } + + methodName = method.getName(); + try { + checkTypesForEquality(method.getAnnotatedReturnType(), + clazz2.getDeclaredMethod(methodName).getAnnotatedReturnType(), + false); + } catch (Exception e) { + errors++; + System.err.println("Method " + methodName + " not found."); + } + } + } + + + static void testWildcards() { + System.err.println("Testing wildcards"); + // public @AnnotType(10) Set fooNumberSet() {return null;} + // public @AnnotType(11) Set<@AnnotType(13) ? extends Number> fooNumberSet2() {return null;} + AnnotatedWildcardType awt1 = extractWildcard("fooNumberSet"); + AnnotatedWildcardType awt2 = extractWildcard("fooNumberSet2"); + + if (!awt1.equals(extractWildcard("fooNumberSet")) || + !awt2.equals(extractWildcard("fooNumberSet2"))) { + errors++; + System.err.println("Bad equality comparison on wildcards."); + } + + checkTypesForEquality(awt1, awt2, false); + + if (awt2.getAnnotations().length == 0) { + errors++; + System.err.println("Expected annotations not found."); + } + } + + private static AnnotatedWildcardType extractWildcard(String methodName) { + try { + return (AnnotatedWildcardType) + (((AnnotatedParameterizedType)(AnnotatedTypeHost.class.getMethod(methodName). + getAnnotatedReturnType())). + getAnnotatedActualTypeArguments()[0] ); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + // The TypeHost and AnnotatedTypeHost classes declare methods with + // the same name and signatures but with the AnnotatedTypeHost + // methods having annotations on their return type, where + // possible. + + static class TypeHost { + public void fooVoid() {return;} + + public int foo() {return 0;} + public String fooString() {return null;} + + public int[] fooIntArray() {return null;} + public String[] fooStringArray() {return null;} + public String [][] fooStringArrayArray() {return null;} + + public Set fooSetString() {return null;} + public E fooE() {return null;} + public F fooF() {return null;} + public G fooG() {return null;} + + public Set fooNumberSet() {return null;} + public Set fooNumberSet2() {return null;} + } + + @Retention(RetentionPolicy.RUNTIME) + @Target(ElementType.TYPE_USE) + static @interface AnnotType { + int value() default 0; + } + + static class AnnotatedTypeHost { + public /*@AnnotType(0)*/ void fooVoid() {return;} // Illegal to annotate void + + public @AnnotType(1) int foo() {return 0;} + public @AnnotType(2) String fooString() {return null;} + + public int @AnnotType(3) [] fooIntArray() {return null;} + public String @AnnotType(4) [] fooStringArray() {return null;} + public @AnnotType(5) String @AnnotType(0) [] @AnnotType(1) [] fooStringArrayArray() {return null;} + + public @AnnotType(6) Set fooSetString() {return null;} + public @AnnotType(7) E fooE() {return null;} + public @AnnotType(8) F fooF() {return null;} + public @AnnotType(9) G fooG() {return null;} + + public @AnnotType(10) Set fooNumberSet() {return null;} + public @AnnotType(11) Set<@AnnotType(13) ? extends Number> fooNumberSet2() {return null;} + } +} diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/java/net/BindException/Test.java --- a/test/jdk/java/net/BindException/Test.java Thu Oct 11 16:41:13 2018 +0200 +++ b/test/jdk/java/net/BindException/Test.java Thu Oct 11 09:20:07 2018 -0700 @@ -26,9 +26,15 @@ * @bug 4417734 * @key intermittent * @summary Test that we get a BindException in all expected combinations + * @library /test/lib + * @build jdk.test.lib.NetworkConfiguration + * jdk.test.lib.Platform + * @run main Test -d */ + import java.net.*; import java.util.Enumeration; +import jdk.test.lib.NetworkConfiguration; public class Test { @@ -106,6 +112,7 @@ } catch (BindException be) { gotBindException = true; + failed_exc = be; } catch (Exception e) { failed = true; failed_exc = e; @@ -152,6 +159,7 @@ if (!failed) { if (gotBindException) { System.out.println("Got expected BindException - test passed!"); + failed_exc.printStackTrace(System.out); } else { System.out.println("No BindException as expected - test passed!"); } @@ -160,6 +168,7 @@ } if (gotBindException) { System.out.println("BindException unexpected - test failed!!!"); + failed_exc.printStackTrace(System.out); } else { System.out.println("No bind failure as expected - test failed!!!"); } @@ -206,6 +215,11 @@ */ InetAddress addrs[] = { ia4_this, ia6_this }; + if (!silent) { + System.out.println("Using ia4_this:" + ia4_this); + System.out.println("Using ia6_this:" + ia6_this); + } + Object tests[][] = getTestCombinations(); for (int i=0; i 0) { + System.err.println("********************************"); + NetworkConfiguration.printSystemConfiguration(System.err); + System.out.println("********************************"); throw new Exception(failures + " tests(s) failed - see log"); } } diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/lib/security/CheckBlacklistedCerts.java --- a/test/jdk/lib/security/CheckBlacklistedCerts.java Thu Oct 11 16:41:13 2018 +0200 +++ b/test/jdk/lib/security/CheckBlacklistedCerts.java Thu Oct 11 09:20:07 2018 -0700 @@ -23,7 +23,7 @@ /* * @test - * @bug 8011402 + * @bug 8011402 8211969 * @summary Move blacklisting certificate logic from hard code to data * @modules java.base/sun.security.util */ @@ -60,38 +60,20 @@ Set blacklisted = new HashSet<>(); // Assumes the full src is available - File[] blacklists = { - new File(System.getProperty("test.src"), - "../../../make/data/blacklistedcertsconverter/blacklisted.certs.pem"), - new File(System.getProperty("test.src"), - "../../../make/closed/data/blacklistedcertsconverter/blacklisted.certs.pem") - }; - - // Is this an OPENJDK build? - String prop = System.getProperty("java.runtime.name"); - if (prop != null && prop.startsWith("OpenJDK")) { - System.out.println("This is a OpenJDK build."); - blacklists = Arrays.copyOf(blacklists, 1); - } + File blacklist = new File(System.getProperty("test.src"), + "../../../../make/data/blacklistedcertsconverter/blacklisted.certs.pem"); CertificateFactory cf = CertificateFactory.getInstance("X.509"); - for (File blacklist: blacklists) { - System.out.print("Check for " + blacklist + ": "); - if (!blacklist.exists()) { - System.out.println("does not exist"); - } else { - try (FileInputStream fis = new FileInputStream(blacklist)) { - Collection certs - = cf.generateCertificates(fis); - System.out.println(certs.size()); - for (Certificate c: certs) { - blacklisted.add(c); - X509Certificate cert = ((X509Certificate)c); - if (!UntrustedCertificates.isUntrusted(cert)) { - System.out.println(cert.getSubjectDN() + " is trusted"); - failed = true; - } - } + try (FileInputStream fis = new FileInputStream(blacklist)) { + Collection certs + = cf.generateCertificates(fis); + System.out.println(certs.size()); + for (Certificate c: certs) { + blacklisted.add(c); + X509Certificate cert = ((X509Certificate)c); + if (!UntrustedCertificates.isUntrusted(cert)) { + System.out.println(cert.getSubjectDN() + " is trusted"); + failed = true; } } } diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/sanity/client/SwingSet/src/DialogDemoTest.java --- a/test/jdk/sanity/client/SwingSet/src/DialogDemoTest.java Thu Oct 11 16:41:13 2018 +0200 +++ b/test/jdk/sanity/client/SwingSet/src/DialogDemoTest.java Thu Oct 11 09:20:07 2018 -0700 @@ -1,6 +1,6 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * 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 @@ -27,6 +27,7 @@ import java.awt.Dimension; import java.awt.Point; import javax.swing.JDialog; +import javax.swing.UIManager; import static org.testng.AssertJUnit.*; import org.testng.annotations.Test; import static org.jemmy2ext.JemmyExt.isIconified; @@ -61,8 +62,9 @@ private final ComponentChooser jDialogClassChooser = new ByClassChooser(JDialog.class); - @Test - public void test() throws Exception { + @Test(dataProvider = "availableLookAndFeels", dataProviderClass = TestHelpers.class) + public void test(String lookAndFeel) throws Exception { + UIManager.setLookAndFeel(lookAndFeel); new ClassReference(DialogDemo.class.getCanonicalName()).startApplication(); JFrameOperator mainFrame = new JFrameOperator(DIALOG_DEMO_TITLE); JDialogOperator dialog = new JDialogOperator(DIALOG_TITLE); diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/sanity/client/SwingSet/src/SwingSet2DemoTest.java --- a/test/jdk/sanity/client/SwingSet/src/SwingSet2DemoTest.java Thu Oct 11 16:41:13 2018 +0200 +++ b/test/jdk/sanity/client/SwingSet/src/SwingSet2DemoTest.java Thu Oct 11 09:20:07 2018 -0700 @@ -27,6 +27,7 @@ import javax.swing.JCheckBoxMenuItem; import javax.swing.JRadioButtonMenuItem; import javax.swing.ToolTipManager; +import javax.swing.UIManager; import javax.swing.plaf.metal.MetalLookAndFeel; import org.jtregext.GuiTestListener; @@ -58,7 +59,7 @@ * java.logging * @build org.jemmy2ext.JemmyExt * @build SwingSet2 - * @run testng SwingSet2DemoTest + * @run testng/timeout=600 SwingSet2DemoTest */ @Listeners(GuiTestListener.class) public class SwingSet2DemoTest { @@ -74,8 +75,9 @@ * * @throws Exception */ - @Test - public void test() throws Exception { + @Test(dataProvider = "availableLookAndFeels", dataProviderClass = TestHelpers.class) + public void test(String lookAndFeel) throws Exception { + UIManager.setLookAndFeel(lookAndFeel); new ClassReference(SwingSet2.class.getCanonicalName()).startApplication(); JFrameOperator frameOperator = new JFrameOperator(SwingSet2.FRAME_TITLE); @@ -192,4 +194,4 @@ } } -} \ No newline at end of file +} diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/sanity/client/SwingSet/src/WindowDemoTest.java --- a/test/jdk/sanity/client/SwingSet/src/WindowDemoTest.java Thu Oct 11 16:41:13 2018 +0200 +++ b/test/jdk/sanity/client/SwingSet/src/WindowDemoTest.java Thu Oct 11 09:20:07 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 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 @@ -26,6 +26,7 @@ import static com.sun.swingset3.demos.window.WindowDemo.*; import static org.jemmy2ext.JemmyExt.*; import static org.testng.AssertJUnit.*; +import javax.swing.UIManager; import org.testng.annotations.Test; import org.netbeans.jemmy.ClassReference; import org.netbeans.jemmy.operators.JButtonOperator; @@ -53,8 +54,9 @@ @Listeners(GuiTestListener.class) public class WindowDemoTest { - @Test - public void test() throws Exception { + @Test(dataProvider = "availableLookAndFeels", dataProviderClass = TestHelpers.class) + public void test(String lookAndFeel) throws Exception { + UIManager.setLookAndFeel(lookAndFeel); new ClassReference(WindowDemo.class.getCanonicalName()).startApplication(); diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/sanity/client/lib/Extensions/src/org/jemmy2ext/JemmyExt.java --- a/test/jdk/sanity/client/lib/Extensions/src/org/jemmy2ext/JemmyExt.java Thu Oct 11 16:41:13 2018 +0200 +++ b/test/jdk/sanity/client/lib/Extensions/src/org/jemmy2ext/JemmyExt.java Thu Oct 11 09:20:07 2018 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, 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 @@ -406,7 +406,7 @@ Window[] windows = Window.getWindows(); int windowCount = 0; for (Window w : windows) { - if (w.getClass().equals(JWindow.class)) { + if (w.getClass().equals(JWindow.class) && ((JWindow)w).isShowing()) { windowCount++; } } @@ -427,7 +427,7 @@ Window[] windows = Window.getWindows(); int windowIndex = 0; for (Window w : windows) { - if (w.getClass().equals(JWindow.class)) { + if (w.getClass().equals(JWindow.class) && ((JWindow)w).isShowing()) { if (windowIndex == index) { return (JWindow) w; } @@ -565,7 +565,7 @@ @Override public boolean checkComponent(Component comp) { - return comp.getClass().equals(clazz); + return comp.getClass().equals(clazz) && comp.isShowing(); } @Override diff -r 2ea07b19b446 -r 4762fcec08d4 test/jdk/sanity/client/lib/SwingSet2/src/SwingSet2.java --- a/test/jdk/sanity/client/lib/SwingSet2/src/SwingSet2.java Thu Oct 11 16:41:13 2018 +0200 +++ b/test/jdk/sanity/client/lib/SwingSet2/src/SwingSet2.java Thu Oct 11 09:20:07 2018 -0700 @@ -323,8 +323,6 @@ "FileMenu.exit_accessible_description", new ExitAction(this) ); - // Create these menu items for the first SwingSet only. - if (numSSs == 0) { // ***** create laf switcher menu lafMenu = (JMenu) menuBar.add(new JMenu(getString("LafMenu.laf_label"))); lafMenu.setMnemonic(getMnemonic("LafMenu.laf_mnemonic")); @@ -432,7 +430,6 @@ "OptionsMenu.dragEnabled_mnemonic", "OptionsMenu.dragEnabled_accessible_description", new DragSupportAction()); - } // ***** create the multiscreen menu, if we have multiple screens GraphicsDevice[] screens = GraphicsEnvironment. @@ -1258,4 +1255,4 @@ return className; } } -} \ No newline at end of file +}