--- old/src/hotspot/share/code/nmethod.cpp 2018-07-27 11:49:56.991195485 -0400 +++ new/src/hotspot/share/code/nmethod.cpp 2018-07-27 11:49:56.582088181 -0400 @@ -2346,7 +2346,7 @@ if (m == (Metadata*)Universe::non_oop_word()) { tty->print("non-metadata word"); } else { - m->print_value_on_maybe_null(tty); + Metadata::print_value_on_maybe_null(tty, m); } tty->cr(); } --- old/src/hotspot/share/oops/instanceKlass.cpp 2018-07-27 11:49:58.187568927 -0400 +++ new/src/hotspot/share/oops/instanceKlass.cpp 2018-07-27 11:49:57.776942353 -0400 @@ -3072,7 +3072,7 @@ st->print(BULLET"access: "); access_flags().print_on(st); st->cr(); st->print(BULLET"state: "); st->print_cr("%s", state_names[_init_state]); st->print(BULLET"name: "); name()->print_value_on(st); st->cr(); - st->print(BULLET"super: "); super()->print_value_on_maybe_null(st); st->cr(); + st->print(BULLET"super: "); Metadata::print_value_on_maybe_null(st, super()); st->cr(); st->print(BULLET"sub: "); Klass* sub = subklass(); int n; @@ -3095,7 +3095,7 @@ } } - st->print(BULLET"arrays: "); array_klasses()->print_value_on_maybe_null(st); st->cr(); + st->print(BULLET"arrays: "); Metadata::print_value_on_maybe_null(st, array_klasses()); st->cr(); st->print(BULLET"methods: "); methods()->print_value_on(st); st->cr(); if (Verbose || WizardMode) { Array* method_array = methods(); @@ -3122,7 +3122,7 @@ class_loader_data()->print_value_on(st); st->cr(); } - st->print(BULLET"host class: "); host_klass()->print_value_on_maybe_null(st); st->cr(); + st->print(BULLET"host class: "); Metadata::print_value_on_maybe_null(st, host_klass()); st->cr(); if (source_file_name() != NULL) { st->print(BULLET"source file: "); source_file_name()->print_value_on(st); @@ -3229,11 +3229,11 @@ st->cr(); Klass* mirrored_klass = java_lang_Class::as_Klass(obj); st->print(BULLET"fake entry for mirror: "); - mirrored_klass->print_value_on_maybe_null(st); + Metadata::print_value_on_maybe_null(st, mirrored_klass); st->cr(); Klass* array_klass = java_lang_Class::array_klass_acquire(obj); st->print(BULLET"fake entry for array: "); - array_klass->print_value_on_maybe_null(st); + Metadata::print_value_on_maybe_null(st, array_klass); st->cr(); st->print_cr(BULLET"fake entry for oop_size: %d", java_lang_Class::oop_size(obj)); st->print_cr(BULLET"fake entry for static_oop_field_count: %d", java_lang_Class::static_oop_field_count(obj)); --- old/src/hotspot/share/oops/metadata.hpp 2018-07-27 11:49:59.417840556 -0400 +++ new/src/hotspot/share/oops/metadata.hpp 2018-07-27 11:49:59.009728162 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2014, 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 @@ -56,18 +56,11 @@ void print() const { print_on(tty); } void print_value() const { print_value_on(tty); } - void print_maybe_null() const { print_on_maybe_null(tty); } - void print_on_maybe_null(outputStream* st) const { - if (this == NULL) + static void print_value_on_maybe_null(outputStream* st, const Metadata* m) { + if (m == NULL) st->print("NULL"); else - print_on(st); - } - void print_value_on_maybe_null(outputStream* st) const { - if (this == NULL) - st->print("NULL"); - else - print_value_on(st); + m->print_value_on(st); } virtual void print_on(outputStream* st) const; // First level print