Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
46667db9
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看板
提交
46667db9
编写于
2月 20, 2009
作者:
Y
ysr
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
6edc5672
6a27928a
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
16 addition
and
3 deletion
+16
-3
src/share/vm/memory/cardTableModRefBS.cpp
src/share/vm/memory/cardTableModRefBS.cpp
+16
-3
未找到文件。
src/share/vm/memory/cardTableModRefBS.cpp
浏览文件 @
46667db9
...
...
@@ -217,15 +217,28 @@ void CardTableModRefBS::resize_covered_region(MemRegion new_region) {
(
HeapWord
*
)
align_size_up
((
uintptr_t
)
new_end
,
_page_size
);
assert
(
new_end_aligned
>=
(
HeapWord
*
)
new_end
,
"align up, but less"
);
// Check the other regions (excludes "ind") to ensure that
// the new_end_aligned does not intrude onto the committed
// space of another region.
int
ri
=
0
;
for
(
ri
=
0
;
ri
<
_cur_covered_regions
;
ri
++
)
{
if
(
ri
!=
ind
)
{
if
(
_committed
[
ri
].
contains
(
new_end_aligned
))
{
assert
((
new_end_aligned
>=
_committed
[
ri
].
start
())
&&
(
_committed
[
ri
].
start
()
>
_committed
[
ind
].
start
()),
// The prior check included in the assert
// (new_end_aligned >= _committed[ri].start())
// is redundant with the "contains" test.
// Any region containing the new end
// should start at or beyond the region found (ind)
// for the new end (committed regions are not expected to
// be proper subsets of other committed regions).
assert
(
_committed
[
ri
].
start
()
>=
_committed
[
ind
].
start
(),
"New end of committed region is inconsistent"
);
new_end_aligned
=
_committed
[
ri
].
start
();
assert
(
new_end_aligned
>
_committed
[
ind
].
start
(),
// new_end_aligned can be equal to the start of its
// committed region (i.e., of "ind") if a second
// region following "ind" also start at the same location
// as "ind".
assert
(
new_end_aligned
>=
_committed
[
ind
].
start
(),
"New end of committed region is before start"
);
debug_only
(
collided
=
true
;)
// Should only collide with 1 region
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录