diff options
| author | Chris Lattner <sabre@nondot.org> | 2008-04-06 04:36:15 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2008-04-06 04:36:15 +0000 |
| commit | 53adca66103db2916cadda944b1418e0dbfb7145 (patch) | |
| tree | aaec489a62444960a7c901ba37b5d55cbe456327 /clang | |
| parent | 1e830c07a27a4dcab519ab5142f383192c82a95e (diff) | |
| download | bcm5719-llvm-53adca66103db2916cadda944b1418e0dbfb7145.tar.gz bcm5719-llvm-53adca66103db2916cadda944b1418e0dbfb7145.zip | |
don't dereference hte end iterator when inserting at end of buffer.
Patch by Cédric Venet!
llvm-svn: 49259
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/include/clang/Rewrite/RewriteRope.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/include/clang/Rewrite/RewriteRope.h b/clang/include/clang/Rewrite/RewriteRope.h index 4d558b579f3..8d2fbe38575 100644 --- a/clang/include/clang/Rewrite/RewriteRope.h +++ b/clang/include/clang/Rewrite/RewriteRope.h @@ -148,6 +148,7 @@ public: iterator getAtOffset(unsigned Offset) { assert(Offset <= CurSize && "Offset out of range!"); + if (Offset == CurSize) return iterator(Chunks.end(), 0); std::list<RopePiece>::iterator Piece = Chunks.begin(); while (Offset >= Piece->size()) { Offset -= Piece->size(); @@ -158,6 +159,7 @@ public: const_iterator getAtOffset(unsigned Offset) const { assert(Offset <= CurSize && "Offset out of range!"); + if (Offset == CurSize) return const_iterator(Chunks.end(), 0); std::list<RopePiece>::const_iterator Piece = Chunks.begin(); while (Offset >= Piece->size()) { Offset -= Piece->size(); |

