From 8e6b42c567b504e84ea46ffea28ba898be152abb Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 9 Oct 2003 20:35:15 +0000 Subject: [PATCH] Make getContainedType more efficient by not returning null if out of range! llvm-svn: 8987 --- include/llvm/DerivedTypes.h | 7 +++---- include/llvm/Type.h | 8 ++++---- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/include/llvm/DerivedTypes.h b/include/llvm/DerivedTypes.h index 57a8c02e4d8..e0ccffd5fb7 100644 --- a/include/llvm/DerivedTypes.h +++ b/include/llvm/DerivedTypes.h @@ -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; } diff --git a/include/llvm/Type.h b/include/llvm/Type.h index 5900b402dcc..3ed2d2dd7ab 100644 --- a/include/llvm/Type.h +++ b/include/llvm/Type.h @@ -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; }