449
450 bool search_secondary_supers(Klass* k) const;
451
452 // Find LCA in class hierarchy
453 Klass *LCA( Klass *k );
454
455 // Check whether reflection/jni/jvm code is allowed to instantiate this class;
456 // if not, throw either an Error or an Exception.
457 virtual void check_valid_for_instantiation(bool throwError, TRAPS);
458
459 // array copying
460 virtual void copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);
461
462 // tells if the class should be initialized
463 virtual bool should_be_initialized() const { return false; }
464 // initializes the klass
465 virtual void initialize(TRAPS);
466 // lookup operation for MethodLookupCache
467 friend class MethodLookupCache;
468 virtual Klass* find_field(Symbol* name, Symbol* signature, fieldDescriptor* fd) const;
469 virtual Method* uncached_lookup_method(const Symbol* name, const Symbol* signature, OverpassLookupMode overpass_mode) const;
470 public:
471 Method* lookup_method(const Symbol* name, const Symbol* signature) const {
472 return uncached_lookup_method(name, signature, find_overpass);
473 }
474
475 // array class with specific rank
476 Klass* array_klass(int rank, TRAPS) { return array_klass_impl(false, rank, THREAD); }
477
478 // array class with this klass as element type
479 Klass* array_klass(TRAPS) { return array_klass_impl(false, THREAD); }
480
481 // These will return NULL instead of allocating on the heap:
482 // NB: these can block for a mutex, like other functions with TRAPS arg.
483 Klass* array_klass_or_null(int rank);
484 Klass* array_klass_or_null();
485
486 virtual oop protection_domain() const = 0;
487
488 oop class_loader() const;
489
|
449
450 bool search_secondary_supers(Klass* k) const;
451
452 // Find LCA in class hierarchy
453 Klass *LCA( Klass *k );
454
455 // Check whether reflection/jni/jvm code is allowed to instantiate this class;
456 // if not, throw either an Error or an Exception.
457 virtual void check_valid_for_instantiation(bool throwError, TRAPS);
458
459 // array copying
460 virtual void copy_array(arrayOop s, int src_pos, arrayOop d, int dst_pos, int length, TRAPS);
461
462 // tells if the class should be initialized
463 virtual bool should_be_initialized() const { return false; }
464 // initializes the klass
465 virtual void initialize(TRAPS);
466 // lookup operation for MethodLookupCache
467 friend class MethodLookupCache;
468 virtual Klass* find_field(Symbol* name, Symbol* signature, fieldDescriptor* fd) const;
469 virtual Method* uncached_lookup_method(const Symbol* name, const Symbol* signature,
470 OverpassLookupMode overpass_mode,
471 PrivateLookupMode = find_private) const;
472 public:
473 Method* lookup_method(const Symbol* name, const Symbol* signature) const {
474 return uncached_lookup_method(name, signature, find_overpass);
475 }
476
477 // array class with specific rank
478 Klass* array_klass(int rank, TRAPS) { return array_klass_impl(false, rank, THREAD); }
479
480 // array class with this klass as element type
481 Klass* array_klass(TRAPS) { return array_klass_impl(false, THREAD); }
482
483 // These will return NULL instead of allocating on the heap:
484 // NB: these can block for a mutex, like other functions with TRAPS arg.
485 Klass* array_klass_or_null(int rank);
486 Klass* array_klass_or_null();
487
488 virtual oop protection_domain() const = 0;
489
490 oop class_loader() const;
491
|