aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Archive/Archive.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2010-04-19 16:15:31 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2010-04-19 16:15:31 +0000
commit4d4a029d7b08e5195ed793cbd474ec13ba71e4f1 (patch)
tree45d25ae2ef771d9801de0119b21b8cda349bd17d /lib/Archive/Archive.cpp
parent523f07799473b5e068cc1489a257a105ca3c1725 (diff)
downloadexternal_llvm-4d4a029d7b08e5195ed793cbd474ec13ba71e4f1.zip
external_llvm-4d4a029d7b08e5195ed793cbd474ec13ba71e4f1.tar.gz
external_llvm-4d4a029d7b08e5195ed793cbd474ec13ba71e4f1.tar.bz2
Don't write into MemoryBuffers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101783 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Archive/Archive.cpp')
-rw-r--r--lib/Archive/Archive.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/Archive/Archive.cpp b/lib/Archive/Archive.cpp
index 4f100f7..54c715c 100644
--- a/lib/Archive/Archive.cpp
+++ b/lib/Archive/Archive.cpp
@@ -233,15 +233,14 @@ bool llvm::GetBitcodeSymbols(const sys::Path& fName,
}
Module*
-llvm::GetBitcodeSymbols(const unsigned char *BufPtr, unsigned Length,
+llvm::GetBitcodeSymbols(const char *BufPtr, unsigned Length,
const std::string& ModuleID,
LLVMContext& Context,
std::vector<std::string>& symbols,
std::string* ErrMsg) {
// Get the module.
std::auto_ptr<MemoryBuffer> Buffer(
- MemoryBuffer::getNewMemBuffer(Length, ModuleID.c_str()));
- memcpy(const_cast<char *>(Buffer->getBufferStart()), BufPtr, Length);
+ MemoryBuffer::getMemBufferCopy(StringRef(BufPtr, Length),ModuleID.c_str()));
Module *M = ParseBitcodeFile(Buffer.get(), Context, ErrMsg);
if (!M)