< prev index next >

src/share/vm/oops/arrayKlass.hpp

Print this page




  82   Klass* find_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const;
  83 
  84   // Lookup operations
  85   Method* uncached_lookup_method(const Symbol* name,
  86                                  const Symbol* signature,
  87                                  OverpassLookupMode overpass_mode) const;
  88 
  89   static ArrayKlass* cast(Klass* k) {
  90     return const_cast<ArrayKlass*>(cast(const_cast<const Klass*>(k)));
  91   }
  92 
  93   static const ArrayKlass* cast(const Klass* k) {
  94     assert(k->is_array_klass(), "cast to ArrayKlass");
  95     return static_cast<const ArrayKlass*>(k);
  96   }
  97 
  98   GrowableArray<Klass*>* compute_secondary_supers(int num_extra_slots);
  99   bool compute_is_subtype_of(Klass* k);
 100 
 101   // Sizing
 102   static int header_size()                 { return sizeof(ArrayKlass)/HeapWordSize; }
 103   static int static_size(int header_size);
 104 
 105 #if INCLUDE_SERVICES
 106   virtual void collect_statistics(KlassSizeStats *sz) const {
 107     Klass::collect_statistics(sz);
 108     // Do nothing for now, but remember to modify if you add new
 109     // stuff to ArrayKlass.
 110   }
 111 #endif
 112 
 113   // Java vtable
 114   klassVtable* vtable() const;             // return new klassVtable
 115   int  vtable_length() const               { return _vtable_len; }
 116   static int base_vtable_length()          { return Universe::base_vtable_size(); }
 117   void set_vtable_length(int len)          { assert(len == base_vtable_length(), "bad length"); _vtable_len = len; }
 118  protected:
 119   inline intptr_t* start_of_vtable() const;
 120 
 121  public:
 122   // Iterators




  82   Klass* find_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const;
  83 
  84   // Lookup operations
  85   Method* uncached_lookup_method(const Symbol* name,
  86                                  const Symbol* signature,
  87                                  OverpassLookupMode overpass_mode) const;
  88 
  89   static ArrayKlass* cast(Klass* k) {
  90     return const_cast<ArrayKlass*>(cast(const_cast<const Klass*>(k)));
  91   }
  92 
  93   static const ArrayKlass* cast(const Klass* k) {
  94     assert(k->is_array_klass(), "cast to ArrayKlass");
  95     return static_cast<const ArrayKlass*>(k);
  96   }
  97 
  98   GrowableArray<Klass*>* compute_secondary_supers(int num_extra_slots);
  99   bool compute_is_subtype_of(Klass* k);
 100 
 101   // Sizing
 102   static int header_size()                 { return sizeof(ArrayKlass)/wordSize; }
 103   static int static_size(int header_size);
 104 
 105 #if INCLUDE_SERVICES
 106   virtual void collect_statistics(KlassSizeStats *sz) const {
 107     Klass::collect_statistics(sz);
 108     // Do nothing for now, but remember to modify if you add new
 109     // stuff to ArrayKlass.
 110   }
 111 #endif
 112 
 113   // Java vtable
 114   klassVtable* vtable() const;             // return new klassVtable
 115   int  vtable_length() const               { return _vtable_len; }
 116   static int base_vtable_length()          { return Universe::base_vtable_size(); }
 117   void set_vtable_length(int len)          { assert(len == base_vtable_length(), "bad length"); _vtable_len = len; }
 118  protected:
 119   inline intptr_t* start_of_vtable() const;
 120 
 121  public:
 122   // Iterators


< prev index next >