Mercurial > hg > truffle
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) \ |