Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
2f30553e
D
dragonwell8_hotspot
项目概览
openanolis
/
dragonwell8_hotspot
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_hotspot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2f30553e
编写于
1月 13, 2014
作者:
A
amurillo
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
ce6ba814
79c12781
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
32 addition
and
11 deletion
+32
-11
make/hotspot_version
make/hotspot_version
+1
-1
src/share/vm/classfile/defaultMethods.cpp
src/share/vm/classfile/defaultMethods.cpp
+31
-10
未找到文件。
make/hotspot_version
浏览文件 @
2f30553e
...
@@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2013
...
@@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2013
HS_MAJOR_VER=25
HS_MAJOR_VER=25
HS_MINOR_VER=0
HS_MINOR_VER=0
HS_BUILD_NUMBER=6
5
HS_BUILD_NUMBER=6
6
JDK_MAJOR_VER=1
JDK_MAJOR_VER=1
JDK_MINOR_VER=8
JDK_MINOR_VER=8
...
...
src/share/vm/classfile/defaultMethods.cpp
浏览文件 @
2f30553e
/*
/*
* Copyright (c) 2012, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -390,6 +390,20 @@ class MethodFamily : public ResourceObj {
...
@@ -390,6 +390,20 @@ class MethodFamily : public ResourceObj {
Symbol
*
get_exception_message
()
{
return
_exception_message
;
}
Symbol
*
get_exception_message
()
{
return
_exception_message
;
}
Symbol
*
get_exception_name
()
{
return
_exception_name
;
}
Symbol
*
get_exception_name
()
{
return
_exception_name
;
}
// Return true if the specified klass has a static method that matches
// the name and signature of the target method.
bool
has_matching_static
(
InstanceKlass
*
root
)
{
if
(
_members
.
length
()
>
0
)
{
Pair
<
Method
*
,
QualifiedState
>
entry
=
_members
.
at
(
0
);
Method
*
impl
=
root
->
find_method
(
entry
.
first
->
name
(),
entry
.
first
->
signature
());
if
((
impl
!=
NULL
)
&&
impl
->
is_static
())
{
return
true
;
}
}
return
false
;
}
// Either sets the target or the exception error message
// Either sets the target or the exception error message
void
determine_target
(
InstanceKlass
*
root
,
TRAPS
)
{
void
determine_target
(
InstanceKlass
*
root
,
TRAPS
)
{
if
(
has_target
()
||
throws_exception
())
{
if
(
has_target
()
||
throws_exception
())
{
...
@@ -416,6 +430,10 @@ class MethodFamily : public ResourceObj {
...
@@ -416,6 +430,10 @@ class MethodFamily : public ResourceObj {
}
}
if
(
num_defaults
==
0
)
{
if
(
num_defaults
==
0
)
{
// If the root klass has a static method with matching name and signature
// then do not generate an overpass method because it will hide the
// static method during resolution.
if
(
!
has_matching_static
(
root
))
{
if
(
qualified_methods
.
length
()
==
0
)
{
if
(
qualified_methods
.
length
()
==
0
)
{
_exception_message
=
generate_no_defaults_message
(
CHECK
);
_exception_message
=
generate_no_defaults_message
(
CHECK
);
}
else
{
}
else
{
...
@@ -423,10 +441,13 @@ class MethodFamily : public ResourceObj {
...
@@ -423,10 +441,13 @@ class MethodFamily : public ResourceObj {
_exception_message
=
generate_method_message
(
root
->
name
(),
qualified_methods
.
at
(
0
),
CHECK
);
_exception_message
=
generate_method_message
(
root
->
name
(),
qualified_methods
.
at
(
0
),
CHECK
);
}
}
_exception_name
=
vmSymbols
::
java_lang_AbstractMethodError
();
_exception_name
=
vmSymbols
::
java_lang_AbstractMethodError
();
}
// If only one qualified method is default, select that
// If only one qualified method is default, select that
}
else
if
(
num_defaults
==
1
)
{
}
else
if
(
num_defaults
==
1
)
{
_selected_target
=
qualified_methods
.
at
(
default_index
);
_selected_target
=
qualified_methods
.
at
(
default_index
);
}
else
if
(
num_defaults
>
1
)
{
}
else
if
(
num_defaults
>
1
&&
!
has_matching_static
(
root
))
{
_exception_message
=
generate_conflicts_message
(
&
qualified_methods
,
CHECK
);
_exception_message
=
generate_conflicts_message
(
&
qualified_methods
,
CHECK
);
_exception_name
=
vmSymbols
::
java_lang_IncompatibleClassChangeError
();
_exception_name
=
vmSymbols
::
java_lang_IncompatibleClassChangeError
();
if
(
TraceDefaultMethods
)
{
if
(
TraceDefaultMethods
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录