--- a/src/hotspot/share/classfile/dictionary.cpp Fri Feb 01 12:44:30 2019 +0100
+++ b/src/hotspot/share/classfile/dictionary.cpp Fri Feb 01 06:42:41 2019 -0500
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -198,41 +198,6 @@
}
}
-// During class loading we may have cached a protection domain that has
-// since been unreferenced, so this entry should be cleared.
-void Dictionary::clean_cached_protection_domains(DictionaryEntry* probe) {
- assert_locked_or_safepoint(SystemDictionary_lock);
-
- ProtectionDomainEntry* current = probe->pd_set();
- ProtectionDomainEntry* prev = NULL;
- while (current != NULL) {
- if (current->object_no_keepalive() == NULL) {
- LogTarget(Debug, protectiondomain) lt;
- if (lt.is_enabled()) {
- ResourceMark rm;
- // Print out trace information
- LogStream ls(lt);
- ls.print_cr("PD in set is not alive:");
- ls.print("class loader: "); loader_data()->class_loader()->print_value_on(&ls);
- ls.print(" loading: "); probe->instance_klass()->print_value_on(&ls);
- ls.cr();
- }
- if (probe->pd_set() == current) {
- probe->set_pd_set(current->next());
- } else {
- assert(prev != NULL, "should be set by alive entry");
- prev->set_next(current->next());
- }
- ProtectionDomainEntry* to_delete = current;
- current = current->next();
- delete to_delete;
- } else {
- prev = current;
- current = current->next();
- }
- }
-}
-
// Just the classes from defining class loaders
void Dictionary::classes_do(void f(InstanceKlass*)) {
for (int index = 0; index < table_size(); index++) {