8222446: assert(C->env()->system_dictionary_modification_counter_changed()) failed: Must invalidate if TypeFuncs differ

Remove SystemDictionary::modification_counter optimization

Reviewed-by: dlong, eosterlund
This commit is contained in:
Coleen Phillimore 2019-07-10 07:58:24 -04:00
parent 475cf213d9
commit 04b98fd1df
16 changed files with 21 additions and 139 deletions

View file

@ -1327,14 +1327,13 @@ JVMCI::CodeInstallResult JVMCIRuntime::validate_compile_task_dependencies(Depend
// Dependencies must be checked when the system dictionary changes
// or if we don't know whether it has changed (i.e., compile_state == NULL).
bool counter_changed = compile_state == NULL || compile_state->system_dictionary_modification_counter() != SystemDictionary::number_of_modifications();
CompileTask* task = compile_state == NULL ? NULL : compile_state->task();
Dependencies::DepType result = dependencies->validate_dependencies(task, counter_changed, failure_detail);
Dependencies::DepType result = dependencies->validate_dependencies(task, failure_detail);
if (result == Dependencies::end_marker) {
return JVMCI::ok;
}
if (!Dependencies::is_klass_type(result) || counter_changed) {
if (!Dependencies::is_klass_type(result) || compile_state == NULL) {
return JVMCI::dependencies_failed;
}
// The dependencies were invalid at the time of installation