> 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: Used static_cast instead of raw C-style cast Moved inline functions to thread.inline.hpp Updated #includes to deal with the move to thread.inline.hpp Updated copyright year where needed. ------------- Changes: - all: https://git.openjdk.java.net/jdk/pull/37/files - new: https://git.openjdk.java.net/jdk/pull/37/files/b18faad5..da70f804 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=37&range=01 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=37&range=00-01 Stats: 102 lines in 33 files changed: 39 ins; 28 del; 35 mod Patch: https://git.openjdk.java.net/jdk/pull/37.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/37/head:pull/37 PR: https://git.openjdk.java.net/jdk/pull/37