6839872: remove implementation inheritance from JSR 292 APIs

Consolidate runtime support in java.dyn.MethodHandleNatives; include transitional compatibility logic

Reviewed-by: twisti
This commit is contained in:
John R Rose 2011-03-11 22:33:47 -08:00
parent c506cb0e5b
commit 6146dffe45
13 changed files with 308 additions and 123 deletions

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2011, Oracle and/or its affiliates. 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
@ -221,7 +221,9 @@ void LinkResolver::lookup_implicit_method(methodHandle& result,
// Make sure the Java part of the runtime has been booted up.
klassOop natives = SystemDictionary::MethodHandleNatives_klass();
if (natives == NULL || instanceKlass::cast(natives)->is_not_initialized()) {
SystemDictionary::resolve_or_fail(vmSymbols::sun_dyn_MethodHandleNatives(),
Symbol* natives_name = vmSymbols::java_dyn_MethodHandleNatives();
if (natives != NULL && AllowTransitionalJSR292) natives_name = Klass::cast(natives)->name();
SystemDictionary::resolve_or_fail(natives_name,
Handle(),
Handle(),
true,