src/hotspot/share/gc/g1/g1ParScanThreadState.inline.hpp
changeset 49722 a47d1e21b3f1
parent 49592 77fb0be7d19f
child 49744 5dcc893ad119
equal deleted inserted replaced
49721:ea0cc7c74e75 49722:a47d1e21b3f1
     1 /*
     1 /*
     2  * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    38   // set, due to (benign) races in the claim mechanism during RSet scanning more
    38   // set, due to (benign) races in the claim mechanism during RSet scanning more
    39   // than one thread might claim the same card. So the same card may be
    39   // than one thread might claim the same card. So the same card may be
    40   // processed multiple times. So redo this check.
    40   // processed multiple times. So redo this check.
    41   const InCSetState in_cset_state = _g1h->in_cset_state(obj);
    41   const InCSetState in_cset_state = _g1h->in_cset_state(obj);
    42   if (in_cset_state.is_in_cset()) {
    42   if (in_cset_state.is_in_cset()) {
    43     markOop m = obj->mark();
    43     markOop m = obj->mark_raw();
    44     if (m->is_marked()) {
    44     if (m->is_marked()) {
    45       obj = (oop) m->decode_pointer();
    45       obj = (oop) m->decode_pointer();
    46     } else {
    46     } else {
    47       obj = copy_to_survivor_space(in_cset_state, obj, m);
    47       obj = copy_to_survivor_space(in_cset_state, obj, m);
    48     }
    48     }