--- a/hotspot/src/share/vm/ci/ciMethod.cpp Wed Apr 08 00:12:59 2009 -0700
+++ b/hotspot/src/share/vm/ci/ciMethod.cpp Wed Apr 08 10:56:49 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -675,6 +675,30 @@
}
// ------------------------------------------------------------------
+// invokedynamic support
+//
+bool ciMethod::is_method_handle_invoke() {
+ check_is_loaded();
+ bool flag = ((flags().as_int() & JVM_MH_INVOKE_BITS) == JVM_MH_INVOKE_BITS);
+#ifdef ASSERT
+ {
+ VM_ENTRY_MARK;
+ bool flag2 = get_methodOop()->is_method_handle_invoke();
+ assert(flag == flag2, "consistent");
+ }
+#endif //ASSERT
+ return flag;
+}
+
+ciInstance* ciMethod::method_handle_type() {
+ check_is_loaded();
+ VM_ENTRY_MARK;
+ oop mtype = get_methodOop()->method_handle_type();
+ return CURRENT_THREAD_ENV->get_object(mtype)->as_instance();
+}
+
+
+// ------------------------------------------------------------------
// ciMethod::build_method_data
//
// Generate new methodDataOop objects at compile time.