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