Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
d06322fa
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看板
提交
d06322fa
编写于
8月 21, 2009
作者:
T
trims
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
154af894
ca1ee235
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
17 addition
and
6 deletion
+17
-6
src/share/vm/prims/jniCheck.cpp
src/share/vm/prims/jniCheck.cpp
+8
-1
src/share/vm/runtime/jniHandles.hpp
src/share/vm/runtime/jniHandles.hpp
+9
-5
未找到文件。
src/share/vm/prims/jniCheck.cpp
浏览文件 @
d06322fa
/*
* Copyright 2001-200
8
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 2001-200
9
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
...
...
@@ -96,6 +96,7 @@ static const char * fatal_received_null_class = "JNI received a null class";
static
const
char
*
fatal_class_not_a_class
=
"JNI received a class argument that is not a class"
;
static
const
char
*
fatal_class_not_a_throwable_class
=
"JNI Throw or ThrowNew received a class argument that is not a Throwable or Throwable subclass"
;
static
const
char
*
fatal_wrong_class_or_method
=
"Wrong object class or methodID passed to JNI call"
;
static
const
char
*
fatal_non_weak_method
=
"non-weak methodID passed to JNI call"
;
static
const
char
*
fatal_unknown_array_object
=
"Unknown array object passed to JNI array operations"
;
static
const
char
*
fatal_object_array_expected
=
"Object array expected but not received for JNI array operation"
;
static
const
char
*
fatal_non_array
=
"Non-array passed to JNI array operations"
;
...
...
@@ -291,10 +292,16 @@ oop jniCheck::validate_handle(JavaThread* thr, jobject obj) {
methodOop
jniCheck
::
validate_jmethod_id
(
JavaThread
*
thr
,
jmethodID
method_id
)
{
ASSERT_OOPS_ALLOWED
;
// do the fast jmethodID check first
methodOop
moop
=
JNIHandles
::
checked_resolve_jmethod_id
(
method_id
);
if
(
moop
==
NULL
)
{
ReportJNIFatalError
(
thr
,
fatal_wrong_class_or_method
);
}
// jmethodIDs are supposed to be weak global handles, but that
// can be expensive so check it last
else
if
(
!
JNIHandles
::
is_weak_global_handle
((
jobject
)
method_id
))
{
ReportJNIFatalError
(
thr
,
fatal_non_weak_method
);
}
return
moop
;
}
...
...
src/share/vm/runtime/jniHandles.hpp
浏览文件 @
d06322fa
/*
* Copyright 1998-200
7
Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1998-200
9
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
...
...
@@ -196,12 +196,16 @@ inline methodOop JNIHandles::resolve_jmethod_id(jmethodID mid) {
};
inline
methodOop
JNIHandles
::
checked_resolve_jmethod_id
(
jmethodID
mid
)
{
jobject
handle
=
(
jobject
)
mid
;
if
(
is_weak_global_handle
(
handle
))
{
return
(
methodOop
)
resolve_non_null
(
handle
);
}
else
{
if
(
mid
==
NULL
)
{
return
(
methodOop
)
NULL
;
}
oop
o
=
resolve_non_null
((
jobject
)
mid
);
if
(
!
o
->
is_method
())
{
return
(
methodOop
)
NULL
;
}
return
(
methodOop
)
o
;
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录