< prev index next >

src/share/vm/gc/g1/satbMarkQueue.cpp

Print this page
rev 10336 : [mq]: inc1

*** 1,7 **** /* ! * Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 126,141 **** for ( ; src < dst; ++src) { // Search low to high for an entry to keep. void* entry = *src; if (retain_entry(entry, g1h)) { // Found keeper. Search high to low for an entry to discard. ! while ((src < --dst) && retain_entry(*dst, g1h)) { } ! if (src >= dst) break; // Done if no discard found. *dst = entry; // Replace discard with keeper. } } ! assert(src == dst, "invariant"); _index = pointer_delta(dst, buf, 1); } // This method will first apply the above filtering to the buffer. If // post-filtering a large enough chunk of the buffer has been cleared --- 126,146 ---- for ( ; src < dst; ++src) { // Search low to high for an entry to keep. void* entry = *src; if (retain_entry(entry, g1h)) { // Found keeper. Search high to low for an entry to discard. ! while (src < --dst) { ! if (!retain_entry(*dst, g1h)) { *dst = entry; // Replace discard with keeper. + break; } } ! // If discard search failed (src == dst), the outer loop will also end. ! } ! } ! // dst points to the lowest retained entry, or the end of the buffer ! // if all the entries were filtered out. _index = pointer_delta(dst, buf, 1); } // This method will first apply the above filtering to the buffer. If // post-filtering a large enough chunk of the buffer has been cleared
< prev index next >