comparison src/share/vm/gc_implementation/g1/g1OopClosures.hpp @ 12316:190899198332

7195622: CheckUnhandledOops has limited usefulness now Summary: Enable CHECK_UNHANDLED_OOPS in fastdebug builds across all supported platforms. Reviewed-by: coleenp, hseigel, dholmes, stefank, twisti, ihse, rdurbin Contributed-by: lois.foltan@oracle.com
author hseigel
date Thu, 26 Sep 2013 10:25:02 -0400
parents da91efe96a93
children c685ef164975
comparison
equal deleted inserted replaced
12315:c1fbf21c7397 12316:190899198332
1 /* 1 /*
2 * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2001, 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.
89 template <class T> inline bool has_partial_array_mask(T* ref) { 89 template <class T> inline bool has_partial_array_mask(T* ref) {
90 return ((uintptr_t)ref & G1_PARTIAL_ARRAY_MASK) == G1_PARTIAL_ARRAY_MASK; 90 return ((uintptr_t)ref & G1_PARTIAL_ARRAY_MASK) == G1_PARTIAL_ARRAY_MASK;
91 } 91 }
92 92
93 template <class T> inline T* set_partial_array_mask(T obj) { 93 template <class T> inline T* set_partial_array_mask(T obj) {
94 assert(((uintptr_t)obj & G1_PARTIAL_ARRAY_MASK) == 0, "Information loss!"); 94 assert(((uintptr_t)(void *)obj & G1_PARTIAL_ARRAY_MASK) == 0, "Information loss!");
95 return (T*) ((uintptr_t)obj | G1_PARTIAL_ARRAY_MASK); 95 return (T*) ((uintptr_t)(void *)obj | G1_PARTIAL_ARRAY_MASK);
96 } 96 }
97 97
98 template <class T> inline oop clear_partial_array_mask(T* ref) { 98 template <class T> inline oop clear_partial_array_mask(T* ref) {
99 return oop((intptr_t)ref & ~G1_PARTIAL_ARRAY_MASK); 99 return cast_to_oop((intptr_t)ref & ~G1_PARTIAL_ARRAY_MASK);
100 } 100 }
101 101
102 class G1ParScanPartialArrayClosure : public G1ParClosureSuper { 102 class G1ParScanPartialArrayClosure : public G1ParClosureSuper {
103 G1ParScanClosure _scanner; 103 G1ParScanClosure _scanner;
104 104