[9] RFR (S): 8157181: Compilers accept modification of final fields outside initializer methods

Zoltán Majó zoltan.majo at oracle.com
Fri Jun 10 17:40:32 UTC 2016


Hi Vladimir,


On 06/10/2016 06:05 PM, Vladimir Ivanov wrote:
>
>> Please note an additional small change in rewriter.cpp:
>>
>> +if (!reverse) {
>> // Check if any final field of the class given as parameter is modified
>> // outside of initializer methods of the class. Fields that are modified
>>    ...
>> +}
>>
>> It's sufficient to check fields during rewriting (i.e., we're coming
>> from Rewriter::rewrite_bytecodes()). We do not need to do the checks if
>> the class has already been rewritten but we're reversing changes due to
>> some failure that appeared during rewriting (in that case scan_method()
>> is called from Rewriter::restore_bytecodes()).
>
> Ok.
>
>> Here is the updated webrev:
>> http://cr.openjdk.java.net/~zmajo/8157181/webrev.11/
>
> Looks good.
>
> src/share/vm/runtime/globals.hpp
>
> +          "for classfile version >= 51")
>
> s/51/53/ (no need to send new webrev).

OK, I've corrected the code in-situ (in webrev.11). I also have the JPRT 
results now, all tests pass.

Thank you!

Best regards,


Zoltan



>
> Best regards,
> Vladimir Ivanov



More information about the hotspot-compiler-dev mailing list