Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
f495bdaa
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
f495bdaa
编写于
4月 23, 2016
作者:
J
jrose
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8154475: Clean up lookup visibility
Reviewed-by: vlivanov, mhaupt, ahgross
上级
3ec33f0b
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
7 addition
and
11 deletion
+7
-11
src/share/classes/java/lang/invoke/DirectMethodHandle.java
src/share/classes/java/lang/invoke/DirectMethodHandle.java
+1
-1
src/share/classes/java/lang/invoke/LambdaForm.java
src/share/classes/java/lang/invoke/LambdaForm.java
+6
-6
src/share/classes/java/lang/invoke/MemberName.java
src/share/classes/java/lang/invoke/MemberName.java
+0
-2
src/share/classes/java/lang/invoke/MethodHandles.java
src/share/classes/java/lang/invoke/MethodHandles.java
+0
-2
未找到文件。
src/share/classes/java/lang/invoke/DirectMethodHandle.java
浏览文件 @
f495bdaa
...
...
@@ -158,7 +158,7 @@ class DirectMethodHandle extends MethodHandle {
private
static
LambdaForm
preparedLambdaForm
(
MemberName
m
)
{
assert
(
m
.
isInvocable
())
:
m
;
// call preparedFieldLambdaForm instead
MethodType
mtype
=
m
.
getInvocationType
().
basicType
();
assert
(!
m
.
isMethodHandleInvoke
()
||
"invokeBasic"
.
equals
(
m
.
getName
())
)
:
m
;
assert
(!
m
.
isMethodHandleInvoke
())
:
m
;
int
which
;
switch
(
m
.
getReferenceKind
())
{
case
REF_invokeVirtual:
which
=
LF_INVVIRTUAL
;
break
;
...
...
src/share/classes/java/lang/invoke/LambdaForm.java
浏览文件 @
f495bdaa
...
...
@@ -1034,7 +1034,7 @@ class LambdaForm {
this
.
member
=
member
;
this
.
resolvedHandle
=
resolvedHandle
;
// The following assert is almost always correct, but will fail for corner cases, such as PrivateInvokeTest.
//assert(!isInvokeBasic());
//assert(!isInvokeBasic(
member
));
}
NamedFunction
(
MethodType
basicInvokerType
)
{
assert
(
basicInvokerType
==
basicInvokerType
.
basicType
())
:
basicInvokerType
;
...
...
@@ -1045,13 +1045,13 @@ class LambdaForm {
// necessary to pass BigArityTest
this
.
member
=
Invokers
.
invokeBasicMethod
(
basicInvokerType
);
}
assert
(
isInvokeBasic
());
assert
(
isInvokeBasic
(
member
));
}
private
boolean
isInvokeBasic
(
)
{
private
static
boolean
isInvokeBasic
(
MemberName
member
)
{
return
member
!=
null
&&
member
.
isMethodHandleInvoke
()
&&
"invokeBasic"
.
equals
(
member
.
getName
());
member
.
getDeclaringClass
()
==
MethodHandle
.
class
&&
"invokeBasic"
.
equals
(
member
.
getName
());
}
// The next 3 constructors are used to break circular dependencies on MH.invokeStatic, etc.
...
...
@@ -1191,7 +1191,7 @@ class LambdaForm {
assert
(
mh
.
type
().
basicType
()
==
MethodType
.
genericMethodType
(
arity
).
changeReturnType
(
rtype
))
:
Arrays
.
asList
(
mh
,
rtype
,
arity
);
MemberName
member
=
mh
.
internalMemberName
();
if
(
member
!=
null
&&
member
.
getName
().
equals
(
"invokeBasic"
)
&&
member
.
isMethodHandleInvoke
(
))
{
if
(
isInvokeBasic
(
member
))
{
assert
(
arity
>
0
);
assert
(
a
[
0
]
instanceof
MethodHandle
);
MethodHandle
mh2
=
(
MethodHandle
)
a
[
0
];
...
...
src/share/classes/java/lang/invoke/MemberName.java
浏览文件 @
f495bdaa
...
...
@@ -341,7 +341,6 @@ import java.util.Objects;
}
/** Utility method to query if this member is a method handle invocation (invoke or invokeExact).
* Also returns true for the non-public MH.invokeBasic.
*/
public
boolean
isMethodHandleInvoke
()
{
final
int
bits
=
MH_INVOKE_MODS
&~
Modifier
.
PUBLIC
;
...
...
@@ -356,7 +355,6 @@ import java.util.Objects;
switch
(
name
)
{
case
"invoke"
:
case
"invokeExact"
:
case
"invokeBasic"
:
// internal sig-poly method
return
true
;
default
:
return
false
;
...
...
src/share/classes/java/lang/invoke/MethodHandles.java
浏览文件 @
f495bdaa
...
...
@@ -864,8 +864,6 @@ assertEquals("", (String) MH_newString.invokeExact());
return
invoker
(
type
);
if
(
"invokeExact"
.
equals
(
name
))
return
exactInvoker
(
type
);
if
(
"invokeBasic"
.
equals
(
name
))
return
basicInvoker
(
type
);
assert
(!
MemberName
.
isMethodHandleInvokeName
(
name
));
return
null
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录