hotspot/src/share/vm/gc/g1/g1EvacFailure.hpp
changeset 34311 586e90e84d60
parent 31631 4536cf7bc89f
child 35943 e726308008c0
--- a/hotspot/src/share/vm/gc/g1/g1EvacFailure.hpp	Mon Oct 19 16:33:12 2015 +0200
+++ b/hotspot/src/share/vm/gc/g1/g1EvacFailure.hpp	Thu Nov 26 09:50:22 2015 +0100
@@ -32,6 +32,20 @@
 
 class G1CollectedHeap;
 
+class OopAndMarkOop {
+  oop _o;
+  markOop _m;
+ public:
+  OopAndMarkOop(oop obj, markOop m) : _o(obj), _m(m) {
+  }
+
+  void set_mark() {
+    _o->set_mark(_m);
+  }
+};
+
+typedef Stack<OopAndMarkOop,mtGC> OopAndMarkOopStack;
+
 // Task to fixup self-forwarding pointers
 // installed as a result of an evacuation failure.
 class G1ParRemoveSelfForwardPtrsTask: public AbstractGangTask {
@@ -45,4 +59,12 @@
   void work(uint worker_id);
 };
 
+class G1RestorePreservedMarksTask : public AbstractGangTask {
+  OopAndMarkOopStack* _preserved_objs;
+ public:
+  G1RestorePreservedMarksTask(OopAndMarkOopStack* preserved_objs);
+
+  void work(uint worker_id);
+};
+
 #endif // SHARE_VM_GC_G1_G1EVACFAILURE_HPP