On Thu, 10 Sep 2020 03:18:23 GMT, David Holmes <dhol...@openjdk.org> wrote:

>> This is a rather large but generally simple cleanup.
>> 
>> We use a lot of raw C-style casts to "(JavaThread*)" typically after 
>> checking "thread->is_Java_thread()". To simplify
>> this pattern, and make the code look somewhat cleaner we introduce a 
>> convenience function Thread::as_Java_thread(),
>> which asserts is_Java_thread() and returns "this" cast to "JavaThread*". A 
>> const version, as_const_Java_thread(), was
>> also added to allow use in cases where we start with "const Thread *".  
>> Summary of changes:
>> - changed raw casts to use as_Java_thread()
>> - removed redundant checks of is_Java_thread() as it is now done in 
>> as_Java_thread()
>> - Removed checks that are checking the type system e.g.
>> void foo(JavaThread* t) {
>>   assert(t->is_Java_thread(), "must be")
>> the only way the assert can fire is if someone deliberately bypasses the 
>> type system, and if we are going to worry
>> about that then we would need asserts like this on every method that expects 
>> a JavaThread! The right place for the
>> assertion is at the head of any such call chain.
>> - Removed asserts that are already guaranteed in the caller.
>> - Use JavaThread::current() where appropriate.
>> - Use pre-existing "thread" variable where available rather than casting 
>> THREAD
>> 
>> Change locations found by grepping for variations of the cast syntax 
>> "(JavaThread*)" - it is possible some may have
>> been missed.
>> Testing: tiers 1-3
>> 
>> Thanks,
>> David
>
> David Holmes has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Fixed serious bug in dependencies.cpp. The v1 change was wrong and got 
> restored but
>   not commited, then a later rollback to v1 lost the fix.
>   
>   Minor issues Dan spotted now fixed.

Marked as reviewed by kbarrett (Reviewer).

-------------

PR: https://git.openjdk.java.net/jdk/pull/37

Reply via email to