diff src/share/vm/graal/graalCodeInstaller.cpp @ 4670:41034914e2ee

add MethodContents assumption to fix debbugging issue
author Lukas Stadler <lukas.stadler@jku.at>
date Wed, 22 Feb 2012 17:04:27 +0100
parents 597bc897257d
children a03f3fd16b22
line wrap: on
line diff
--- a/src/share/vm/graal/graalCodeInstaller.cpp	Tue Feb 21 16:23:44 2012 -0800
+++ b/src/share/vm/graal/graalCodeInstaller.cpp	Wed Feb 22 17:04:27 2012 +0100
@@ -245,7 +245,9 @@
     for (int i = 0; i < length; ++i) {
       Handle assumption = assumptions->obj_at(i);
       if (!assumption.is_null()) {
-        if (assumption->klass() == CiAssumptions_ConcreteSubtype::klass()) {
+        if (assumption->klass() == CiAssumptions_MethodContents::klass()) {
+          assumption_MethodContents(assumption);
+        } else if (assumption->klass() == CiAssumptions_ConcreteSubtype::klass()) {
           assumption_ConcreteSubtype(assumption);
         } else if (assumption->klass() == CiAssumptions_ConcreteMethod::klass()) {
           assumption_ConcreteMethod(assumption);
@@ -371,6 +373,14 @@
   }
 }
 
+void CodeInstaller::assumption_MethodContents(Handle assumption) {
+  Handle method_handle = CiAssumptions_MethodContents::method(assumption());
+  methodHandle method = getMethodFromHotSpotMethod(method_handle());
+  ciMethod* m = (ciMethod*) CURRENT_ENV->get_object(method());
+
+  _dependencies->assert_evol_method(m);
+}
+
 void CodeInstaller::assumption_ConcreteSubtype(Handle assumption) {
   Handle context_handle = CiAssumptions_ConcreteSubtype::context(assumption());
   ciKlass* context = (ciKlass*) CURRENT_ENV->get_object(java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(context_handle)));