RFR(S): 8007772: G1: assert(!hr->isHumongous() || mr.start() == hr->bottom()) failed: the start of HeapRegion and MemRegion should be consistent for humongous regions

John Cuthbertson john.cuthbertson at oracle.com
Mon Feb 11 22:35:21 UTC 2013


Hi Jesper,

On 2/11/2013 12:51 PM, Jesper Wilhelmsson wrote:
> I guess it's a matter of taste, to me it is a lot clearer. But sure, 
> it takes a second look at the code to see that short-circuiting 
> matters here.
>
> The version with code duplication is a bit confusing to me and 
> requires a second look to see that there is no difference between the 
> different clauses in the if/else if.
>
> I would argue that for someone who is new to the code, the 
> non-duplicated code would be easier to get familiar with due to (at a 
> first glance) less complicated code. And you don't have to know that 
> the short-circuiting is necessary until you know the code well enough 
> to realize that it is necessary, if you see what I mean.
>
> We could also add a comment :-)
> /Jesper
>

We could argue but I don't think that you will convince me that your 
suggestion is clearer. I first read the code the same way as Bengt and 
was going to make a similar comment as his until an "Aha!" moment and I 
saw the short-circuit. Reading the code incorrectly has biased me. :)

Thanks,

JohnC



More information about the hotspot-gc-dev mailing list