hotspot/src/share/vm/gc_implementation/shared/markSweep.cpp
changeset 17370 59a0620561fa
parent 17105 25b392a7740d
child 17398 f7db0551c9eb
equal deleted inserted replaced
17367:64c84d620e5c 17370:59a0620561fa
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2013, 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.
    93       obj->follow_contents();
    93       obj->follow_contents();
    94     }
    94     }
    95     // Process ObjArrays one at a time to avoid marking stack bloat.
    95     // Process ObjArrays one at a time to avoid marking stack bloat.
    96     if (!_objarray_stack.is_empty()) {
    96     if (!_objarray_stack.is_empty()) {
    97       ObjArrayTask task = _objarray_stack.pop();
    97       ObjArrayTask task = _objarray_stack.pop();
    98       ObjArrayKlass* const k = (ObjArrayKlass*)task.obj()->klass();
    98       ObjArrayKlass* k = (ObjArrayKlass*)task.obj()->klass();
    99       k->oop_follow_contents(task.obj(), task.index());
    99       k->oop_follow_contents(task.obj(), task.index());
   100     }
   100     }
   101   } while (!_marking_stack.is_empty() || !_objarray_stack.is_empty());
   101   } while (!_marking_stack.is_empty() || !_objarray_stack.is_empty());
   102 }
   102 }
   103 
   103