RFR: 8064811: Use THREAD instead of CHECK_NULL in return statements

Stefan Karlsson stefan.karlsson at oracle.com
Thu Nov 13 14:59:13 UTC 2014


Hi all,

Please, review this patch to replace usages of the CHECK_ macros in 
return statements, with the THREAD define.

http://cr.openjdk.java.net/~stefank/8064811/webrev.01/
https://bugs.openjdk.java.net/browse/JDK-8064811

 From the bug report:

Take the following method as an example:
  Klass* ConstantPool::klass_ref_at(int which, TRAPS) {
   return klass_at(klass_ref_index_at(which), CHECK_NULL);
  }

This will expand into:
  Klass* ConstantPool::klass_ref_at(int which, TRAPS) {
   return klass_at(klass_ref_index_at(which), THREAD);
   if (HAS_PENDING_EXCEPTIONS) {
     return NULL;
   }
   (void)(0);
  }

The if-statement will never be reached.

We have seen cases where the compiler warns about this, and the recent 
change to enable -Wreturn-type will make this more likely to happen.

The suggested solution is to change the example above into:
  Klass* ConstantPool::klass_ref_at(int which, TRAPS) {
   return klass_at(klass_ref_index_at(which), THREAD);
  }

thanks,
StefanK


More information about the hotspot-dev mailing list