Mercurial > hg > graal-jvmci-8
comparison src/share/vm/classfile/dictionary.hpp @ 20350:c3990b8c710e hs25.40-b07
8054402: "klass->is_loader_alive(_is_alive)) failed: must be alive" for anonymous classes
Summary: Because anonymous classes are not in the system dictionary, we have to set 'unloading_occurred' based on 'CLDG::do_unloading()'. Added jtreg test.
Reviewed-by: kvn, coleenp
author | thartmann |
---|---|
date | Mon, 25 Aug 2014 08:20:17 +0200 |
parents | 2c6ef90f030a |
children | 6e0cb14ce59b |
comparison
equal
deleted
inserted
replaced
20349:7fa57b65c27f | 20350:c3990b8c710e |
---|---|
106 static bool is_strongly_reachable(ClassLoaderData* loader_data, Klass* klass) { | 106 static bool is_strongly_reachable(ClassLoaderData* loader_data, Klass* klass) { |
107 assert (klass != NULL, "should have non-null klass"); | 107 assert (klass != NULL, "should have non-null klass"); |
108 return (loader_data->is_the_null_class_loader_data() || !ClassUnloading); | 108 return (loader_data->is_the_null_class_loader_data() || !ClassUnloading); |
109 } | 109 } |
110 | 110 |
111 // Unload (that is, break root links to) all unmarked classes and | 111 // Unload (that is, break root links to) all unmarked classes and loaders. |
112 // loaders. Returns "true" iff something was unloaded. | 112 void do_unloading(); |
113 bool do_unloading(); | |
114 | 113 |
115 // Protection domains | 114 // Protection domains |
116 Klass* find(int index, unsigned int hash, Symbol* name, | 115 Klass* find(int index, unsigned int hash, Symbol* name, |
117 ClassLoaderData* loader_data, Handle protection_domain, TRAPS); | 116 ClassLoaderData* loader_data, Handle protection_domain, TRAPS); |
118 bool is_valid_protection_domain(int index, unsigned int hash, | 117 bool is_valid_protection_domain(int index, unsigned int hash, |