Mercurial > hg > graal-jvmci-8
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) { |