hotspot/src/share/vm/oops/method.cpp
changeset 27643 fe8f95a2d9bc
parent 27480 51e6396f8a98
child 27920 b34081fac06c
child 27880 afb974a04396
--- a/hotspot/src/share/vm/oops/method.cpp	Mon Nov 10 19:04:38 2014 +0300
+++ b/hotspot/src/share/vm/oops/method.cpp	Tue Nov 11 11:05:41 2014 +0100
@@ -588,6 +588,15 @@
   return true;
 }
 
+bool Method::is_constant_getter() const {
+  int last_index = code_size() - 1;
+  // Check if the first 1-3 bytecodes are a constant push
+  // and the last bytecode is a return.
+  return (2 <= code_size() && code_size() <= 4 &&
+          Bytecodes::is_const(java_code_at(0)) &&
+          Bytecodes::length_for(java_code_at(0)) == last_index &&
+          Bytecodes::is_return(java_code_at(last_index)));
+}
 
 bool Method::is_initializer() const {
   return name() == vmSymbols::object_initializer_name() || is_static_initializer();