summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2007-11-08 17:59:48 +0000
committerChris Lattner <sabre@nondot.org>2007-11-08 17:59:48 +0000
commit9a00d3ec90dd144dda58e1758b5ddde3dceec254 (patch)
tree6996b5a9576f5f08b41241d5625923380e117d7e
parent3a21bd50e7995ace4898b4d7329cea1696f195d4 (diff)
downloadbcm5719-llvm-9a00d3ec90dd144dda58e1758b5ddde3dceec254.tar.gz
bcm5719-llvm-9a00d3ec90dd144dda58e1758b5ddde3dceec254.zip
Simplify interface to MakeRopeString.
llvm-svn: 43895
-rw-r--r--clang/include/clang/Rewrite/RewriteRope.h17
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 {
OpenPOWER on IntegriCloud