8208399: Metadata methods print_(value_)on_maybe_null() compare 'this' to NULL
authorhseigel
Tue, 31 Jul 2018 09:55:09 -0400
changeset 51265 8329bfbe1b30
parent 51264 cf34c71ca27c
child 51266 f8696e0ab9b7
8208399: Metadata methods print_(value_)on_maybe_null() compare 'this' to NULL Summary: Add Method* parameter and make method static to avoid 'this' comparison with NULL Reviewed-by: lfoltan, gziemski, coleenp
src/hotspot/share/code/nmethod.cpp
src/hotspot/share/oops/instanceKlass.cpp
src/hotspot/share/oops/metadata.hpp
--- a/src/hotspot/share/code/nmethod.cpp	Tue Jul 31 07:35:16 2018 -0400
+++ b/src/hotspot/share/code/nmethod.cpp	Tue Jul 31 09:55:09 2018 -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();
   }
--- a/src/hotspot/share/oops/instanceKlass.cpp	Tue Jul 31 07:35:16 2018 -0400
+++ b/src/hotspot/share/oops/instanceKlass.cpp	Tue Jul 31 09:55:09 2018 -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*>* 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));
--- a/src/hotspot/share/oops/metadata.hpp	Tue Jul 31 07:35:16 2018 -0400
+++ b/src/hotspot/share/oops/metadata.hpp	Tue Jul 31 09:55:09 2018 -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 (NULL == m)
       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