mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-26 05:25:47 +00:00
Don't write into MemoryBuffers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101783 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -348,9 +348,8 @@ Archive::getAllModules(std::vector<Module*>& Modules,
|
||||
std::string FullMemberName = archPath.str() +
|
||||
"(" + I->getPath().str() + ")";
|
||||
MemoryBuffer *Buffer =
|
||||
MemoryBuffer::getNewMemBuffer(I->getSize(), FullMemberName.c_str());
|
||||
memcpy(const_cast<char *>(Buffer->getBufferStart()),
|
||||
I->getData(), I->getSize());
|
||||
MemoryBuffer::getMemBufferCopy(StringRef(I->getData(), I->getSize()),
|
||||
FullMemberName.c_str());
|
||||
|
||||
Module *M = ParseBitcodeFile(Buffer, Context, ErrMessage);
|
||||
delete Buffer;
|
||||
@@ -488,10 +487,9 @@ Archive::findModuleDefiningSymbol(const std::string& symbol,
|
||||
// Now, load the bitcode module to get the Module.
|
||||
std::string FullMemberName = archPath.str() + "(" +
|
||||
mbr->getPath().str() + ")";
|
||||
MemoryBuffer *Buffer =MemoryBuffer::getNewMemBuffer(mbr->getSize(),
|
||||
FullMemberName.c_str());
|
||||
memcpy(const_cast<char *>(Buffer->getBufferStart()),
|
||||
mbr->getData(), mbr->getSize());
|
||||
MemoryBuffer *Buffer =
|
||||
MemoryBuffer::getMemBufferCopy(StringRef(mbr->getData(), mbr->getSize()),
|
||||
FullMemberName.c_str());
|
||||
|
||||
Module *m = getLazyBitcodeModule(Buffer, Context, ErrMsg);
|
||||
if (!m)
|
||||
@@ -540,8 +538,8 @@ Archive::findModulesDefiningSymbols(std::set<std::string>& symbols,
|
||||
std::string FullMemberName = archPath.str() + "(" +
|
||||
mbr->getPath().str() + ")";
|
||||
Module* M =
|
||||
GetBitcodeSymbols((const unsigned char*)At, mbr->getSize(),
|
||||
FullMemberName, Context, symbols, error);
|
||||
GetBitcodeSymbols(At, mbr->getSize(), FullMemberName, Context,
|
||||
symbols, error);
|
||||
|
||||
if (M) {
|
||||
// Insert the module's symbols into the symbol table
|
||||
@@ -618,9 +616,8 @@ bool Archive::isBitcodeArchive() {
|
||||
archPath.str() + "(" + I->getPath().str() + ")";
|
||||
|
||||
MemoryBuffer *Buffer =
|
||||
MemoryBuffer::getNewMemBuffer(I->getSize(), FullMemberName.c_str());
|
||||
memcpy(const_cast<char *>(Buffer->getBufferStart()),
|
||||
I->getData(), I->getSize());
|
||||
MemoryBuffer::getMemBufferCopy(StringRef(I->getData(), I->getSize()),
|
||||
FullMemberName.c_str());
|
||||
Module *M = ParseBitcodeFile(Buffer, Context);
|
||||
delete Buffer;
|
||||
if (!M)
|
||||
|
Reference in New Issue
Block a user