RFR: 8260250: Duplicate check in DebugInformationRecorder::recorders_frozen

Igor Veresov iveresov at openjdk.java.net
Fri Jan 22 01:47:28 UTC 2021


On Thu, 21 Jan 2021 18:43:26 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

> SonarCloud instance reports the bug here:
>   Identical sub-expressions on both sides of operator "||".
> 
> bool DebugInformationRecorder::recorders_frozen() {
>   return _oop_recorder->is_complete() || _oop_recorder->is_complete();
> }
> 
> It seems to be this way since JDK-6964458. I don't see why it is this way. I think the intent was to check and freeze these two recorders:
> 
> class OopRecorder : public ResourceObj {
>  private:
>   ValueRecorder<jobject> _oops;
>   ValueRecorder<Metadata*> _metadata;
> 
> ...but they are in `OopRecorder` already, and so we already get what we want with a single call:
> 
> #ifdef ASSERT
>   bool is_complete() {
>     assert(_oops.is_complete() == _metadata.is_complete(), "must agree");
>     return _oops.is_complete();
>   }
> #endif

Marked as reviewed by iveresov (Reviewer).

-------------

PR: https://git.openjdk.java.net/jdk/pull/2187


More information about the hotspot-compiler-dev mailing list