RFR(s): 8218041: Assorted wrong/missing includes

Robbin Ehn robbin.ehn at oracle.com
Wed Jan 30 09:32:10 UTC 2019


Hi Kim, thanks!

Unfortunately I found an issue when building with clang 7.
It seem to do much better inlning, so missing symbol at link (HandleMark());
I'm going over HandleMark constructor useage.
I found so far 24 missing includes for handles.inline.hpp.
Compile testing this with all sort of compilers and options, now clang works.

But the inline constructor just calls a non-inlined method:
inline HandleMark::HandleMark() {
   initialize(Thread::current());
}

At least now Thread::current() is in thread.hpp, so the reason for inline seem 
not true anymore. I'm thinking that maybe I should change it and just include 
handles.hpp on the missing places. But since HandleMarkCleaner needs the inline 
file it's very asymmetric with HandleMark is fine with hpp but if you also use 
HandleMarkCleaner you need the inline. So maybe I'll just leave the 'dummy' 
inline constructor.

So sending out an v2 of some sort.

/Robbin

On 2019-01-30 09:50, Kim Barrett wrote:
>> On Jan 30, 2019, at 3:21 AM, Robbin Ehn <robbin.ehn at oracle.com> wrote:
>>
>> Hi all, please review.
>>
>> Code:
>> http://cr.openjdk.java.net/~rehn/8218041/webrev/
>> Issue:
>> https://bugs.openjdk.java.net/browse/JDK-8218041
> 
> Looks good.
> 


More information about the hotspot-dev mailing list