Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
2c13e28b
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看板
提交
2c13e28b
编写于
3月 04, 2016
作者:
A
aeriksso
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8129419: heapDumper.cpp: assert(length_in_bytes > 0) failed: nothing to copy
Reviewed-by: dsamersoff, dcubed
上级
da2b09fc
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
14 addition
and
7 deletion
+14
-7
src/share/classes/com/sun/tools/hat/internal/parser/HprofReader.java
...lasses/com/sun/tools/hat/internal/parser/HprofReader.java
+14
-7
未找到文件。
src/share/classes/com/sun/tools/hat/internal/parser/HprofReader.java
浏览文件 @
2c13e28b
...
...
@@ -354,7 +354,14 @@ public class HprofReader extends Reader /* imports */ implements ArrayTypeCodes
}
private
void
skipBytes
(
long
length
)
throws
IOException
{
in
.
skipBytes
((
int
)
length
);
while
(
length
>
0
)
{
long
skipped
=
in
.
skip
(
length
);
length
-=
skipped
;
if
(
skipped
==
0
)
{
// EOF or other problem, throw exception
throw
new
EOFException
(
"Couldn't skip enough bytes"
);
}
}
}
private
int
readVersionHeader
()
throws
IOException
{
...
...
@@ -486,12 +493,12 @@ public class HprofReader extends Reader /* imports */ implements ArrayTypeCodes
break
;
}
case
HPROF_GC_OBJ_ARRAY_DUMP:
{
int
bytesRead
=
readArray
(
false
);
long
bytesRead
=
readArray
(
false
);
bytesLeft
-=
bytesRead
;
break
;
}
case
HPROF_GC_PRIM_ARRAY_DUMP:
{
int
bytesRead
=
readArray
(
true
);
long
bytesRead
=
readArray
(
true
);
bytesLeft
-=
bytesRead
;
break
;
}
...
...
@@ -743,12 +750,12 @@ public class HprofReader extends Reader /* imports */ implements ArrayTypeCodes
// Handle a HPROF_GC_OBJ_ARRAY_DUMP or HPROF_GC_PRIM_ARRAY_DUMP
// Return number of bytes read
//
private
int
readArray
(
boolean
isPrimitive
)
throws
IOException
{
private
long
readArray
(
boolean
isPrimitive
)
throws
IOException
{
long
start
=
in
.
position
();
long
id
=
readID
();
StackTrace
stackTrace
=
getStackTraceFromSerial
(
in
.
readInt
());
int
num
=
in
.
readInt
();
int
bytesRead
=
identifierSize
+
8
;
long
bytesRead
=
identifierSize
+
8
;
long
elementClassID
;
if
(
isPrimitive
)
{
elementClassID
=
in
.
readByte
();
...
...
@@ -810,14 +817,14 @@ public class HprofReader extends Reader /* imports */ implements ArrayTypeCodes
}
}
if
(
primitiveSignature
!=
0x00
)
{
int
size
=
elSize
*
num
;
long
size
=
elSize
*
(
long
)
num
;
bytesRead
+=
size
;
JavaValueArray
va
=
new
JavaValueArray
(
primitiveSignature
,
start
);
skipBytes
(
size
);
snapshot
.
addHeapObject
(
id
,
va
);
snapshot
.
setSiteTrace
(
va
,
stackTrace
);
}
else
{
int
sz
=
num
*
identifierSize
;
long
sz
=
(
long
)
num
*
identifierSize
;
bytesRead
+=
sz
;
JavaObjectArray
arr
=
new
JavaObjectArray
(
elementClassID
,
start
);
skipBytes
(
sz
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录