--- old/src/hotspot/share/ci/ciMethod.cpp 2019-04-24 13:35:45.000000000 -0700 +++ new/src/hotspot/share/ci/ciMethod.cpp 2019-04-24 13:35:44.000000000 -0700 @@ -952,10 +952,21 @@ } // ------------------------------------------------------------------ -// ciMethod::is_object_initializer +// ciMethod::is_object_constructor // -bool ciMethod::is_object_initializer() const { - return name() == ciSymbol::object_initializer_name(); +bool ciMethod::is_object_constructor() const { + return (name() == ciSymbol::object_initializer_name() + && signature()->return_type()->is_void()); + // Note: We can't test is_static, because that would + // require the method to be loaded. Sometimes it isn't. +} + +// ------------------------------------------------------------------ +// ciMethod::is_static_init_factory +// +bool ciMethod::is_static_init_factory() const { + return (name() == ciSymbol::object_initializer_name() + && !signature()->return_type()->is_void()); } // ------------------------------------------------------------------ @@ -1275,7 +1286,7 @@ bool ciMethod::is_getter () const { FETCH_FLAG_FROM_VM(is_getter); } bool ciMethod::is_setter () const { FETCH_FLAG_FROM_VM(is_setter); } bool ciMethod::is_accessor () const { FETCH_FLAG_FROM_VM(is_accessor); } -bool ciMethod::is_initializer () const { FETCH_FLAG_FROM_VM(is_initializer); } +bool ciMethod::is_object_constructor_or_class_initializer() const { FETCH_FLAG_FROM_VM(is_object_constructor_or_class_initializer); } bool ciMethod::is_boxing_method() const { if (holder()->is_box_klass()) {