RFR: 8073389: Remove the include of resourceArea.hpp from classFileParser.hpp

Coleen Phillimore coleen.phillimore at oracle.com
Wed Feb 18 13:25:31 UTC 2015

On 2/18/15, 7:17 AM, Stefan Karlsson wrote:
> Hi David,
> On 2015-02-18 12:36, David Holmes wrote:
>> On 18/02/2015 7:35 PM, Stefan Karlsson wrote:
>>> Hi,
>>> Please review this patch to get rid of the inclusion of 
>>> resourceArea.hpp
>>> from classFileParser.hpp.
>>>  From the RFE:
>>> The inclusion of resourceArea.hpp in classFileParser.hpp is causing
>>> cyclic dependencies when I'm changing unrelated code. The main reason
>>> for this is that a lot of implementation is put inside the
>>> resourceArea.hpp file instead of a .cpp file.
>> I must be missing something here - the implementation in the .hpp 
>> file is because all of the functions are implicitly inline. No 
>> guarantee they will be inlined of course but at least in product mode 
>> many of them should be. So assuming this is a good thing and we want 
>> to keep that for performance then the fix would be to introduce a 
>> .inline.hpp file, not to move stuff to a .cpp file.

I don't see how error reporting functions should be performance 
critical.  I think they're better off in the .cpp file.

> Yes, you're right, if we assume that these functions are performance 
> critical. Personally, I'm not so sure that they were put in the header 
> file for performance reasons. But since I'm not changing 
> resourceArea.hpp I don't have to figure it out at this point.
>>> I've opted to go the easy route now and get rid of the the
>>> resourceArea.hpp dependency from classFileParser.hpp, but eventually it
>>> would be good to fix that file.
>>> This patch has to add explicit includes of resourceArea.hpp to other
>>> .hpp files, that used to get their include from classFileParser.hpp. I
>>> could have gotten rid of those dependencies as well, but I chose to not
>>> do that for this patch.
>>> http://cr.openjdk.java.net/~stefank/8073389/webrev.01/
>>> https://bugs.openjdk.java.net/browse/JDK-8073389
>> What was classFileParser.hpp using from resourceArea.hpp ?
>> How does the change to src/share/vm/services/runtimeService.cpp fit 
>> in ??
> There is an include path that was removed when I cleaned up 
> classFileParser.hpp:
> runtimeServices.cpp
>  classLoader.hpp
>   classFileParser.hpp
>    --- The following branch was pruned ---
>    resourceArea.hpp
>     thread.inline.hpp
>      thread.hpp
>       threadLocalAllocBuffer.hpp
>        vm_version.hpp
> So, I added vm_version.hpp to runtimeService.cpp since it uses 
> Abstract_VM_Version in vm_version.hpp.
>> Seems okay - the proof is in the building as always. Need to check 
>> with and without precompiled headers.
> It passes JPRT, which runs without PCH on Solaris. I've compiled with 
> and without PCH on Linux x64.
>> And copyright dates need updating.
> Sure.

Thanks for doing the copyrights.

> Thanks,
> StefanK
>> Cheers,
>> David
>>> Thanks,
>>> StefanK

More information about the hotspot-dev mailing list