Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
8f6f8467
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看板
You need to sign in or sign up before continuing.
提交
8f6f8467
编写于
3月 27, 2013
作者:
Z
zgu
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
4249bba2
3be34a45
变更
21
隐藏空白更改
内联
并排
Showing
21 changed file
with
89 addition
and
147 deletion
+89
-147
make/bsd/makefiles/mapfile-vers-debug
make/bsd/makefiles/mapfile-vers-debug
+2
-0
make/bsd/makefiles/mapfile-vers-product
make/bsd/makefiles/mapfile-vers-product
+2
-0
make/linux/makefiles/mapfile-vers-debug
make/linux/makefiles/mapfile-vers-debug
+2
-0
make/linux/makefiles/mapfile-vers-product
make/linux/makefiles/mapfile-vers-product
+2
-0
make/solaris/makefiles/mapfile-vers
make/solaris/makefiles/mapfile-vers
+2
-0
make/windows/build.make
make/windows/build.make
+3
-5
make/windows/create.bat
make/windows/create.bat
+2
-2
make/windows/makefiles/compile.make
make/windows/makefiles/compile.make
+0
-7
make/windows/makefiles/product.make
make/windows/makefiles/product.make
+0
-8
make/windows/makefiles/vm.make
make/windows/makefiles/vm.make
+0
-4
make/windows/projectfiles/kernel/Makefile
make/windows/projectfiles/kernel/Makefile
+0
-27
make/windows/projectfiles/kernel/vm.def
make/windows/projectfiles/kernel/vm.def
+0
-7
make/windows/projectfiles/kernel/vm.dsw
make/windows/projectfiles/kernel/vm.dsw
+0
-29
src/share/tools/ProjectCreator/BuildConfig.java
src/share/tools/ProjectCreator/BuildConfig.java
+0
-30
src/share/tools/ProjectCreator/WinGammaPlatform.java
src/share/tools/ProjectCreator/WinGammaPlatform.java
+0
-6
src/share/vm/classfile/classFileParser.cpp
src/share/vm/classfile/classFileParser.cpp
+1
-2
src/share/vm/classfile/verifier.cpp
src/share/vm/classfile/verifier.cpp
+1
-2
src/share/vm/prims/jvm.cpp
src/share/vm/prims/jvm.cpp
+63
-15
src/share/vm/prims/jvm.h
src/share/vm/prims/jvm.h
+8
-0
src/share/vm/runtime/arguments.cpp
src/share/vm/runtime/arguments.cpp
+1
-0
src/share/vm/runtime/globals.hpp
src/share/vm/runtime/globals.hpp
+0
-3
未找到文件。
make/bsd/makefiles/mapfile-vers-debug
浏览文件 @
8f6f8467
...
...
@@ -135,6 +135,7 @@ SUNWprivate_1.1 {
JVM_GetEnclosingMethodInfo;
JVM_GetFieldAnnotations;
JVM_GetFieldIxModifiers;
JVM_GetFieldTypeAnnotations;
JVM_GetHostName;
JVM_GetInheritedAccessControlContext;
JVM_GetInterfaceVersion;
...
...
@@ -156,6 +157,7 @@ SUNWprivate_1.1 {
JVM_GetMethodIxSignatureUTF;
JVM_GetMethodParameterAnnotations;
JVM_GetMethodParameters;
JVM_GetMethodTypeAnnotations;
JVM_GetPrimitiveArrayElement;
JVM_GetProtectionDomain;
JVM_GetSockName;
...
...
make/bsd/makefiles/mapfile-vers-product
浏览文件 @
8f6f8467
...
...
@@ -135,6 +135,7 @@ SUNWprivate_1.1 {
JVM_GetEnclosingMethodInfo;
JVM_GetFieldAnnotations;
JVM_GetFieldIxModifiers;
JVM_GetFieldTypeAnnotations;
JVM_GetHostName;
JVM_GetInheritedAccessControlContext;
JVM_GetInterfaceVersion;
...
...
@@ -156,6 +157,7 @@ SUNWprivate_1.1 {
JVM_GetMethodIxSignatureUTF;
JVM_GetMethodParameterAnnotations;
JVM_GetMethodParameters;
JVM_GetMethodTypeAnnotations;
JVM_GetPrimitiveArrayElement;
JVM_GetProtectionDomain;
JVM_GetSockName;
...
...
make/linux/makefiles/mapfile-vers-debug
浏览文件 @
8f6f8467
...
...
@@ -131,6 +131,7 @@ SUNWprivate_1.1 {
JVM_GetEnclosingMethodInfo;
JVM_GetFieldAnnotations;
JVM_GetFieldIxModifiers;
JVM_GetFieldTypeAnnotations;
JVM_GetHostName;
JVM_GetInheritedAccessControlContext;
JVM_GetInterfaceVersion;
...
...
@@ -152,6 +153,7 @@ SUNWprivate_1.1 {
JVM_GetMethodIxSignatureUTF;
JVM_GetMethodParameterAnnotations;
JVM_GetMethodParameters;
JVM_GetMethodTypeAnnotations;
JVM_GetPrimitiveArrayElement;
JVM_GetProtectionDomain;
JVM_GetSockName;
...
...
make/linux/makefiles/mapfile-vers-product
浏览文件 @
8f6f8467
...
...
@@ -131,6 +131,7 @@ SUNWprivate_1.1 {
JVM_GetEnclosingMethodInfo;
JVM_GetFieldAnnotations;
JVM_GetFieldIxModifiers;
JVM_GetFieldTypeAnnotations;
JVM_GetHostName;
JVM_GetInheritedAccessControlContext;
JVM_GetInterfaceVersion;
...
...
@@ -152,6 +153,7 @@ SUNWprivate_1.1 {
JVM_GetMethodIxSignatureUTF;
JVM_GetMethodParameterAnnotations;
JVM_GetMethodParameters;
JVM_GetMethodTypeAnnotations;
JVM_GetPrimitiveArrayElement;
JVM_GetProtectionDomain;
JVM_GetSockName;
...
...
make/solaris/makefiles/mapfile-vers
浏览文件 @
8f6f8467
...
...
@@ -131,6 +131,7 @@ SUNWprivate_1.1 {
JVM_GetEnclosingMethodInfo;
JVM_GetFieldAnnotations;
JVM_GetFieldIxModifiers;
JVM_GetFieldTypeAnnotations;
JVM_GetHostName;
JVM_GetInheritedAccessControlContext;
JVM_GetInterfaceVersion;
...
...
@@ -152,6 +153,7 @@ SUNWprivate_1.1 {
JVM_GetMethodIxSignatureUTF;
JVM_GetMethodParameterAnnotations;
JVM_GetMethodParameters;
JVM_GetMethodTypeAnnotations;
JVM_GetPrimitiveArrayElement;
JVM_GetProtectionDomain;
JVM_GetSockName;
...
...
make/windows/build.make
浏览文件 @
8f6f8467
...
...
@@ -110,8 +110,6 @@ VARIANT_TEXT=Server
!
endif
!elseif
"$(Variant)"
==
"tiered"
VARIANT_TEXT
=
Tiered
!elseif
"$(Variant)"
==
"kernel"
VARIANT_TEXT
=
Kernel
!
endif
#########################################################################
...
...
@@ -305,9 +303,9 @@ $(variantDir)\local.make: checks
checks
:
checkVariant checkWorkSpace checkSA
checkVariant
:
@
if
"
$(Variant)
"
==
""
echo
Need to specify
"Variant=[tiered|compiler2|compiler1|
kernel|
core]"
&&
false
@
if
"
$(Variant)
"
NEQ
"tiered"
if
"
$(Variant)
"
NEQ
"compiler2"
if
"
$(Variant)
"
NEQ
"compiler1"
if
"
$(Variant)
"
NEQ
"
kernel"
if
"
$(Variant)
"
NEQ
"
core"
\
echo
Need to specify
"Variant=[tiered|compiler2|compiler1|
kernel|
core]"
&&
false
@
if
"
$(Variant)
"
==
""
echo
Need to specify
"Variant=[tiered|compiler2|compiler1|core]"
&&
false
@
if
"
$(Variant)
"
NEQ
"tiered"
if
"
$(Variant)
"
NEQ
"compiler2"
if
"
$(Variant)
"
NEQ
"compiler1"
if
"
$(Variant)
"
NEQ
"core"
\
echo
Need to specify
"Variant=[tiered|compiler2|compiler1|core]"
&&
false
checkWorkSpace
:
@
if
"
$(WorkSpace)
"
==
""
echo
Need to specify
"WorkSpace=..."
&&
false
...
...
make/windows/create.bat
浏览文件 @
8f6f8467
...
...
@@ -148,7 +148,7 @@ echo HotSpotJDKDist=%HotSpotJDKDist%
REM This is now safe to do.
:copyfiles
for
/D
%%i
in
(
compiler1
,
compiler2
,
tiered
,
core
,
kernel
)
do
(
for
/D
%%i
in
(
compiler1
,
compiler2
,
tiered
,
core
)
do
(
if
NOT
EXIST
%HotSpotBuildSpace%
\
%%i
\generated
mkdir
%HotSpotBuildSpace%
\
%%i
\generated
copy
%HotSpotWorkSpace%
\make\windows\projectfiles\
%%i
\
*
%HotSpotBuildSpace%
\
%%i
\generated
>
NUL
)
...
...
@@ -156,7 +156,7 @@ copy %HotSpotWorkSpace%\make\windows\projectfiles\%%i\* %HotSpotBuildSpace%\%%i\
REM force regneration of ProjectFile
if
exist
%ProjectFile%
del
%ProjectFile%
for
/D
%%i
in
(
compiler1
,
compiler2
,
tiered
,
core
,
kernel
)
do
(
for
/D
%%i
in
(
compiler1
,
compiler2
,
tiered
,
core
)
do
(
echo
--
%%i
--
echo
#
Generated
file
!
>
%HotSpotBuildSpace%
\
%%i
\local.make
echo
#
Changing
a
variable
below
and
then
deleting
%ProjectFile%
will
cause
>>
%HotSpotBuildSpace%
\
%%i
\local.make
...
...
make/windows/makefiles/compile.make
浏览文件 @
8f6f8467
...
...
@@ -221,13 +221,6 @@ LD_FLAGS = /SAFESEH $(LD_FLAGS)
!
endif
!
endif
# Compile for space above time.
!if
"$(Variant)"
==
"kernel"
PRODUCT_OPT_OPTION
=
/O1 /Oy-
FASTDEBUG_OPT_OPTION
=
/O1 /Oy-
DEBUG_OPT_OPTION
=
/Od
!
endif
# If NO_OPTIMIZATIONS is defined in the environment, turn everything off
!
ifdef
NO_OPTIMIZATIONS
PRODUCT_OPT_OPTION
=
$(DEBUG_OPT_OPTION)
...
...
make/windows/makefiles/product.make
浏览文件 @
8f6f8467
...
...
@@ -51,13 +51,6 @@ HS_BUILD_ID=$(HS_BUILD_VER)
# Force resources to be rebuilt every time
$(Res_Files)
:
FORCE
# Kernel doesn't need exported vtbl symbols.
!if
"$(Variant)"
==
"kernel"
$(AOUT)
:
$(Res_Files) $(Obj_Files)
$(LD)
@<<
$(LD_FLAGS) /out
:
$@ /implib:$*.lib $(Obj_Files) $(Res_Files)
<<
!
else
vm.def
:
$(Obj_Files)
sh
$(WorkSpace)
/make/windows/build_vm_def.sh
...
...
@@ -65,7 +58,6 @@ $(AOUT): $(Res_Files) $(Obj_Files) vm.def
$(LD)
@<<
$(LD_FLAGS) /out
:
$@ /implib:$*.lib /def:vm.def $(Obj_Files) $(Res_Files)
<<
!
endif
!if
"$(MT)"
!=
""
# The previous link command created a .manifest file that we want to
# insert into the linked artifact so we do not need to track it
...
...
make/windows/makefiles/vm.make
浏览文件 @
8f6f8467
...
...
@@ -89,12 +89,8 @@ STACK_SIZE=
# AsyncGetCallTrace is not supported on IA64 yet
AGCT_EXPORT
=
!
else
!if
"$(Variant)"
==
"kernel"
AGCT_EXPORT
=
!
else
AGCT_EXPORT
=
/export:AsyncGetCallTrace
!
endif
!
endif
# If you modify exports below please do the corresponding changes in
# src/share/tools/ProjectCreator/WinGammaPlatformVC7.java
...
...
make/windows/projectfiles/kernel/Makefile
已删除
100644 → 0
浏览文件 @
4249bba2
#
# Copyright (c) 2007, 2010, 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
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
#
!
include
../local.make
!
include
$(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile
make/windows/projectfiles/kernel/vm.def
已删除
100644 → 0
浏览文件 @
4249bba2
;
; This .DEF file is a placeholder for one which is automatically
; generated during the build process. See
; make\windows\build_vm_def.sh and
; make\windows\makefiles\projectcreator.make (esp. the "-prelink"
; options).
;
make/windows/projectfiles/kernel/vm.dsw
已删除
100644 → 0
浏览文件 @
4249bba2
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "vm"=.\vm.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################
src/share/tools/ProjectCreator/BuildConfig.java
浏览文件 @
8f6f8467
...
...
@@ -568,36 +568,6 @@ class CoreProductConfig extends ProductConfig {
}
}
class
KernelDebugConfig
extends
GenericDebugConfig
{
String
getOptFlag
()
{
return
getCI
().
getNoOptFlag
();
}
KernelDebugConfig
()
{
initNames
(
"kernel"
,
"debug"
,
"jvm.dll"
);
init
(
getIncludes
(),
getDefines
());
}
}
class
KernelFastDebugConfig
extends
GenericDebugConfig
{
String
getOptFlag
()
{
return
getCI
().
getOptFlag
();
}
KernelFastDebugConfig
()
{
initNames
(
"kernel"
,
"fastdebug"
,
"jvm.dll"
);
init
(
getIncludes
(),
getDefines
());
}
}
class
KernelProductConfig
extends
ProductConfig
{
KernelProductConfig
()
{
initNames
(
"kernel"
,
"product"
,
"jvm.dll"
);
init
(
getIncludes
(),
getDefines
());
}
}
abstract
class
CompilerInterface
{
abstract
Vector
getBaseCompilerFlags
(
Vector
defines
,
Vector
includes
,
String
outDir
);
...
...
src/share/tools/ProjectCreator/WinGammaPlatform.java
浏览文件 @
8f6f8467
...
...
@@ -564,12 +564,6 @@ public abstract class WinGammaPlatform {
allConfigs
.
add
(
new
CoreFastDebugConfig
());
allConfigs
.
add
(
new
CoreProductConfig
());
if
(
platform
.
equals
(
"Win32"
))
{
allConfigs
.
add
(
new
KernelDebugConfig
());
allConfigs
.
add
(
new
KernelFastDebugConfig
());
allConfigs
.
add
(
new
KernelProductConfig
());
}
return
allConfigs
;
}
...
...
src/share/vm/classfile/classFileParser.cpp
浏览文件 @
8f6f8467
...
...
@@ -2196,8 +2196,7 @@ methodHandle ClassFileParser::parse_method(bool is_interface,
true
,
// is LVTT
CHECK_
(
nullHandle
));
lvtt_cnt
++
;
}
else
if
(
UseSplitVerifier
&&
_major_version
>=
Verifier
::
STACKMAP_ATTRIBUTE_MAJOR_VERSION
&&
}
else
if
(
_major_version
>=
Verifier
::
STACKMAP_ATTRIBUTE_MAJOR_VERSION
&&
_cp
->
symbol_at
(
code_attribute_name_index
)
==
vmSymbols
::
tag_stack_map_table
())
{
// Stack map is only needed by the new verifier in JDK1.5.
if
(
parsed_stackmap_attribute
)
{
...
...
src/share/vm/classfile/verifier.cpp
浏览文件 @
8f6f8467
...
...
@@ -127,8 +127,7 @@ bool Verifier::verify(instanceKlassHandle klass, Verifier::Mode mode, bool shoul
if
(
TraceClassInitialization
)
{
tty
->
print_cr
(
"Start class verification for: %s"
,
klassName
);
}
if
(
UseSplitVerifier
&&
klass
->
major_version
()
>=
STACKMAP_ATTRIBUTE_MAJOR_VERSION
)
{
if
(
klass
->
major_version
()
>=
STACKMAP_ATTRIBUTE_MAJOR_VERSION
)
{
ClassVerifier
split_verifier
(
klass
,
THREAD
);
split_verifier
.
verify_class
(
THREAD
);
exception_name
=
split_verifier
.
result
();
...
...
src/share/vm/prims/jvm.cpp
浏览文件 @
8f6f8467
...
...
@@ -1457,7 +1457,7 @@ JVM_END
JVM_ENTRY
(
jbyteArray
,
JVM_GetClassAnnotations
(
JNIEnv
*
env
,
jclass
cls
))
assert
(
cls
!=
NULL
,
"illegal class"
);
JVMWrapper
(
"JVM_GetClassAnnotations"
);
ResourceMark
rm
(
THREAD
);
// Return null for arrays and primitives
if
(
!
java_lang_Class
::
is_primitive
(
JNIHandles
::
resolve
(
cls
)))
{
Klass
*
k
=
java_lang_Class
::
as_Klass
(
JNIHandles
::
resolve
(
cls
));
...
...
@@ -1470,20 +1470,15 @@ JVM_ENTRY(jbyteArray, JVM_GetClassAnnotations(JNIEnv *env, jclass cls))
JVM_END
JVM_ENTRY
(
jbyteArray
,
JVM_GetFieldAnnotations
(
JNIEnv
*
env
,
jobject
field
))
assert
(
field
!=
NULL
,
"illegal field"
);
JVMWrapper
(
"JVM_GetFieldAnnotations"
);
static
bool
jvm_get_field_common
(
jobject
field
,
fieldDescriptor
&
fd
,
TRAPS
)
{
// some of this code was adapted from from jni_FromReflectedField
// field is a handle to a java.lang.reflect.Field object
oop
reflected
=
JNIHandles
::
resolve_non_null
(
field
);
oop
mirror
=
java_lang_reflect_Field
::
clazz
(
reflected
);
Klass
*
k
=
java_lang_Class
::
as_Klass
(
mirror
);
int
slot
=
java_lang_reflect_Field
::
slot
(
reflected
);
int
modifiers
=
java_lang_reflect_Field
::
modifiers
(
reflected
);
fieldDescriptor
fd
;
KlassHandle
kh
(
THREAD
,
k
);
intptr_t
offset
=
InstanceKlass
::
cast
(
kh
())
->
field_offset
(
slot
);
...
...
@@ -1491,16 +1486,29 @@ JVM_ENTRY(jbyteArray, JVM_GetFieldAnnotations(JNIEnv *env, jobject field))
// for static fields we only look in the current class
if
(
!
InstanceKlass
::
cast
(
kh
())
->
find_local_field_from_offset
(
offset
,
true
,
&
fd
))
{
assert
(
false
,
"cannot find static field"
);
return
NULL
;
// robustness
return
false
;
}
}
else
{
// for instance fields we start with the current class and work
// our way up through the superclass chain
if
(
!
InstanceKlass
::
cast
(
kh
())
->
find_field_from_offset
(
offset
,
false
,
&
fd
))
{
assert
(
false
,
"cannot find instance field"
);
return
NULL
;
// robustness
return
false
;
}
}
return
true
;
}
JVM_ENTRY
(
jbyteArray
,
JVM_GetFieldAnnotations
(
JNIEnv
*
env
,
jobject
field
))
// field is a handle to a java.lang.reflect.Field object
assert
(
field
!=
NULL
,
"illegal field"
);
JVMWrapper
(
"JVM_GetFieldAnnotations"
);
fieldDescriptor
fd
;
bool
gotFd
=
jvm_get_field_common
(
field
,
fd
,
CHECK_NULL
);
if
(
!
gotFd
)
{
return
NULL
;
}
return
(
jbyteArray
)
JNIHandles
::
make_local
(
env
,
Annotations
::
make_java_array
(
fd
.
annotations
(),
THREAD
));
JVM_END
...
...
@@ -1525,12 +1533,8 @@ static Method* jvm_get_method_common(jobject method) {
Klass
*
k
=
java_lang_Class
::
as_Klass
(
mirror
);
Method
*
m
=
InstanceKlass
::
cast
(
k
)
->
method_with_idnum
(
slot
);
if
(
m
==
NULL
)
{
assert
(
false
,
"cannot find method"
);
return
NULL
;
// robustness
}
return
m
;
assert
(
m
!=
NULL
,
"cannot find method"
);
return
m
;
// caller has to deal with NULL in product mode
}
...
...
@@ -1539,6 +1543,10 @@ JVM_ENTRY(jbyteArray, JVM_GetMethodAnnotations(JNIEnv *env, jobject method))
// method is a handle to a java.lang.reflect.Method object
Method
*
m
=
jvm_get_method_common
(
method
);
if
(
m
==
NULL
)
{
return
NULL
;
}
return
(
jbyteArray
)
JNIHandles
::
make_local
(
env
,
Annotations
::
make_java_array
(
m
->
annotations
(),
THREAD
));
JVM_END
...
...
@@ -1549,6 +1557,10 @@ JVM_ENTRY(jbyteArray, JVM_GetMethodDefaultAnnotationValue(JNIEnv *env, jobject m
// method is a handle to a java.lang.reflect.Method object
Method
*
m
=
jvm_get_method_common
(
method
);
if
(
m
==
NULL
)
{
return
NULL
;
}
return
(
jbyteArray
)
JNIHandles
::
make_local
(
env
,
Annotations
::
make_java_array
(
m
->
annotation_default
(),
THREAD
));
JVM_END
...
...
@@ -1559,6 +1571,10 @@ JVM_ENTRY(jbyteArray, JVM_GetMethodParameterAnnotations(JNIEnv *env, jobject met
// method is a handle to a java.lang.reflect.Method object
Method
*
m
=
jvm_get_method_common
(
method
);
if
(
m
==
NULL
)
{
return
NULL
;
}
return
(
jbyteArray
)
JNIHandles
::
make_local
(
env
,
Annotations
::
make_java_array
(
m
->
parameter_annotations
(),
THREAD
));
JVM_END
...
...
@@ -1583,6 +1599,38 @@ JVM_ENTRY(jbyteArray, JVM_GetClassTypeAnnotations(JNIEnv *env, jclass cls))
return
NULL
;
JVM_END
JVM_ENTRY
(
jbyteArray
,
JVM_GetMethodTypeAnnotations
(
JNIEnv
*
env
,
jobject
method
))
assert
(
method
!=
NULL
,
"illegal method"
);
JVMWrapper
(
"JVM_GetMethodTypeAnnotations"
);
// method is a handle to a java.lang.reflect.Method object
Method
*
m
=
jvm_get_method_common
(
method
);
if
(
m
==
NULL
)
{
return
NULL
;
}
AnnotationArray
*
type_annotations
=
m
->
type_annotations
();
if
(
type_annotations
!=
NULL
)
{
typeArrayOop
a
=
Annotations
::
make_java_array
(
type_annotations
,
CHECK_NULL
);
return
(
jbyteArray
)
JNIHandles
::
make_local
(
env
,
a
);
}
return
NULL
;
JVM_END
JVM_ENTRY
(
jbyteArray
,
JVM_GetFieldTypeAnnotations
(
JNIEnv
*
env
,
jobject
field
))
assert
(
field
!=
NULL
,
"illegal field"
);
JVMWrapper
(
"JVM_GetFieldTypeAnnotations"
);
fieldDescriptor
fd
;
bool
gotFd
=
jvm_get_field_common
(
field
,
fd
,
CHECK_NULL
);
if
(
!
gotFd
)
{
return
NULL
;
}
return
(
jbyteArray
)
JNIHandles
::
make_local
(
env
,
Annotations
::
make_java_array
(
fd
.
type_annotations
(),
THREAD
));
JVM_END
static
void
bounds_check
(
constantPoolHandle
cp
,
jint
index
,
TRAPS
)
{
if
(
!
cp
->
is_within_bounds
(
index
))
{
THROW_MSG
(
vmSymbols
::
java_lang_IllegalArgumentException
(),
"Constant pool index out of bounds"
);
...
...
src/share/vm/prims/jvm.h
浏览文件 @
8f6f8467
...
...
@@ -523,6 +523,14 @@ JVM_GetMethodParameterAnnotations(JNIEnv *env, jobject method);
JNIEXPORT
jbyteArray
JNICALL
JVM_GetClassTypeAnnotations
(
JNIEnv
*
env
,
jclass
cls
);
// field is a handle to a java.lang.reflect.Field object
JNIEXPORT
jbyteArray
JNICALL
JVM_GetFieldTypeAnnotations
(
JNIEnv
*
env
,
jobject
field
);
// method is a handle to a java.lang.reflect.Method object
JNIEXPORT
jbyteArray
JNICALL
JVM_GetMethodTypeAnnotations
(
JNIEnv
*
env
,
jobject
method
);
/*
* New (JDK 1.4) reflection implementation
*/
...
...
src/share/vm/runtime/arguments.cpp
浏览文件 @
8f6f8467
...
...
@@ -260,6 +260,7 @@ static ObsoleteFlag obsolete_jvm_flags[] = {
{
"CMSRevisitStackSize"
,
JDK_Version
::
jdk
(
8
),
JDK_Version
::
jdk
(
9
)
},
{
"PrintRevisitStats"
,
JDK_Version
::
jdk
(
8
),
JDK_Version
::
jdk
(
9
)
},
{
"UseVectoredExceptions"
,
JDK_Version
::
jdk
(
8
),
JDK_Version
::
jdk
(
9
)
},
{
"UseSplitVerifier"
,
JDK_Version
::
jdk
(
8
),
JDK_Version
::
jdk
(
9
)
},
#ifdef PRODUCT
{
"DesiredMethodLimit"
,
JDK_Version
::
jdk_update
(
7
,
2
),
JDK_Version
::
jdk
(
8
)
},
...
...
src/share/vm/runtime/globals.hpp
浏览文件 @
8f6f8467
...
...
@@ -679,9 +679,6 @@ class CommandLineFlags {
product(bool, UseCompilerSafepoints, true, \
"Stop at safepoints in compiled code") \
\
product(bool, UseSplitVerifier, true, \
"use split verifier with StackMapTable attributes") \
\
product(bool, FailOverToOldVerifier, true, \
"fail over to old verifier when split verifier fails") \
\
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录