Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
b0211ca3
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b0211ca3
编写于
7月 12, 2013
作者:
Z
zgu
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
21095a0a
5bbd7df3
变更
8
展开全部
隐藏空白更改
内联
并排
Showing
8 changed file
with
466 addition
and
167 deletion
+466
-167
src/share/vm/classfile/defaultMethods.cpp
src/share/vm/classfile/defaultMethods.cpp
+423
-165
src/share/vm/memory/resourceArea.hpp
src/share/vm/memory/resourceArea.hpp
+26
-1
src/share/vm/runtime/globals.hpp
src/share/vm/runtime/globals.hpp
+3
-0
src/share/vm/runtime/thread.cpp
src/share/vm/runtime/thread.cpp
+1
-0
src/share/vm/runtime/thread.hpp
src/share/vm/runtime/thread.hpp
+6
-0
src/share/vm/services/memBaseline.cpp
src/share/vm/services/memBaseline.cpp
+1
-1
src/share/vm/utilities/ostream.cpp
src/share/vm/utilities/ostream.cpp
+3
-0
src/share/vm/utilities/ostream.hpp
src/share/vm/utilities/ostream.hpp
+3
-0
未找到文件。
src/share/vm/classfile/defaultMethods.cpp
浏览文件 @
b0211ca3
此差异已折叠。
点击以展开。
src/share/vm/memory/resourceArea.hpp
浏览文件 @
b0211ca3
/*
* Copyright (c) 1997, 201
2
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 201
3
, 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
...
...
@@ -83,6 +83,10 @@ protected:
Chunk
*
_chunk
;
// saved arena chunk
char
*
_hwm
,
*
_max
;
size_t
_size_in_bytes
;
#ifdef ASSERT
Thread
*
_thread
;
ResourceMark
*
_previous_resource_mark
;
#endif //ASSERT
void
initialize
(
Thread
*
thread
)
{
_area
=
thread
->
resource_area
();
...
...
@@ -92,6 +96,11 @@ protected:
_size_in_bytes
=
_area
->
size_in_bytes
();
debug_only
(
_area
->
_nesting
++
;)
assert
(
_area
->
_nesting
>
0
,
"must stack allocate RMs"
);
#ifdef ASSERT
_thread
=
thread
;
_previous_resource_mark
=
thread
->
current_resource_mark
();
thread
->
set_current_resource_mark
(
this
);
#endif // ASSERT
}
public:
...
...
@@ -111,6 +120,17 @@ protected:
_size_in_bytes
=
r
->
_size_in_bytes
;
debug_only
(
_area
->
_nesting
++
;)
assert
(
_area
->
_nesting
>
0
,
"must stack allocate RMs"
);
#ifdef ASSERT
Thread
*
thread
=
ThreadLocalStorage
::
thread
();
if
(
thread
!=
NULL
)
{
_thread
=
thread
;
_previous_resource_mark
=
thread
->
current_resource_mark
();
thread
->
set_current_resource_mark
(
this
);
}
else
{
_thread
=
NULL
;
_previous_resource_mark
=
NULL
;
}
#endif // ASSERT
}
void
reset_to_mark
()
{
...
...
@@ -137,6 +157,11 @@ protected:
assert
(
_area
->
_nesting
>
0
,
"must stack allocate RMs"
);
debug_only
(
_area
->
_nesting
--
;)
reset_to_mark
();
#ifdef ASSERT
if
(
_thread
!=
NULL
)
{
_thread
->
set_current_resource_mark
(
_previous_resource_mark
);
}
#endif // ASSERT
}
...
...
src/share/vm/runtime/globals.hpp
浏览文件 @
b0211ca3
...
...
@@ -3679,6 +3679,9 @@ class CommandLineFlags {
develop(bool, VerifyGenericSignatures, false, \
"Abort VM on erroneous or inconsistent generic signatures") \
\
product(bool, ParseGenericDefaults, false, \
"Parse generic signatures for default method handling") \
\
product(bool, UseVMInterruptibleIO, false, \
"(Unstable, Solaris-specific) Thread interrupt before or with " \
"EINTR for I/O operations results in OS_INTRPT. The default value"\
...
...
src/share/vm/runtime/thread.cpp
浏览文件 @
b0211ca3
...
...
@@ -218,6 +218,7 @@ Thread::Thread() {
// allocated data structures
set_osthread
(
NULL
);
set_resource_area
(
new
(
mtThread
)
ResourceArea
());
DEBUG_ONLY
(
_current_resource_mark
=
NULL
;)
set_handle_area
(
new
(
mtThread
)
HandleArea
(
NULL
));
set_metadata_handles
(
new
(
ResourceObj
::
C_HEAP
,
mtClass
)
GrowableArray
<
Metadata
*>
(
30
,
true
));
set_active_handles
(
NULL
);
...
...
src/share/vm/runtime/thread.hpp
浏览文件 @
b0211ca3
...
...
@@ -86,6 +86,8 @@ class GCTaskQueue;
class
ThreadClosure
;
class
IdealGraphPrinter
;
DEBUG_ONLY
(
class
ResourceMark
;)
class
WorkerThread
;
// Class hierarchy
...
...
@@ -531,6 +533,8 @@ public:
// Thread local resource area for temporary allocation within the VM
ResourceArea
*
_resource_area
;
DEBUG_ONLY
(
ResourceMark
*
_current_resource_mark
;)
// Thread local handle area for allocation of handles within the VM
HandleArea
*
_handle_area
;
GrowableArray
<
Metadata
*>*
_metadata_handles
;
...
...
@@ -585,6 +589,8 @@ public:
// Deadlock detection
bool
allow_allocation
()
{
return
_allow_allocation_count
==
0
;
}
ResourceMark
*
current_resource_mark
()
{
return
_current_resource_mark
;
}
void
set_current_resource_mark
(
ResourceMark
*
rm
)
{
_current_resource_mark
=
rm
;
}
#endif
void
check_for_valid_safepoint_state
(
bool
potential_vm_operation
)
PRODUCT_RETURN
;
...
...
src/share/vm/services/memBaseline.cpp
浏览文件 @
b0211ca3
...
...
@@ -486,7 +486,7 @@ int MemBaseline::malloc_sort_by_addr(const void* p1, const void* p2) {
const
MemPointerRecord
*
mp1
=
(
const
MemPointerRecord
*
)
p1
;
const
MemPointerRecord
*
mp2
=
(
const
MemPointerRecord
*
)
p2
;
int
delta
=
UNSIGNED_COMPARE
(
mp1
->
addr
(),
mp2
->
addr
());
assert
(
delta
!=
0
,
"dup pointer"
);
assert
(
p1
==
p2
||
delta
!=
0
,
"dup pointer"
);
return
delta
;
}
src/share/vm/utilities/ostream.cpp
浏览文件 @
b0211ca3
...
...
@@ -296,6 +296,7 @@ stringStream::stringStream(size_t initial_size) : outputStream() {
buffer
=
NEW_RESOURCE_ARRAY
(
char
,
buffer_length
);
buffer_pos
=
0
;
buffer_fixed
=
false
;
DEBUG_ONLY
(
rm
=
Thread
::
current
()
->
current_resource_mark
();)
}
// useful for output to fixed chunks of memory, such as performance counters
...
...
@@ -321,6 +322,8 @@ void stringStream::write(const char* s, size_t len) {
end
=
buffer_length
*
2
;
}
char
*
oldbuf
=
buffer
;
assert
(
rm
==
NULL
||
Thread
::
current
()
->
current_resource_mark
()
==
rm
,
"stringStream is re-allocated with a different ResourceMark"
);
buffer
=
NEW_RESOURCE_ARRAY
(
char
,
end
);
strncpy
(
buffer
,
oldbuf
,
buffer_pos
);
buffer_length
=
end
;
...
...
src/share/vm/utilities/ostream.hpp
浏览文件 @
b0211ca3
...
...
@@ -28,6 +28,8 @@
#include "memory/allocation.hpp"
#include "runtime/timer.hpp"
DEBUG_ONLY
(
class
ResourceMark
;)
// Output streams for printing
//
// Printing guidelines:
...
...
@@ -177,6 +179,7 @@ class stringStream : public outputStream {
size_t
buffer_pos
;
size_t
buffer_length
;
bool
buffer_fixed
;
DEBUG_ONLY
(
ResourceMark
*
rm
;)
public:
stringStream
(
size_t
initial_bufsize
=
256
);
stringStream
(
char
*
fixed_buffer
,
size_t
fixed_buffer_size
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录