blob: 0c3e44eff8260c148bc4bb9d1a73347d0be71257 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
diff --git a/openjdk-boot/hotspot/src/share/vm/runtime/thread.cpp b/openjdk-boot/hotspot/src/share/vm/runtime/thread.cpp
index 8b7059c8389f..67e9e7bd4bce 100644
--- a/openjdk-boot/hotspot/src/share/vm/runtime/thread.cpp
+++ b/openjdk-boot/hotspot/src/share/vm/runtime/thread.cpp
@@ -764,10 +764,13 @@ bool Thread::claim_oops_do_par_case(int strong_roots_parity) {
}
void Thread::oops_do(OopClosure* f, CodeBlobClosure* cf) {
- active_handles()->oops_do(f);
+ if (f && active_handles())
+ active_handles()->oops_do(f);
// Do oop for ThreadShadow
- f->do_oop((oop*)&_pending_exception);
- handle_area()->oops_do(f);
+ if (f)
+ f->do_oop((oop*)&_pending_exception);
+ if (f && handle_area())
+ handle_area()->oops_do(f);
}
void Thread::nmethods_do(CodeBlobClosure* cf) {
diff --git a/openjdk/hotspot/src/share/vm/runtime/thread.cpp b/openjdk/hotspot/src/share/vm/runtime/thread.cpp
index 8b7059c8389f..67e9e7bd4bce 100644
--- a/openjdk/hotspot/src/share/vm/runtime/thread.cpp
+++ b/openjdk/hotspot/src/share/vm/runtime/thread.cpp
@@ -764,10 +764,13 @@ bool Thread::claim_oops_do_par_case(int strong_roots_parity) {
}
void Thread::oops_do(OopClosure* f, CodeBlobClosure* cf) {
- active_handles()->oops_do(f);
+ if (f && active_handles())
+ active_handles()->oops_do(f);
// Do oop for ThreadShadow
- f->do_oop((oop*)&_pending_exception);
- handle_area()->oops_do(f);
+ if (f)
+ f->do_oop((oop*)&_pending_exception);
+ if (f && handle_area())
+ handle_area()->oops_do(f);
}
void Thread::nmethods_do(CodeBlobClosure* cf) {
|