1 /* |
1 /* |
2 * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2002, 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. |
41 if (p != NULL) { // XXX: error if p != NULL here |
41 if (p != NULL) { // XXX: error if p != NULL here |
42 oop o = oopDesc::load_decode_heap_oop_not_null(p); |
42 oop o = oopDesc::load_decode_heap_oop_not_null(p); |
43 if (o->is_forwarded()) { |
43 if (o->is_forwarded()) { |
44 o = o->forwardee(); |
44 o = o->forwardee(); |
45 // Card mark |
45 // Card mark |
46 if (PSScavenge::is_obj_in_young((HeapWord*) o)) { |
46 if (PSScavenge::is_obj_in_young(o)) { |
47 PSScavenge::card_table()->inline_write_ref_field_gc(p, o); |
47 PSScavenge::card_table()->inline_write_ref_field_gc(p, o); |
48 } |
48 } |
49 oopDesc::encode_store_heap_oop_not_null(p, o); |
49 oopDesc::encode_store_heap_oop_not_null(p, o); |
50 } else { |
50 } else { |
51 push_depth(p); |
51 push_depth(p); |
151 } |
151 } |
152 } |
152 } |
153 |
153 |
154 // This is the promotion failed test, and code handling. |
154 // This is the promotion failed test, and code handling. |
155 // The code belongs here for two reasons. It is slightly |
155 // The code belongs here for two reasons. It is slightly |
156 // different thatn the code below, and cannot share the |
156 // different than the code below, and cannot share the |
157 // CAS testing code. Keeping the code here also minimizes |
157 // CAS testing code. Keeping the code here also minimizes |
158 // the impact on the common case fast path code. |
158 // the impact on the common case fast path code. |
159 |
159 |
160 if (new_obj == NULL) { |
160 if (new_obj == NULL) { |
161 _old_gen_is_full = true; |
161 _old_gen_is_full = true; |