Mon, 14 Jan 2013 11:00:56 -0800
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) \