43 int _size; // number of stack slots required for arguments 44 int _count; // number of parameter types in the signature 45 46 friend class ciMethod; 47 friend class ciBytecodeStream; 48 friend class ciObjectFactory; 49 50 ciSignature(ciKlass* accessing_klass, const constantPoolHandle& cpool, ciSymbol* signature); 51 ciSignature(ciKlass* accessing_klass, ciSymbol* signature, ciMethodType* method_type); 52 53 void get_all_klasses(); 54 55 Symbol* get_symbol() const { return _symbol->get_symbol(); } 56 57 public: 58 ciSymbol* as_symbol() const { return _symbol; } 59 ciKlass* accessing_klass() const { return _accessing_klass; } 60 61 ciType* return_type() const; 62 ciType* type_at(int index) const; 63 64 int size() const { return _size; } 65 int count() const { return _count; } 66 67 int arg_size_for_bc(Bytecodes::Code bc) { return size() + (Bytecodes::has_receiver(bc) ? 1 : 0); } 68 69 bool equals(ciSignature* that); 70 71 void print_signature(); 72 void print(); 73 }; 74 75 #endif // SHARE_CI_CISIGNATURE_HPP | 43 int _size; // number of stack slots required for arguments 44 int _count; // number of parameter types in the signature 45 46 friend class ciMethod; 47 friend class ciBytecodeStream; 48 friend class ciObjectFactory; 49 50 ciSignature(ciKlass* accessing_klass, const constantPoolHandle& cpool, ciSymbol* signature); 51 ciSignature(ciKlass* accessing_klass, ciSymbol* signature, ciMethodType* method_type); 52 53 void get_all_klasses(); 54 55 Symbol* get_symbol() const { return _symbol->get_symbol(); } 56 57 public: 58 ciSymbol* as_symbol() const { return _symbol; } 59 ciKlass* accessing_klass() const { return _accessing_klass; } 60 61 ciType* return_type() const; 62 ciType* type_at(int index) const; 63 bool returns_never_null() const; 64 bool is_never_null_at(int index) const; 65 66 int size() const { return _size; } 67 int count() const { return _count; } 68 69 int arg_size_for_bc(Bytecodes::Code bc) { return size() + (Bytecodes::has_receiver(bc) ? 1 : 0); } 70 71 bool equals(ciSignature* that); 72 73 void print_signature(); 74 void print(); 75 }; 76 77 #endif // SHARE_CI_CISIGNATURE_HPP |