Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
198d0ce8
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看板
提交
198d0ce8
编写于
1月 23, 2014
作者:
C
coffeys
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
8bfe2d92
806aae39
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
800 addition
and
557 deletion
+800
-557
.hgtags
.hgtags
+2
-0
THIRD_PARTY_README
THIRD_PARTY_README
+766
-546
make/hotspot_version
make/hotspot_version
+1
-1
src/share/vm/classfile/defaultMethods.cpp
src/share/vm/classfile/defaultMethods.cpp
+31
-10
未找到文件。
.hgtags
浏览文件 @
198d0ce8
...
...
@@ -408,3 +408,5 @@ fca262db9c4309f99d2f5542ab0780e45c2f1578 jdk8-b120
55fb97c4c58d6ed4db8ec02a382ba518d9265815 hs25-b65
d3521d8e562a782f66fc0dfdebeffba2c7e3471d jdk8-b122
591135a7d6f96c0ef281d078cee9a8d8c342d45c jdk8-b123
9b9816164447214f21b06ccf646893c281c76a42 hs25-b66
df333ee12bba67e2e928f8ce1da37afd9bf95b48 jdk8-b124
THIRD_PARTY_README
浏览文件 @
198d0ce8
此差异已折叠。
点击以展开。
make/hotspot_version
浏览文件 @
198d0ce8
...
...
@@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2013
HS_MAJOR_VER=25
HS_MINOR_VER=0
HS_BUILD_NUMBER=6
5
HS_BUILD_NUMBER=6
6
JDK_MAJOR_VER=1
JDK_MINOR_VER=8
...
...
src/share/vm/classfile/defaultMethods.cpp
浏览文件 @
198d0ce8
/*
* 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.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -390,6 +390,20 @@ class MethodFamily : public ResourceObj {
Symbol
*
get_exception_message
()
{
return
_exception_message
;
}
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
void
determine_target
(
InstanceKlass
*
root
,
TRAPS
)
{
if
(
has_target
()
||
throws_exception
())
{
...
...
@@ -416,19 +430,26 @@ class MethodFamily : public ResourceObj {
}
if
(
num_defaults
==
0
)
{
if
(
qualified_methods
.
length
()
==
0
)
{
_exception_message
=
generate_no_defaults_message
(
CHECK
);
}
else
{
assert
(
root
!=
NULL
,
"Null root class"
);
_exception_message
=
generate_method_message
(
root
->
name
(),
qualified_methods
.
at
(
0
),
CHECK
);
// 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
)
{
_exception_message
=
generate_no_defaults_message
(
CHECK
);
}
else
{
assert
(
root
!=
NULL
,
"Null root class"
);
_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
}
else
if
(
num_defaults
==
1
)
{
_selected_target
=
qualified_methods
.
at
(
default_index
);
}
else
if
(
num_defaults
>
1
)
{
_exception_message
=
generate_conflicts_message
(
&
qualified_methods
,
CHECK
);
_exception_name
=
vmSymbols
::
java_lang_IncompatibleClassChangeError
();
}
else
if
(
num_defaults
>
1
&&
!
has_matching_static
(
root
))
{
_exception_message
=
generate_conflicts_message
(
&
qualified_methods
,
CHECK
);
_exception_name
=
vmSymbols
::
java_lang_IncompatibleClassChangeError
();
if
(
TraceDefaultMethods
)
{
_exception_message
->
print_value_on
(
tty
);
tty
->
print_cr
(
""
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录