src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp

changeset 5097
92ef81e2f571
parent 4142
d8ce2825b193
child 6876
710a3c8b516e
equal deleted inserted replaced
5094:c272092594bd 5097:92ef81e2f571
1 /* 1 /*
2 * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2005, 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.
185 obj->follow_contents(this); 185 obj->follow_contents(this);
186 } 186 }
187 187
188 // Process ObjArrays one at a time to avoid marking stack bloat. 188 // Process ObjArrays one at a time to avoid marking stack bloat.
189 ObjArrayTask task; 189 ObjArrayTask task;
190 if (_objarray_stack.pop_overflow(task)) { 190 if (_objarray_stack.pop_overflow(task) || _objarray_stack.pop_local(task)) {
191 ObjArrayKlass* const k = (ObjArrayKlass*)task.obj()->klass(); 191 ObjArrayKlass* k = (ObjArrayKlass*)task.obj()->klass();
192 k->oop_follow_contents(this, task.obj(), task.index());
193 } else if (_objarray_stack.pop_local(task)) {
194 ObjArrayKlass* const k = (ObjArrayKlass*)task.obj()->klass();
195 k->oop_follow_contents(this, task.obj(), task.index()); 192 k->oop_follow_contents(this, task.obj(), task.index());
196 } 193 }
197 } while (!marking_stacks_empty()); 194 } while (!marking_stacks_empty());
198 195
199 assert(marking_stacks_empty(), "Sanity"); 196 assert(marking_stacks_empty(), "Sanity");

mercurial