diff options
author | Serge Pavlov <sepavloff@gmail.com> | 2014-07-16 18:18:13 +0000 |
---|---|---|
committer | Serge Pavlov <sepavloff@gmail.com> | 2014-07-16 18:18:13 +0000 |
commit | 9f81d6a4827c56b974529c0ccc6e675c277f6450 (patch) | |
tree | be95bc39f075bd3e242c72b5da765f77914ae7ae /clang/lib/AST/NestedNameSpecifier.cpp | |
parent | 62a8e0639b58900625feed6421a044af7dfa1e8c (diff) | |
download | bcm5719-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.cpp | 12 |
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; } |