Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
417017da
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看板
提交
417017da
编写于
9月 20, 2012
作者:
K
kevinw
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
9ff07a77
cb1db7a2
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
109 addition
and
9 deletion
+109
-9
make/bsd/Makefile
make/bsd/Makefile
+12
-0
make/bsd/makefiles/launcher.make
make/bsd/makefiles/launcher.make
+1
-1
make/bsd/makefiles/vm.make
make/bsd/makefiles/vm.make
+1
-1
make/defs.make
make/defs.make
+3
-0
make/linux/Makefile
make/linux/Makefile
+12
-0
make/linux/makefiles/launcher.make
make/linux/makefiles/launcher.make
+1
-1
make/linux/makefiles/vm.make
make/linux/makefiles/vm.make
+1
-1
make/solaris/Makefile
make/solaris/Makefile
+10
-0
make/solaris/makefiles/launcher.make
make/solaris/makefiles/launcher.make
+1
-1
make/solaris/makefiles/vm.make
make/solaris/makefiles/vm.make
+1
-1
src/share/vm/prims/jvmtiClassFileReconstituter.cpp
src/share/vm/prims/jvmtiClassFileReconstituter.cpp
+65
-3
src/share/vm/prims/jvmtiClassFileReconstituter.hpp
src/share/vm/prims/jvmtiClassFileReconstituter.hpp
+1
-0
未找到文件。
make/bsd/Makefile
浏览文件 @
417017da
...
...
@@ -288,42 +288,54 @@ platform_zero: $(GAMMADIR)/make/$(OSNAME)/platform_zero.in
$(TARGETS_C2)
:
$(SUBDIRS_C2)
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler2/
$@
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler2/
$@
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler2/
$@
&&
$(MAKE)
$(MFLAGS)
install
endif
$(TARGETS_TIERED)
:
$(SUBDIRS_TIERED)
cd
$(OSNAME)
_
$(BUILDARCH)
_tiered/
$(
patsubst
%tiered,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(BUILDARCH)
_tiered/
$(
patsubst
%tiered,%,
$@
)
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(BUILDARCH)
_tiered/
$(
patsubst
%tiered,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
install
endif
$(TARGETS_C1)
:
$(SUBDIRS_C1)
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler1/
$(
patsubst
%1,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler1/
$(
patsubst
%1,%,
$@
)
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler1/
$(
patsubst
%1,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
install
endif
$(TARGETS_CORE)
:
$(SUBDIRS_CORE)
cd
$(OSNAME)
_
$(BUILDARCH)
_core/
$(
patsubst
%core,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(BUILDARCH)
_core/
$(
patsubst
%core,%,
$@
)
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(BUILDARCH)
_core/
$(
patsubst
%core,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
install
endif
$(TARGETS_ZERO)
:
$(SUBDIRS_ZERO)
cd
$(OSNAME)
_
$(VARIANTARCH)
_zero/
$(
patsubst
%zero,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(VARIANTARCH)
_zero/
$(
patsubst
%zero,%,
$@
)
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(VARIANTARCH)
_zero/
$(
patsubst
%zero,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
install
endif
$(TARGETS_SHARK)
:
$(SUBDIRS_SHARK)
cd
$(OSNAME)
_
$(VARIANTARCH)
_shark/
$(
patsubst
%shark,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(VARIANTARCH)
_shark/
$(
patsubst
%shark,%,
$@
)
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(VARIANTARCH)
_shark/
$(
patsubst
%shark,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
install
endif
...
...
make/bsd/makefiles/launcher.make
浏览文件 @
417017da
...
...
@@ -101,7 +101,7 @@ $(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
$(LAUNCHER)
:
$(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
$(QUIETLY)
echo
Linking launcher...
$(QUIETLY)
$
(
LINK_LAUNCHER/PRE_HOOK
)
$(QUIETLY)
$(LINK_LAUNCHER)
$(LFLAGS_LAUNCHER)
-o
$@
$(
OBJS
)
$(LIBS_LAUNCHER)
$(QUIETLY)
$(LINK_LAUNCHER)
$(LFLAGS_LAUNCHER)
-o
$@
$(
sort
$(OBJS)
)
$(LIBS_LAUNCHER)
$(QUIETLY)
$
(
LINK_LAUNCHER/POST_HOOK
)
# Sign the launcher with the development certificate
(
if
present
)
so that it can be used
# to run JStack, JInfo, et al.
...
...
make/bsd/makefiles/vm.make
浏览文件 @
417017da
...
...
@@ -311,7 +311,7 @@ $(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT)
echo
Linking vm...
;
\
$
(
LINK_LIB.CXX/PRE_HOOK
)
\
$(LINK_VM)
$(LD_SCRIPT_FLAG)
\
$(LFLAGS_VM)
-o
$@
$(
LIBJVM.o)
$(LIBS_VM)
;
\
$(LFLAGS_VM)
-o
$@
$(
sort
$(LIBJVM.o)
)
$(LIBS_VM)
;
\
$
(
LINK_LIB.CXX/POST_HOOK
)
\
rm
-f
$@
.1
;
ln
-s
$@
$@
.1
;
\
[
-f
$(LIBJVM_G)
]
||
{
ln
-s
$@
$(LIBJVM_G)
;
ln
-s
$@
.1
$(LIBJVM_G)
.1
;
}
;
\
...
...
make/defs.make
浏览文件 @
417017da
...
...
@@ -332,6 +332,9 @@ EXPORT_LIST += $(EXPORT_INCLUDE_DIR)/jni.h
EXPORT_LIST
+=
$(EXPORT_INCLUDE_DIR)
/
$(JDK_INCLUDE_SUBDIR)
/jni_md.h
EXPORT_LIST
+=
$(EXPORT_INCLUDE_DIR)
/jmm.h
# By default, run Queens test after building
TEST_IN_BUILD
?=
true
ifndef
JAVASE_EMBEDDED
EXPORT_LIST
+=
$(EXPORT_INCLUDE_DIR)
/jfr.h
endif
...
...
make/linux/Makefile
浏览文件 @
417017da
...
...
@@ -288,42 +288,54 @@ platform_zero: $(GAMMADIR)/make/$(OSNAME)/platform_zero.in
$(TARGETS_C2)
:
$(SUBDIRS_C2)
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler2/
$@
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler2/
$@
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler2/
$@
&&
$(MAKE)
$(MFLAGS)
install
endif
$(TARGETS_TIERED)
:
$(SUBDIRS_TIERED)
cd
$(OSNAME)
_
$(BUILDARCH)
_tiered/
$(
patsubst
%tiered,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(BUILDARCH)
_tiered/
$(
patsubst
%tiered,%,
$@
)
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(BUILDARCH)
_tiered/
$(
patsubst
%tiered,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
install
endif
$(TARGETS_C1)
:
$(SUBDIRS_C1)
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler1/
$(
patsubst
%1,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler1/
$(
patsubst
%1,%,
$@
)
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler1/
$(
patsubst
%1,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
install
endif
$(TARGETS_CORE)
:
$(SUBDIRS_CORE)
cd
$(OSNAME)
_
$(BUILDARCH)
_core/
$(
patsubst
%core,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(BUILDARCH)
_core/
$(
patsubst
%core,%,
$@
)
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(BUILDARCH)
_core/
$(
patsubst
%core,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
install
endif
$(TARGETS_ZERO)
:
$(SUBDIRS_ZERO)
cd
$(OSNAME)
_
$(VARIANTARCH)
_zero/
$(
patsubst
%zero,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(VARIANTARCH)
_zero/
$(
patsubst
%zero,%,
$@
)
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(VARIANTARCH)
_zero/
$(
patsubst
%zero,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
install
endif
$(TARGETS_SHARK)
:
$(SUBDIRS_SHARK)
cd
$(OSNAME)
_
$(VARIANTARCH)
_shark/
$(
patsubst
%shark,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(VARIANTARCH)
_shark/
$(
patsubst
%shark,%,
$@
)
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(VARIANTARCH)
_shark/
$(
patsubst
%shark,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
install
endif
...
...
make/linux/makefiles/launcher.make
浏览文件 @
417017da
...
...
@@ -82,7 +82,7 @@ $(LAUNCHER_OUT)/%.o: $(LAUNCHERDIR)/%.c
$(LAUNCHER)
:
$(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
$(QUIETLY)
echo
Linking launcher...
$(QUIETLY)
$
(
LINK_LAUNCHER/PRE_HOOK
)
$(QUIETLY)
$(LINK_LAUNCHER)
$(LFLAGS_LAUNCHER)
-o
$@
$(
OBJS
)
$(LIBS_LAUNCHER)
$(QUIETLY)
$(LINK_LAUNCHER)
$(LFLAGS_LAUNCHER)
-o
$@
$(
sort
$(OBJS)
)
$(LIBS_LAUNCHER)
$(QUIETLY)
$
(
LINK_LAUNCHER/POST_HOOK
)
$(LAUNCHER)
:
$(LAUNCHER_SCRIPT)
...
...
make/linux/makefiles/vm.make
浏览文件 @
417017da
...
...
@@ -320,7 +320,7 @@ $(LIBJVM): $(LIBJVM.o) $(LIBJVM_MAPFILE) $(LD_SCRIPT)
echo
Linking vm...
;
\
$
(
LINK_LIB.CXX/PRE_HOOK
)
\
$(LINK_VM)
$(LD_SCRIPT_FLAG)
\
$(LFLAGS_VM)
-o
$@
$(
LIBJVM.o
)
$(LIBS_VM)
;
\
$(LFLAGS_VM)
-o
$@
$(
sort
$(LIBJVM.o)
)
$(LIBS_VM)
;
\
$
(
LINK_LIB.CXX/POST_HOOK
)
\
rm
-f
$@
.1
;
ln
-s
$@
$@
.1
;
\
[
-f
$(LIBJVM_G)
]
||
{
ln
-s
$@
$(LIBJVM_G)
;
ln
-s
$@
.1
$(LIBJVM_G)
.1
;
}
;
\
...
...
make/solaris/Makefile
浏览文件 @
417017da
...
...
@@ -237,35 +237,45 @@ $(SUBDIRS_KERNEL): $(BUILDTREE_MAKE)
$(TARGETS_C2)
:
$(SUBDIRS_C2)
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler2/
$@
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler2/
$@
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler2/
$@
&&
$(MAKE)
$(MFLAGS)
install
endif
$(TARGETS_TIERED)
:
$(SUBDIRS_TIERED)
cd
$(OSNAME)
_
$(BUILDARCH)
_tiered/
$(
patsubst
%tiered,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(BUILDARCH)
_tiered/
$(
patsubst
%tiered,%,
$@
)
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(BUILDARCH)
_tiered/
$(
patsubst
%tiered,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
install
endif
$(TARGETS_C1)
:
$(SUBDIRS_C1)
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler1/
$(
patsubst
%1,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler1/
$(
patsubst
%1,%,
$@
)
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(BUILDARCH)
_compiler1/
$(
patsubst
%1,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
install
endif
$(TARGETS_CORE)
:
$(SUBDIRS_CORE)
cd
$(OSNAME)
_
$(BUILDARCH)
_core/
$(
patsubst
%core,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(BUILDARCH)
_core/
$(
patsubst
%core,%,
$@
)
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(BUILDARCH)
_core/
$(
patsubst
%core,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
install
endif
$(TARGETS_KERNEL)
:
$(SUBDIRS_KERNEL)
cd
$(OSNAME)
_
$(BUILDARCH)
_kernel/
$(
patsubst
%kernel,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
ifeq
($(TEST_IN_BUILD),true)
cd
$(OSNAME)
_
$(BUILDARCH)
_kernel/
$(
patsubst
%kernel,%,
$@
)
&&
./test_gamma
endif
ifdef
INSTALL
cd
$(OSNAME)
_
$(BUILDARCH)
_kernel/
$(
patsubst
%kernel,%,
$@
)
&&
$(MAKE)
$(MFLAGS)
install
endif
...
...
make/solaris/makefiles/launcher.make
浏览文件 @
417017da
...
...
@@ -96,7 +96,7 @@ $(LAUNCHER): $(OBJS) $(LIBJVM) $(LAUNCHER_MAPFILE)
ifeq
($(filter -sbfast -xsbfast, $(CFLAGS_BROWSE)),)
$(QUIETLY)
echo
Linking launcher...
$(QUIETLY)
$
(
LINK_LAUNCHER/PRE_HOOK
)
$(QUIETLY)
$(LINK_LAUNCHER)
$(LFLAGS_LAUNCHER)
-o
$@
$(
OBJS
)
$(LIBS_LAUNCHER)
$(QUIETLY)
$(LINK_LAUNCHER)
$(LFLAGS_LAUNCHER)
-o
$@
$(
sort
$(OBJS)
)
$(LIBS_LAUNCHER)
$(QUIETLY)
$
(
LINK_LAUNCHER/POST_HOOK
)
endif
# filter -sbfast -xsbfast
...
...
make/solaris/makefiles/vm.make
浏览文件 @
417017da
...
...
@@ -288,7 +288,7 @@ $(LIBJVM): $(ADD_GNU_DEBUGLINK) $(FIX_EMPTY_SEC_HDR_FLAGS) $(LIBJVM.o) $(LIBJVM_
ifeq
($(filter -sbfast -xsbfast, $(CFLAGS_BROWSE)),)
@
echo
Linking vm...
$(QUIETLY)
$
(
LINK_LIB.CXX/PRE_HOOK
)
$(QUIETLY)
$(LINK_VM)
$(LFLAGS_VM)
-o
$@
$(
LIBJVM.o
)
$(LIBS_VM)
$(QUIETLY)
$(LINK_VM)
$(LFLAGS_VM)
-o
$@
$(
sort
$(LIBJVM.o)
)
$(LIBS_VM)
$(QUIETLY)
$
(
LINK_LIB.CXX/POST_HOOK
)
$(QUIETLY)
rm
-f
$@
.1
&&
ln
-s
$@
$@
.1
$(QUIETLY)
[
-f
$(LIBJVM_G)
]
||
ln
-s
$@
$(LIBJVM_G)
...
...
src/share/vm/prims/jvmtiClassFileReconstituter.cpp
浏览文件 @
417017da
...
...
@@ -43,7 +43,7 @@
#ifdef TARGET_ARCH_ppc
# include "bytes_ppc.hpp"
#endif
// FIXME: add Deprecated
, LVTT attributes
// FIXME: add Deprecated
attribute
// FIXME: fix Synthetic attribute
// FIXME: per Serguei, add error return handling for ConstantPool::copy_cpool_bytes()
...
...
@@ -135,6 +135,7 @@ void JvmtiClassFileReconstituter::write_code_attribute(methodHandle method) {
u2
line_num_cnt
=
0
;
int
stackmap_len
=
0
;
int
local_variable_table_length
=
0
;
int
local_variable_type_table_length
=
0
;
// compute number and length of attributes
int
attr_count
=
0
;
...
...
@@ -171,8 +172,8 @@ void JvmtiClassFileReconstituter::write_code_attribute(methodHandle method) {
}
if
(
method
->
has_localvariable_table
())
{
local_variable_table_length
=
method
->
localvariable_table_length
();
++
attr_count
;
if
(
local_variable_table_length
!=
0
)
{
++
attr_count
;
// Compute the size of the local variable table attribute (VM stores raw):
// LocalVariableTable_attribute {
// u2 attribute_name_index;
...
...
@@ -186,6 +187,31 @@ void JvmtiClassFileReconstituter::write_code_attribute(methodHandle method) {
// u2 index;
// }
attr_size
+=
2
+
4
+
2
+
local_variable_table_length
*
(
2
+
2
+
2
+
2
+
2
);
// Local variables with generic signatures must have LVTT entries
LocalVariableTableElement
*
elem
=
method
->
localvariable_table_start
();
for
(
int
idx
=
0
;
idx
<
local_variable_table_length
;
idx
++
)
{
if
(
elem
[
idx
].
signature_cp_index
!=
0
)
{
local_variable_type_table_length
++
;
}
}
if
(
local_variable_type_table_length
!=
0
)
{
++
attr_count
;
// Compute the size of the local variable type table attribute (VM stores raw):
// LocalVariableTypeTable_attribute {
// u2 attribute_name_index;
// u4 attribute_length;
// u2 local_variable_type_table_length;
// {
// u2 start_pc;
// u2 length;
// u2 name_index;
// u2 signature_index;
// u2 index;
// }
attr_size
+=
2
+
4
+
2
+
local_variable_type_table_length
*
(
2
+
2
+
2
+
2
+
2
);
}
}
}
...
...
@@ -223,6 +249,9 @@ void JvmtiClassFileReconstituter::write_code_attribute(methodHandle method) {
if
(
local_variable_table_length
!=
0
)
{
write_local_variable_table_attribute
(
method
,
local_variable_table_length
);
}
if
(
local_variable_type_table_length
!=
0
)
{
write_local_variable_type_table_attribute
(
method
,
local_variable_type_table_length
);
}
}
// Write Exceptions attribute
...
...
@@ -387,7 +416,7 @@ void JvmtiClassFileReconstituter::write_line_number_table_attribute(methodHandle
}
}
// Write L
ineNumber
Table attribute
// Write L
ocalVariable
Table attribute
// JVMSpec| LocalVariableTable_attribute {
// JVMSpec| u2 attribute_name_index;
// JVMSpec| u4 attribute_length;
...
...
@@ -417,6 +446,39 @@ void JvmtiClassFileReconstituter::write_local_variable_table_attribute(methodHan
}
}
// Write LocalVariableTypeTable attribute
// JVMSpec| LocalVariableTypeTable_attribute {
// JVMSpec| u2 attribute_name_index;
// JVMSpec| u4 attribute_length;
// JVMSpec| u2 local_variable_type_table_length;
// JVMSpec| { u2 start_pc;
// JVMSpec| u2 length;
// JVMSpec| u2 name_index;
// JVMSpec| u2 signature_index;
// JVMSpec| u2 index;
// JVMSpec| } local_variable_type_table[local_variable_type_table_length];
// JVMSpec| }
void
JvmtiClassFileReconstituter
::
write_local_variable_type_table_attribute
(
methodHandle
method
,
u2
num_entries
)
{
write_attribute_name_index
(
"LocalVariableTypeTable"
);
write_u4
(
2
+
num_entries
*
(
2
+
2
+
2
+
2
+
2
));
write_u2
(
num_entries
);
LocalVariableTableElement
*
elem
=
method
->
localvariable_table_start
();
for
(
int
j
=
0
;
j
<
method
->
localvariable_table_length
();
j
++
)
{
if
(
elem
->
signature_cp_index
>
0
)
{
// Local variable has a generic signature - write LVTT attribute entry
write_u2
(
elem
->
start_bci
);
write_u2
(
elem
->
length
);
write_u2
(
elem
->
name_cp_index
);
write_u2
(
elem
->
signature_cp_index
);
write_u2
(
elem
->
slot
);
num_entries
--
;
}
elem
++
;
}
assert
(
num_entries
==
0
,
"just checking"
);
}
// Write stack map table attribute
// JSR-202| StackMapTable_attribute {
// JSR-202| u2 attribute_name_index;
...
...
src/share/vm/prims/jvmtiClassFileReconstituter.hpp
浏览文件 @
417017da
...
...
@@ -120,6 +120,7 @@ class JvmtiClassFileReconstituter : public JvmtiConstantPoolReconstituter {
u2
line_number_table_entries
(
methodHandle
method
);
void
write_line_number_table_attribute
(
methodHandle
method
,
u2
num_entries
);
void
write_local_variable_table_attribute
(
methodHandle
method
,
u2
num_entries
);
void
write_local_variable_type_table_attribute
(
methodHandle
method
,
u2
num_entries
);
void
write_stackmap_table_attribute
(
methodHandle
method
,
int
stackmap_table_len
);
u2
inner_classes_attribute_length
();
void
write_inner_classes_attribute
(
int
length
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录