Changed the definition of an "invalid" slot to include the empty & tombstone values, but not zero.

llvm-svn: 95631
This commit is contained in:
Lang Hames 2010-02-09 00:41:23 +00:00
parent 928480ec18
commit 4695741312
1 changed files with 10 additions and 10 deletions

View File

@ -72,10 +72,13 @@ namespace llvm {
} }
} }
bool isValid() const {
return (index != EMPTY_KEY_INDEX && index != TOMBSTONE_KEY_INDEX);
}
MachineInstr* getInstr() const { return mi; } MachineInstr* getInstr() const { return mi; }
void setInstr(MachineInstr *mi) { void setInstr(MachineInstr *mi) {
assert(index != EMPTY_KEY_INDEX && index != TOMBSTONE_KEY_INDEX && assert(isValid() && "Attempt to modify reserved index.");
"Attempt to modify reserved index.");
this->mi = mi; this->mi = mi;
} }
@ -83,25 +86,21 @@ namespace llvm {
void setIndex(unsigned index) { void setIndex(unsigned index) {
assert(index != EMPTY_KEY_INDEX && index != TOMBSTONE_KEY_INDEX && assert(index != EMPTY_KEY_INDEX && index != TOMBSTONE_KEY_INDEX &&
"Attempt to set index to invalid value."); "Attempt to set index to invalid value.");
assert(this->index != EMPTY_KEY_INDEX && assert(isValid() && "Attempt to reset reserved index value.");
this->index != TOMBSTONE_KEY_INDEX &&
"Attempt to reset reserved index value.");
this->index = index; this->index = index;
} }
IndexListEntry* getNext() { return next; } IndexListEntry* getNext() { return next; }
const IndexListEntry* getNext() const { return next; } const IndexListEntry* getNext() const { return next; }
void setNext(IndexListEntry *next) { void setNext(IndexListEntry *next) {
assert(index != EMPTY_KEY_INDEX && index != TOMBSTONE_KEY_INDEX && assert(isValid() && "Attempt to modify reserved index.");
"Attempt to modify reserved index.");
this->next = next; this->next = next;
} }
IndexListEntry* getPrev() { return prev; } IndexListEntry* getPrev() { return prev; }
const IndexListEntry* getPrev() const { return prev; } const IndexListEntry* getPrev() const { return prev; }
void setPrev(IndexListEntry *prev) { void setPrev(IndexListEntry *prev) {
assert(index != EMPTY_KEY_INDEX && index != TOMBSTONE_KEY_INDEX && assert(isValid() && "Attempt to modify reserved index.");
"Attempt to modify reserved index.");
this->prev = prev; this->prev = prev;
} }
@ -192,7 +191,8 @@ namespace llvm {
/// Returns true if this is a valid index. Invalid indicies do /// Returns true if this is a valid index. Invalid indicies do
/// not point into an index table, and cannot be compared. /// not point into an index table, and cannot be compared.
bool isValid() const { bool isValid() const {
return (lie.getPointer() != 0) && (lie.getPointer()->getIndex() != 0); IndexListEntry *entry = lie.getPointer();
return ((entry!= 0) && (entry->isValid()));
} }
/// Print this index to the given raw_ostream. /// Print this index to the given raw_ostream.