448 Array<int>* create_new_default_vtable_indices(int len, TRAPS);
449
450 // interfaces
451 Array<Klass*>* local_interfaces() const { return _local_interfaces; }
452 void set_local_interfaces(Array<Klass*>* a) {
453 guarantee(_local_interfaces == NULL || a == NULL, "Just checking");
454 _local_interfaces = a; }
455
456 Array<Klass*>* transitive_interfaces() const { return _transitive_interfaces; }
457 void set_transitive_interfaces(Array<Klass*>* a) {
458 guarantee(_transitive_interfaces == NULL || a == NULL, "Just checking");
459 _transitive_interfaces = a;
460 }
461
462 private:
463 friend class fieldDescriptor;
464 FieldInfo* field(int index) const { return FieldInfo::from_field_array(_fields, index); }
465
466 public:
467 int field_offset (int index) const { return field(index)->offset(); }
468 int field_access_flags(int index) const { return field(index)->access_flags(); }
469 Symbol* field_name (int index) const { return field(index)->name(constants()); }
470 Symbol* field_signature (int index) const { return field(index)->signature(constants()); }
471 bool is_field_flatten (int index) const { return field(index)->is_flatten(); }
472
473 // Number of Java declared fields
474 int java_fields_count() const { return (int)_java_fields_count; }
475
476 Array<u2>* fields() const { return _fields; }
477 void set_fields(Array<u2>* f, u2 java_fields_count) {
478 guarantee(_fields == NULL || f == NULL, "Just checking");
479 _fields = f;
480 _java_fields_count = java_fields_count;
481 }
482
483 // inner classes
484 Array<u2>* inner_classes() const { return _inner_classes; }
485 void set_inner_classes(Array<u2>* f) { _inner_classes = f; }
486
487 enum InnerClassAttributeOffset {
|
448 Array<int>* create_new_default_vtable_indices(int len, TRAPS);
449
450 // interfaces
451 Array<Klass*>* local_interfaces() const { return _local_interfaces; }
452 void set_local_interfaces(Array<Klass*>* a) {
453 guarantee(_local_interfaces == NULL || a == NULL, "Just checking");
454 _local_interfaces = a; }
455
456 Array<Klass*>* transitive_interfaces() const { return _transitive_interfaces; }
457 void set_transitive_interfaces(Array<Klass*>* a) {
458 guarantee(_transitive_interfaces == NULL || a == NULL, "Just checking");
459 _transitive_interfaces = a;
460 }
461
462 private:
463 friend class fieldDescriptor;
464 FieldInfo* field(int index) const { return FieldInfo::from_field_array(_fields, index); }
465
466 public:
467 int field_offset (int index) const { return field(index)->offset(); }
468 bool field_flattened (int index) const { return field(index)->is_flatten(); }
469 int field_access_flags(int index) const { return field(index)->access_flags(); }
470 Symbol* field_name (int index) const { return field(index)->name(constants()); }
471 Symbol* field_signature (int index) const { return field(index)->signature(constants()); }
472 bool is_field_flatten (int index) const { return field(index)->is_flatten(); }
473
474 // Number of Java declared fields
475 int java_fields_count() const { return (int)_java_fields_count; }
476
477 Array<u2>* fields() const { return _fields; }
478 void set_fields(Array<u2>* f, u2 java_fields_count) {
479 guarantee(_fields == NULL || f == NULL, "Just checking");
480 _fields = f;
481 _java_fields_count = java_fields_count;
482 }
483
484 // inner classes
485 Array<u2>* inner_classes() const { return _inner_classes; }
486 void set_inner_classes(Array<u2>* f) { _inner_classes = f; }
487
488 enum InnerClassAttributeOffset {
|