--- 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