diff options
| author | Chris Lattner <sabre@nondot.org> | 2007-11-08 17:59:48 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2007-11-08 17:59:48 +0000 |
| commit | 9a00d3ec90dd144dda58e1758b5ddde3dceec254 (patch) | |
| tree | 6996b5a9576f5f08b41241d5625923380e117d7e | |
| parent | 3a21bd50e7995ace4898b4d7329cea1696f195d4 (diff) | |
| download | bcm5719-llvm-9a00d3ec90dd144dda58e1758b5ddde3dceec254.tar.gz bcm5719-llvm-9a00d3ec90dd144dda58e1758b5ddde3dceec254.zip | |
Simplify interface to MakeRopeString.
llvm-svn: 43895
| -rw-r--r-- | clang/include/clang/Rewrite/RewriteRope.h | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/clang/include/clang/Rewrite/RewriteRope.h b/clang/include/clang/Rewrite/RewriteRope.h index 7d4863c2930..3d5b0237811 100644 --- a/clang/include/clang/Rewrite/RewriteRope.h +++ b/clang/include/clang/Rewrite/RewriteRope.h @@ -32,7 +32,11 @@ struct RopePiece { RopePiece(RopeRefCountString *Str, unsigned Start, unsigned End) : StrData(Str), StartOffs(Start), EndOffs(End) { - StrData->RefCount++; + ++StrData->RefCount; + } + RopePiece(const RopePiece &RP) + : StrData(RP.StrData), StartOffs(RP.StartOffs), EndOffs(RP.EndOffs) { + ++StrData->RefCount; } ~RopePiece() { @@ -162,8 +166,7 @@ public: void assign(const char *Start, const char *End) { clear(); - Chunks.push_back(new RopePiece(MakeRopeString(Start, End), 0, - End-Start)); + Chunks.push_back(new RopePiece(MakeRopeString(Start, End))); CurSize = End-Start; } @@ -172,8 +175,8 @@ public: unsigned ChunkNo = SplitAt(Loc); - RopeRefCountString *Str = MakeRopeString(Start, End); - Chunks.insert(Chunks.begin()+ChunkNo, new RopePiece(Str, 0, End-Start)); + Chunks.insert(Chunks.begin()+ChunkNo, + new RopePiece(MakeRopeString(Start, End))); CurSize += End-Start; } @@ -253,13 +256,13 @@ public: } private: - RopeRefCountString *MakeRopeString(const char *Start, const char *End) { + RopePiece MakeRopeString(const char *Start, const char *End) { unsigned Size = End-Start+sizeof(RopeRefCountString)-1; RopeRefCountString *Res = reinterpret_cast<RopeRefCountString *>(new char[Size]); Res->RefCount = 0; memcpy(Res->Data, Start, End-Start); - return Res; + return RopePiece(Res, 0, End-Start); } unsigned getChunkIdx(iterator Loc) const { |

