1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00

Make getContainedType more efficient by not returning null if out of range!

llvm-svn: 8987
This commit is contained in:
Chris Lattner 2003-10-09 20:35:15 +00:00
parent 01d8fd6a3b
commit 8e6b42c567
2 changed files with 7 additions and 8 deletions

View File

@ -156,8 +156,7 @@ public:
virtual const Type *getContainedType(unsigned i) const {
return i == 0 ? ResultType :
(i <= ParamTys.size() ? ParamTys[i-1].get() : 0);
return i == 0 ? ResultType.get() : ParamTys[i-1].get();
}
virtual unsigned getNumContainedTypes() const { return ParamTys.size()+1; }
@ -239,7 +238,7 @@ public:
inline const ElementTypes &getElementTypes() const { return ETypes; }
virtual const Type *getContainedType(unsigned i) const {
return i < ETypes.size() ? ETypes[i].get() : 0;
return ETypes[i].get();
}
virtual unsigned getNumContainedTypes() const { return ETypes.size(); }
@ -289,7 +288,7 @@ public:
inline const Type *getElementType() const { return ElementType; }
virtual const Type *getContainedType(unsigned i) const {
return i == 0 ? ElementType.get() : 0;
return ElementType.get();
}
virtual unsigned getNumContainedTypes() const { return 1; }

View File

@ -202,11 +202,11 @@ public:
/// getContainedType - This method is used to implement the type iterator
/// (defined a the end of the file). For derived types, this returns the
/// types 'contained' in the derived type, returning 0 when 'i' becomes
/// invalid. This allows the user to iterate over the types in a struct, for
/// example, really easily.
/// types 'contained' in the derived type.
///
virtual const Type *getContainedType(unsigned i) const { return 0; }
virtual const Type *getContainedType(unsigned i) const {
assert(0 && "No contained types!");
}
/// getNumContainedTypes - Return the number of types in the derived type
virtual unsigned getNumContainedTypes() const { return 0; }