summaryrefslogtreecommitdiffstats
path: root/recipes-core/icedtea/openjdk-7-03b147/sigsegv.patch
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) {