diff -r 9aa50ba9a67f -r 08dac9ce0cd7 hotspot/src/share/vm/ci/ciMethod.cpp --- 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.