diff options
| author | Chris Lattner <sabre@nondot.org> | 2002-04-29 21:23:30 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2002-04-29 21:23:30 +0000 |
| commit | ea1e8c70ebc6e7e5777e42aff112f7ca872295ce (patch) | |
| tree | 1c4665299c3615f13dfa48fd204ee3f3e6aef3f1 /lib/VMCore | |
| parent | 91b078dd541b683957a5e449d2c68284c86bbe46 (diff) | |
| download | external_llvm-ea1e8c70ebc6e7e5777e42aff112f7ca872295ce.zip external_llvm-ea1e8c70ebc6e7e5777e42aff112f7ca872295ce.tar.gz external_llvm-ea1e8c70ebc6e7e5777e42aff112f7ca872295ce.tar.bz2 | |
Make the range insert operation return an iterator, even though the STL
range insert doesn't
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2413 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore')
| -rw-r--r-- | lib/VMCore/ValueHolderImpl.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/VMCore/ValueHolderImpl.h b/lib/VMCore/ValueHolderImpl.h index cbc3e5f..3eb7e75 100644 --- a/lib/VMCore/ValueHolderImpl.h +++ b/lib/VMCore/ValueHolderImpl.h @@ -172,12 +172,18 @@ ValueHolder<ValueSubclass,ItemParentType,SymTabType> // to be used... is this ok? // template<class ValueSubclass, class ItemParentType, class SymTabType> -void ValueHolder<ValueSubclass,ItemParentType,SymTabType> -::insert(iterator Pos, // Where to insert +ValueHolder<ValueSubclass,ItemParentType,SymTabType>::iterator +ValueHolder<ValueSubclass,ItemParentType,SymTabType> +::insert(iterator Pos, // Where to insert iterator First, iterator Last) { // Vector to read insts from + // Since the vector range insert operation doesn't return an updated iterator, + // we have to convert the iterator to and index and back to assure that it + // cannot get invalidated. Gross hack, but effective. + // + unsigned Offset = Pos-begin(); + // Check to make sure that the values are not already in some valueholder... - for (iterator X = First; X != Last; ++X) { assert((*X)->getParent() == 0 && "Cannot insert into valueholder, value already has a parent!"); @@ -192,6 +198,8 @@ void ValueHolder<ValueSubclass,ItemParentType,SymTabType> for (;First != Last; ++First) if ((*First)->hasName()) Parent->getSymbolTableSure()->insert(*First); + + return begin()+Offset; } #endif |
