comparison src/share/vm/runtime/vmStructs.cpp @ 2119:d4fca0a6abde

7011386: race in objArrayKlass::array_klass_impl Summary: Move _lower_dimension field initialization before _higher_dimension and add storestore barrier. Reviewed-by: dholmes, iveresov, never
author kvn
date Tue, 11 Jan 2011 20:26:13 -0800
parents dad31fc330cd
children 3582bf76420e
comparison
equal deleted inserted replaced
2118:dd031b2226de 2119:d4fca0a6abde
1 /* 1 /*
2 * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2000, 2011, 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.
217 volatile_nonstatic_field(oopDesc, _mark, markOop) \ 217 volatile_nonstatic_field(oopDesc, _mark, markOop) \
218 volatile_nonstatic_field(oopDesc, _metadata._klass, wideKlassOop) \ 218 volatile_nonstatic_field(oopDesc, _metadata._klass, wideKlassOop) \
219 volatile_nonstatic_field(oopDesc, _metadata._compressed_klass, narrowOop) \ 219 volatile_nonstatic_field(oopDesc, _metadata._compressed_klass, narrowOop) \
220 static_field(oopDesc, _bs, BarrierSet*) \ 220 static_field(oopDesc, _bs, BarrierSet*) \
221 nonstatic_field(arrayKlass, _dimension, int) \ 221 nonstatic_field(arrayKlass, _dimension, int) \
222 nonstatic_field(arrayKlass, _higher_dimension, klassOop) \ 222 volatile_nonstatic_field(arrayKlass, _higher_dimension, klassOop) \
223 nonstatic_field(arrayKlass, _lower_dimension, klassOop) \ 223 volatile_nonstatic_field(arrayKlass, _lower_dimension, klassOop) \
224 nonstatic_field(arrayKlass, _vtable_len, int) \ 224 nonstatic_field(arrayKlass, _vtable_len, int) \
225 nonstatic_field(arrayKlass, _alloc_size, juint) \ 225 nonstatic_field(arrayKlass, _alloc_size, juint) \
226 nonstatic_field(arrayKlass, _component_mirror, oop) \ 226 nonstatic_field(arrayKlass, _component_mirror, oop) \
227 nonstatic_field(compiledICHolderKlass, _alloc_size, juint) \ 227 nonstatic_field(compiledICHolderKlass, _alloc_size, juint) \
228 nonstatic_field(compiledICHolderOopDesc, _holder_method, methodOop) \ 228 nonstatic_field(compiledICHolderOopDesc, _holder_method, methodOop) \