8005592: ClassLoaderDataGraph::_unloading incorrectly defined as nonstatic in vmStructs

Mon, 14 Jan 2013 11:00:56 -0800

author
mikael
date
Mon, 14 Jan 2013 11:00:56 -0800
changeset 4433
fe1472c87a27
parent 4432
5b6a231e5a86
child 4434
c793367610c1

8005592: ClassLoaderDataGraph::_unloading incorrectly defined as nonstatic in vmStructs
Summary: Added assertion to catch problem earlier and removed the unused field
Reviewed-by: dholmes, acorn

src/share/vm/runtime/vmStructs.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/vm/runtime/vmStructs.cpp	Mon Jan 14 08:37:14 2013 -0800
     1.2 +++ b/src/share/vm/runtime/vmStructs.cpp	Mon Jan 14 11:00:56 2013 -0800
     1.3 @@ -717,7 +717,6 @@
     1.4    nonstatic_field(ClassLoaderData,             _next,                                         ClassLoaderData*)                      \
     1.5                                                                                                                                       \
     1.6    static_field(ClassLoaderDataGraph,           _head,                                         ClassLoaderData*)                      \
     1.7 -  nonstatic_field(ClassLoaderDataGraph,        _unloading,                                    ClassLoaderData*)                      \
     1.8                                                                                                                                       \
     1.9    /*******************/                                                                                                              \
    1.10    /* GrowableArrays  */                                                                                                              \
    1.11 @@ -2575,7 +2574,8 @@
    1.12  
    1.13  // This macro checks the type of a VMStructEntry by comparing pointer types
    1.14  #define CHECK_NONSTATIC_VM_STRUCT_ENTRY(typeName, fieldName, type)                 \
    1.15 - {typeName *dummyObj = NULL; type* dummy = &dummyObj->fieldName; }
    1.16 + {typeName *dummyObj = NULL; type* dummy = &dummyObj->fieldName;                   \
    1.17 +  assert(offset_of(typeName, fieldName) < sizeof(typeName), "Illegal nonstatic struct entry, field offset too large"); }
    1.18  
    1.19  // This macro checks the type of a volatile VMStructEntry by comparing pointer types
    1.20  #define CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY(typeName, fieldName, type)        \

mercurial