190 friend class VMStructs;
191 friend class CompactingPermGenGen;
192 friend class SystemDictionaryHandles;
193 NOT_PRODUCT(friend class instanceKlassKlass;)
194
195 public:
196 enum WKID {
197 NO_WKID = 0,
198
199 #define WK_KLASS_ENUM(name, ignore_s, ignore_o) WK_KLASS_ENUM_NAME(name),
200 WK_KLASSES_DO(WK_KLASS_ENUM)
201 #undef WK_KLASS_ENUM
202
203 WKID_LIMIT,
204
205 FIRST_WKID = NO_WKID + 1
206 };
207
208 enum InitOption {
209 Pre, // preloaded; error if not present
210 Pre_JSR292, // preloaded if EnableMethodHandles
211
212 // Order is significant. Options before this point require resolve_or_fail.
213 // Options after this point will use resolve_or_null instead.
214
215 Opt, // preload tried; NULL if not present
216 Opt_Only_JDK14NewRef, // preload tried; use only with NewReflection
217 Opt_Only_JDK15, // preload tried; use only with JDK1.5+
218 Opt_Kernel, // preload tried only #ifdef KERNEL
219 OPTION_LIMIT,
220 CEIL_LG_OPTION_LIMIT = 4 // OPTION_LIMIT <= (1<<CEIL_LG_OPTION_LIMIT)
221 };
222
223
224 // Returns a class with a given class name and class loader. Loads the
225 // class if needed. If not found a NoClassDefFoundError or a
226 // ClassNotFoundException is thrown, depending on the value on the
227 // throw_error flag. For most uses the throw_error argument should be set
228 // to true.
229
230 static klassOop resolve_or_fail(Symbol* class_name, Handle class_loader, Handle protection_domain, bool throw_error, TRAPS);
|
190 friend class VMStructs;
191 friend class CompactingPermGenGen;
192 friend class SystemDictionaryHandles;
193 NOT_PRODUCT(friend class instanceKlassKlass;)
194
195 public:
196 enum WKID {
197 NO_WKID = 0,
198
199 #define WK_KLASS_ENUM(name, ignore_s, ignore_o) WK_KLASS_ENUM_NAME(name),
200 WK_KLASSES_DO(WK_KLASS_ENUM)
201 #undef WK_KLASS_ENUM
202
203 WKID_LIMIT,
204
205 FIRST_WKID = NO_WKID + 1
206 };
207
208 enum InitOption {
209 Pre, // preloaded; error if not present
210 Pre_JSR292, // preloaded if EnableInvokeDynamic
211
212 // Order is significant. Options before this point require resolve_or_fail.
213 // Options after this point will use resolve_or_null instead.
214
215 Opt, // preload tried; NULL if not present
216 Opt_Only_JDK14NewRef, // preload tried; use only with NewReflection
217 Opt_Only_JDK15, // preload tried; use only with JDK1.5+
218 Opt_Kernel, // preload tried only #ifdef KERNEL
219 OPTION_LIMIT,
220 CEIL_LG_OPTION_LIMIT = 4 // OPTION_LIMIT <= (1<<CEIL_LG_OPTION_LIMIT)
221 };
222
223
224 // Returns a class with a given class name and class loader. Loads the
225 // class if needed. If not found a NoClassDefFoundError or a
226 // ClassNotFoundException is thrown, depending on the value on the
227 // throw_error flag. For most uses the throw_error argument should be set
228 // to true.
229
230 static klassOop resolve_or_fail(Symbol* class_name, Handle class_loader, Handle protection_domain, bool throw_error, TRAPS);
|