diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/VMCore/ValueHolderImpl.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/VMCore/ValueHolderImpl.h b/lib/VMCore/ValueHolderImpl.h index 9ca5d94926..1bfdd2512e 100644 --- a/lib/VMCore/ValueHolderImpl.h +++ b/lib/VMCore/ValueHolderImpl.h @@ -100,4 +100,21 @@ void ValueHolder<ValueSubclass,ItemParentType>::push_back(ValueSubclass *Inst) { Parent->getSymbolTableSure()->insert(Inst); } +// ValueHolder::insert - This method inserts the specified value *BEFORE* the +// indicated iterator position, and returns an interator to the newly inserted +// value. +// +template<class ValueSubclass, class ItemParentType> +ValueHolder<ValueSubclass,ItemParentType>::iterator +ValueHolder<ValueSubclass,ItemParentType>::insert(iterator Pos, + ValueSubclass *Inst){ + assert(Inst->getParent() == 0 && "Value already has parent!"); + Inst->setParent(ItemParent); + + iterator I = ValueList.insert(Pos, Inst); + if (Inst->hasName() && Parent) + Parent->getSymbolTableSure()->insert(Inst); + return I; +} + #endif |