476 public:
477 // Tells whether ClassLoader.checkPackageAccess is present
478 static bool has_checkPackageAccess() { return _has_checkPackageAccess; }
479
480 static bool Parameter_klass_loaded() { return WK_KLASS(reflect_Parameter_klass) != NULL; }
481 static bool Class_klass_loaded() { return WK_KLASS(Class_klass) != NULL; }
482 static bool Cloneable_klass_loaded() { return WK_KLASS(Cloneable_klass) != NULL; }
483 static bool Object_klass_loaded() { return WK_KLASS(Object_klass) != NULL; }
484 static bool ClassLoader_klass_loaded() { return WK_KLASS(ClassLoader_klass) != NULL; }
485
486 // Returns java system loader
487 static oop java_system_loader();
488
489 // Returns java platform loader
490 static oop java_platform_loader();
491
492 // Compute the java system and platform loaders
493 static void compute_java_loaders(TRAPS);
494
495 // Register a new class loader
496 static ClassLoaderData* register_loader(Handle class_loader, TRAPS);
497 protected:
498 // Mirrors for primitive classes (created eagerly)
499 static oop check_mirror(oop m) {
500 assert(m != NULL, "mirror not initialized");
501 return m;
502 }
503
504 public:
505 // Note: java_lang_Class::primitive_type is the inverse of java_mirror
506
507 // Check class loader constraints
508 static bool add_loader_constraint(Symbol* name, Handle loader1,
509 Handle loader2, TRAPS);
510 static Symbol* check_signature_loaders(Symbol* signature, Handle loader1,
511 Handle loader2, bool is_method, TRAPS);
512
513 // JSR 292
514 // find a java.lang.invoke.MethodHandle.invoke* method for a given signature
515 // (asks Java to compute it if necessary, except in a compiler thread)
516 static methodHandle find_method_handle_invoker(Klass* klass,
|
476 public:
477 // Tells whether ClassLoader.checkPackageAccess is present
478 static bool has_checkPackageAccess() { return _has_checkPackageAccess; }
479
480 static bool Parameter_klass_loaded() { return WK_KLASS(reflect_Parameter_klass) != NULL; }
481 static bool Class_klass_loaded() { return WK_KLASS(Class_klass) != NULL; }
482 static bool Cloneable_klass_loaded() { return WK_KLASS(Cloneable_klass) != NULL; }
483 static bool Object_klass_loaded() { return WK_KLASS(Object_klass) != NULL; }
484 static bool ClassLoader_klass_loaded() { return WK_KLASS(ClassLoader_klass) != NULL; }
485
486 // Returns java system loader
487 static oop java_system_loader();
488
489 // Returns java platform loader
490 static oop java_platform_loader();
491
492 // Compute the java system and platform loaders
493 static void compute_java_loaders(TRAPS);
494
495 // Register a new class loader
496 static ClassLoaderData* register_loader(Handle class_loader);
497 protected:
498 // Mirrors for primitive classes (created eagerly)
499 static oop check_mirror(oop m) {
500 assert(m != NULL, "mirror not initialized");
501 return m;
502 }
503
504 public:
505 // Note: java_lang_Class::primitive_type is the inverse of java_mirror
506
507 // Check class loader constraints
508 static bool add_loader_constraint(Symbol* name, Handle loader1,
509 Handle loader2, TRAPS);
510 static Symbol* check_signature_loaders(Symbol* signature, Handle loader1,
511 Handle loader2, bool is_method, TRAPS);
512
513 // JSR 292
514 // find a java.lang.invoke.MethodHandle.invoke* method for a given signature
515 // (asks Java to compute it if necessary, except in a compiler thread)
516 static methodHandle find_method_handle_invoker(Klass* klass,
|