summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/NestedNameSpecifier.cpp
diff options
context:
space:
mode:
authorSerge Pavlov <sepavloff@gmail.com>2014-07-16 18:18:13 +0000
committerSerge Pavlov <sepavloff@gmail.com>2014-07-16 18:18:13 +0000
commit9f81d6a4827c56b974529c0ccc6e675c277f6450 (patch)
treebe95bc39f075bd3e242c72b5da765f77914ae7ae /clang/lib/AST/NestedNameSpecifier.cpp
parent62a8e0639b58900625feed6421a044af7dfa1e8c (diff)
downloadbcm5719-llvm-9f81d6a4827c56b974529c0ccc6e675c277f6450.tar.gz
bcm5719-llvm-9f81d6a4827c56b974529c0ccc6e675c277f6450.zip
Simplify memory management in NestedNameSpecifierLocBuilder.
With this change the memory of buffer in NestedNameSpecifierLocBuilder is allocated in one place. It also prevents from allocation of tiny blocks. llvm-svn: 213178
Diffstat (limited to 'clang/lib/AST/NestedNameSpecifier.cpp')
-rw-r--r--clang/lib/AST/NestedNameSpecifier.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/clang/lib/AST/NestedNameSpecifier.cpp b/clang/lib/AST/NestedNameSpecifier.cpp
index e4b39b58ab8..1f041aa4954 100644
--- a/clang/lib/AST/NestedNameSpecifier.cpp
+++ b/clang/lib/AST/NestedNameSpecifier.cpp
@@ -453,10 +453,8 @@ NestedNameSpecifierLocBuilder(const NestedNameSpecifierLocBuilder &Other)
}
// Deep copy
- BufferSize = Other.BufferSize;
- BufferCapacity = Other.BufferSize;
- Buffer = static_cast<char *>(malloc(BufferCapacity));
- memcpy(Buffer, Other.Buffer, BufferSize);
+ Append(Other.Buffer, Other.Buffer + Other.BufferSize, Buffer, BufferSize,
+ BufferCapacity);
}
NestedNameSpecifierLocBuilder &
@@ -492,10 +490,8 @@ operator=(const NestedNameSpecifierLocBuilder &Other) {
}
// Deep copy.
- BufferSize = Other.BufferSize;
- BufferCapacity = BufferSize;
- Buffer = static_cast<char *>(malloc(BufferSize));
- memcpy(Buffer, Other.Buffer, BufferSize);
+ Append(Other.Buffer, Other.Buffer + Other.BufferSize, Buffer, BufferSize,
+ BufferCapacity);
return *this;
}
OpenPOWER on IntegriCloud