Mercurial > hg > graal-compiler
comparison src/share/vm/prims/jvmtiRedefineClasses.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 | ac9cb1d5a202 |
children | ee5727365ce5 |
comparison
equal
deleted
inserted
replaced
14219:9ae5189791f4 | 14220:f9508a2fd4d8 |
---|---|
144 // Free the memory for this class at class unloading time. Not before | 144 // Free the memory for this class at class unloading time. Not before |
145 // because CMS might think this is still live. | 145 // because CMS might think this is still live. |
146 cld->add_to_deallocate_list((InstanceKlass*)_scratch_classes[i]); | 146 cld->add_to_deallocate_list((InstanceKlass*)_scratch_classes[i]); |
147 _scratch_classes[i] = NULL; | 147 _scratch_classes[i] = NULL; |
148 } | 148 } |
149 | |
150 // Disable any dependent concurrent compilations | |
151 SystemDictionary::notice_modification(); | |
152 | 149 |
153 // Set flag indicating that some invariants are no longer true. | 150 // Set flag indicating that some invariants are no longer true. |
154 // See jvmtiExport.hpp for detailed explanation. | 151 // See jvmtiExport.hpp for detailed explanation. |
155 JvmtiExport::set_has_redefined_a_class(); | 152 JvmtiExport::set_has_redefined_a_class(); |
156 | 153 |