RFR (M) 8140802 - Clean up and refactor of class loading code for CDS

Ioi Lam ioi.lam at oracle.com
Mon Nov 2 18:36:28 UTC 2015


On 10/30/15 12:44 PM, Coleen Phillimore wrote:
>
> Hi Ioi,
> This is a manageable code change.
>
> http://cr.openjdk.java.net/~iklam/8140802-cds-refactoring.v01/hotspot/src/share/vm/classfile/classListParser.hpp.html
>
> You forward declare Klass* but don't use it in this header file.
> Also can you add a comment to #endif  to say what it's endifing. ie. 
> // SHARE_VM_MEMORY_CLASSLISTPARSER_HPP
>
Fixed.

I also changed ClassListParser to a StackObj as you suggested in another 
e-mail to me.

> http://cr.openjdk.java.net/~iklam/8140802-cds-refactoring.v01/hotspot/src/share/vm/classfile/classLoaderExt.cpp.html
>    33   TempNewSymbol class_name_symbol = SymbolTable::new_permanent_symbol(parser->current_class_name(), THREAD);
> This doesn't make sense.   If you want a permanent symbol, it doesn't 
> need to get un-reference counted with the TempNewSymbol destructor.

I changed it to

   TempNewSymbol class_name_symbol = 
SymbolTable::new_symbol(parser->current_class_name(), THREAD);

>
> http://cr.openjdk.java.net/~iklam/8140802-cds-refactoring.v01/hotspot/src/share/vm/classfile/systemDictionary.cpp.udiff.html
>
> +    // Make sure we have an entry in the SystemDictionary on success
I will actually remove this block of code in the next update to make 
things simpler.

> This assert code is a copy of some code elsewhere.  Can you make it a 
> function that they boh can call?
> Can you also comment the raw #endif's to what they're endifing?
>
Will do.

Thanks

> Otherwise, this looks okay.
>
> Coleen
>
>
> On 10/30/15 1:00 PM, Ioi Lam wrote:
>> Please review the following fix:
>>
>> http://cr.openjdk.java.net/~iklam/8140802-cds-refactoring.v01/
>>
>> Bug: Clean up and refactor of class loading code for CDS
>>
>> https://bugs.openjdk.java.net/browse/JDK-8140802
>>
>> Summary of fix:
>>
>>     We need to clean up and refactor the class loading code in order
>>     to support CDS in JDK9
>>
>>     [1] Remove code that has been made obsolete by the module changes
>>         (such as supporting code used for meta-index file)
>>     [2] Add new whitebox API to be used by CDS-related tests.
>>     [3] Refactor the parsing of classlist files for future enhancements.
>>     [4] Add new APIs in the class loading code to support Oracle CDS 
>> enhancements.
>>
>> Tests:
>>
>>     JPRT
>>     RBT - with same set of tests as hs-rt nightly
>>
>> Thanks
>> - Ioi
>




More information about the core-libs-dev mailing list