1 /* |
1 /* |
2 * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2001, 2014, 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. |
163 // This is a fast test on whether a reference points into the |
163 // This is a fast test on whether a reference points into the |
164 // collection set or not. Assume that the reference |
164 // collection set or not. Assume that the reference |
165 // points into the heap. |
165 // points into the heap. |
166 inline bool G1CollectedHeap::in_cset_fast_test(oop obj) { |
166 inline bool G1CollectedHeap::in_cset_fast_test(oop obj) { |
167 assert(_in_cset_fast_test != NULL, "sanity"); |
167 assert(_in_cset_fast_test != NULL, "sanity"); |
168 assert(_g1_committed.contains((HeapWord*) obj), err_msg("Given reference outside of heap, is "PTR_FORMAT, (HeapWord*)obj)); |
168 assert(_g1_committed.contains((HeapWord*) obj), err_msg("Given reference outside of heap, is "PTR_FORMAT, p2i((HeapWord*)obj))); |
169 // no need to subtract the bottom of the heap from obj, |
169 // no need to subtract the bottom of the heap from obj, |
170 // _in_cset_fast_test is biased |
170 // _in_cset_fast_test is biased |
171 uintx index = cast_from_oop<uintx>(obj) >> HeapRegion::LogOfHRGrainBytes; |
171 uintx index = cast_from_oop<uintx>(obj) >> HeapRegion::LogOfHRGrainBytes; |
172 bool ret = _in_cset_fast_test[index]; |
172 bool ret = _in_cset_fast_test[index]; |
173 // let's make sure the result is consistent with what the slower |
173 // let's make sure the result is consistent with what the slower |