comparison src/share/vm/classfile/systemDictionary.cpp @ 14220:f9508a2fd4d8

8029383: assert(counter_changed) failed: failed dependencies, but counter didn't change Summary: no call to SystemDictionary::notice_modification() when class is defined through Unsafe.defineAnonymousClass() can caused missed dependency change. Reviewed-by: kvn, twisti
author roland
date Fri, 13 Dec 2013 09:25:44 +0100
parents 86e6d691f2e1
children 48314d596a04
comparison
equal deleted inserted replaced
14219:9ae5189791f4 14220:f9508a2fd4d8
1047 // Add to class hierarchy, initialize vtables, and do possible 1047 // Add to class hierarchy, initialize vtables, and do possible
1048 // deoptimizations. 1048 // deoptimizations.
1049 add_to_hierarchy(k, CHECK_NULL); // No exception, but can block 1049 add_to_hierarchy(k, CHECK_NULL); // No exception, but can block
1050 1050
1051 // But, do not add to system dictionary. 1051 // But, do not add to system dictionary.
1052
1053 // compiled code dependencies need to be validated anyway
1054 notice_modification();
1052 } 1055 }
1053 1056
1054 // Rewrite and patch constant pool here. 1057 // Rewrite and patch constant pool here.
1055 k->link_class(CHECK_NULL); 1058 k->link_class(CHECK_NULL);
1056 if (cp_patches != NULL) { 1059 if (cp_patches != NULL) {