RFR 8209645: Split ClassLoaderData and ClassLoaderDataGraph into separate files
Thomas Stüfe
thomas.stuefe at gmail.com
Thu Sep 27 21:23:00 UTC 2018
On Thu, Sep 27, 2018 at 11:09 PM, <coleen.phillimore at oracle.com> wrote:
>
>
> On 9/27/18 4:31 PM, Thomas Stüfe wrote:
>>
>> Hi Coleen,
>>
>> this looks good (not an easy patch to review, but I think all that
>> code just moved without changing).
>>
>> Are all includes in the new classLoaderDataGraph.cpp really needed ? I
>> found e.g. no reference to SymbolTable, so I am not sure
>> symbolTable.hpp is needed. I may be off though.
>
>
> When I did this origially, I tried to minimize #includes, but I'll see if
> there's any I can remove.
> Yes, I can remove systemDictionary.hpp and symbolTable.hpp.
>
>>
>> Does ClassLoaderDataGraphMetaspaceIterator have to be implemented
>> fully in a header (classLoaderDataGraph.hpp)? But this preceedes your
>> change.
>
> from grep:
> memory/metaspace.cpp: ClassLoaderDataGraphMetaspaceIterator iter;
>
Sorry, I was not clear. What I oringally meant was whether the
implementations of ClassLoaderDataGraphMetaspaceIterator methods have
to be inline or can be moved to a cpp file, in order to get rid of
"#include metaspace.hpp" in classLoaderDataGraph.hpp.
However, I did not think this thru. In classLoaderDataGraph.hpp, if
all we need from metaspace.hpp is ClassLoaderMetaspace* we could just
forward-declare ClassLoaderMetaspace instead of including
metaspace.hpp. No need to move method bodies to cpp files.
Oh, and the patch looks fine as it is to me, I do not need to see
another webrev. If you manage to comb unnecessary includes out, that
would be just an added bonus.
Thanks, Thomas
> I think it has to be in the header file.
>
> Thanks!
> Coleen
>
>>
>> Thanks for making classLoaderData.cpp smaller :)
>>
>> Cheers, Thomas
>>
>>
>>
>>
>> On Thu, Sep 27, 2018 at 7:51 PM, <coleen.phillimore at oracle.com> wrote:
>>>
>>> I think this might be as good of a time as any to split these files.
>>> This
>>> should help with too much coupling between the graph and the class loader
>>> data itself. The only function changed and not moved is added an API in
>>> ClassLoaderDataGraph.
>>>
>>> 110 static void adjust_saved_class(ClassLoaderData* cld);
>>> 111 static void adjust_saved_class(Klass* klass);
>>>
>>>
>>> open webrev at http://cr.openjdk.java.net/~coleenp/8209645.01/webrev
>>> bug link https://bugs.openjdk.java.net/browse/JDK-8209645
>>>
>>> Tested for mach5 hs-tier1-3
>>>
>>> Thanks,
>>> Coleen
>
>
More information about the hotspot-runtime-dev
mailing list