diff --git a/src/hotspot/share/classfile/placeholders.hpp b/src/hotspot/share/classfile/placeholders.hpp index 4e05136e00b..c44e3897b39 100644 --- a/src/hotspot/share/classfile/placeholders.hpp +++ b/src/hotspot/share/classfile/placeholders.hpp @@ -105,9 +105,11 @@ class PlaceholderEntry { Symbol* supername() const { return _supername; } void set_supername(Symbol* supername) { - Symbol::maybe_decrement_refcount(_supername); - _supername = supername; - Symbol::maybe_increment_refcount(_supername); + if (supername != _supername) { + Symbol::maybe_decrement_refcount(_supername); + _supername = supername; + Symbol::maybe_increment_refcount(_supername); + } } void clear_supername() { Symbol::maybe_decrement_refcount(_supername);