[llvm-commits] [llvm] r49041 - in /llvm/trunk: include/llvm/Support/MemoryBuffer.h lib/Archive/Archive.cpp lib/Archive/ArchiveWriter.cpp lib/AsmParser/Parser.cpp lib/Debugger/Debugger.cpp lib/Linker/Linker.cpp lib/Support/FileUtilities.cpp lib/Support/MemoryBuffer.cpp lib/VMCore/Core.cpp tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp tools/lto2/LTOCodeGenerator.cpp tools/lto2/LTOModule.cpp utils/TableGen/TGLexer.cpp utils/TableGen/TableGen.cpp
Chris Lattner
sabre at nondot.org
Tue Apr 1 11:04:04 PDT 2008
Author: lattner
Date: Tue Apr 1 13:04:03 2008
New Revision: 49041
URL: http://llvm.org/viewvc/llvm-project?rev=49041&view=rev
Log:
Change the MemoryBuffer::getFile* methods to take just a pointer to the
start of a filename, not a filename+length. All clients can produce a
null terminated name, and the system api's require null terminated
strings anyway.
Modified:
llvm/trunk/include/llvm/Support/MemoryBuffer.h
llvm/trunk/lib/Archive/Archive.cpp
llvm/trunk/lib/Archive/ArchiveWriter.cpp
llvm/trunk/lib/AsmParser/Parser.cpp
llvm/trunk/lib/Debugger/Debugger.cpp
llvm/trunk/lib/Linker/Linker.cpp
llvm/trunk/lib/Support/FileUtilities.cpp
llvm/trunk/lib/Support/MemoryBuffer.cpp
llvm/trunk/lib/VMCore/Core.cpp
llvm/trunk/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
llvm/trunk/tools/lto2/LTOCodeGenerator.cpp
llvm/trunk/tools/lto2/LTOModule.cpp
llvm/trunk/utils/TableGen/TGLexer.cpp
llvm/trunk/utils/TableGen/TableGen.cpp
Modified: llvm/trunk/include/llvm/Support/MemoryBuffer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/MemoryBuffer.h?rev=49041&r1=49040&r2=49041&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/MemoryBuffer.h (original)
+++ llvm/trunk/include/llvm/Support/MemoryBuffer.h Tue Apr 1 13:04:03 2008
@@ -52,7 +52,7 @@
/// MemoryBuffer if successful, otherwise returning null. If FileSize is
/// specified, this means that the client knows that the file exists and that
/// it has the specified size.
- static MemoryBuffer *getFile(const char *FilenameStart, unsigned FnSize,
+ static MemoryBuffer *getFile(const char *Filename,
std::string *ErrStr = 0,
int64_t FileSize = -1);
@@ -90,7 +90,7 @@
/// if the Filename is "-". If an error occurs, this returns null and fills
/// in *ErrStr with a reason. If stdin is empty, this API (unlike getSTDIN)
/// returns an empty buffer.
- static MemoryBuffer *getFileOrSTDIN(const char *FilenameStart,unsigned FnSize,
+ static MemoryBuffer *getFileOrSTDIN(const char *Filename,
std::string *ErrStr = 0,
int64_t FileSize = -1);
@@ -100,7 +100,7 @@
static MemoryBuffer *getFileOrSTDIN(const std::string &FN,
std::string *ErrStr = 0,
int64_t FileSize = -1) {
- return getFileOrSTDIN(&FN[0], FN.size(), ErrStr, FileSize);
+ return getFileOrSTDIN(FN.c_str(), ErrStr, FileSize);
}
};
Modified: llvm/trunk/lib/Archive/Archive.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Archive/Archive.cpp?rev=49041&r1=49040&r2=49041&view=diff
==============================================================================
--- llvm/trunk/lib/Archive/Archive.cpp (original)
+++ llvm/trunk/lib/Archive/Archive.cpp Tue Apr 1 13:04:03 2008
@@ -145,7 +145,7 @@
bool
Archive::mapToMemory(std::string* ErrMsg) {
- mapfile = MemoryBuffer::getFile(archPath.c_str(), archPath.size(), ErrMsg);
+ mapfile = MemoryBuffer::getFile(archPath.c_str(), ErrMsg);
if (mapfile == 0)
return true;
base = mapfile->getBufferStart();
@@ -211,8 +211,7 @@
std::vector<std::string>& symbols,
std::string* ErrMsg) {
std::auto_ptr<MemoryBuffer> Buffer(
- MemoryBuffer::getFileOrSTDIN(&fName.toString()[0],
- fName.toString().size()));
+ MemoryBuffer::getFileOrSTDIN(fName.c_str()));
if (!Buffer.get()) {
if (ErrMsg) *ErrMsg = "Could not open file '" + fName.toString() + "'";
return true;
Modified: llvm/trunk/lib/Archive/ArchiveWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Archive/ArchiveWriter.cpp?rev=49041&r1=49040&r2=49041&view=diff
==============================================================================
--- llvm/trunk/lib/Archive/ArchiveWriter.cpp (original)
+++ llvm/trunk/lib/Archive/ArchiveWriter.cpp Tue Apr 1 13:04:03 2008
@@ -212,8 +212,7 @@
const char *data = (const char*)member.getData();
MemoryBuffer *mFile = 0;
if (!data) {
- mFile = MemoryBuffer::getFile(member.getPath().c_str(),
- member.getPath().size(), ErrMsg);
+ mFile = MemoryBuffer::getFile(member.getPath().c_str(), ErrMsg);
if (mFile == 0)
return true;
data = mFile->getBufferStart();
@@ -407,8 +406,7 @@
// Map in the archive we just wrote.
{
- OwningPtr<MemoryBuffer> arch(MemoryBuffer::getFile(TmpArchive.c_str(),
- TmpArchive.size()));
+ OwningPtr<MemoryBuffer> arch(MemoryBuffer::getFile(TmpArchive.c_str()));
if (arch == 0) return true;
const char* base = arch->getBufferStart();
Modified: llvm/trunk/lib/AsmParser/Parser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/Parser.cpp?rev=49041&r1=49040&r2=49041&view=diff
==============================================================================
--- llvm/trunk/lib/AsmParser/Parser.cpp (original)
+++ llvm/trunk/lib/AsmParser/Parser.cpp Tue Apr 1 13:04:03 2008
@@ -22,8 +22,7 @@
Module *llvm::ParseAssemblyFile(const std::string &Filename, ParseError* Err) {
std::string ErrorStr;
- MemoryBuffer *F = MemoryBuffer::getFileOrSTDIN(&Filename[0], Filename.size(),
- &ErrorStr);
+ MemoryBuffer *F = MemoryBuffer::getFileOrSTDIN(Filename.c_str(), &ErrorStr);
if (F == 0) {
if (Err)
Err->setError(Filename, "Could not open input file '" + Filename + "'");
Modified: llvm/trunk/lib/Debugger/Debugger.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Debugger/Debugger.cpp?rev=49041&r1=49040&r2=49041&view=diff
==============================================================================
--- llvm/trunk/lib/Debugger/Debugger.cpp (original)
+++ llvm/trunk/lib/Debugger/Debugger.cpp Tue Apr 1 13:04:03 2008
@@ -47,7 +47,7 @@
static Module *
getMaterializedModuleProvider(const std::string &Filename) {
std::auto_ptr<MemoryBuffer> Buffer;
- Buffer.reset(MemoryBuffer::getFileOrSTDIN(&Filename[0], Filename.size()));
+ Buffer.reset(MemoryBuffer::getFileOrSTDIN(Filename.c_str()));
if (Buffer.get())
return ParseBitcodeFile(Buffer.get());
return 0;
Modified: llvm/trunk/lib/Linker/Linker.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Linker/Linker.cpp?rev=49041&r1=49040&r2=49041&view=diff
==============================================================================
--- llvm/trunk/lib/Linker/Linker.cpp (original)
+++ llvm/trunk/lib/Linker/Linker.cpp Tue Apr 1 13:04:03 2008
@@ -19,7 +19,8 @@
#include "llvm/Support/Streams.h"
using namespace llvm;
-Linker::Linker(const std::string& progname, const std::string& modname, unsigned flags)
+Linker::Linker(const std::string& progname, const std::string& modname,
+ unsigned flags)
: Composite(0)
, LibPaths()
, Flags(flags)
@@ -103,8 +104,7 @@
Module *Result = 0;
const std::string &FNS = FN.toString();
- std::auto_ptr<MemoryBuffer> Buffer(
- MemoryBuffer::getFileOrSTDIN(&FNS[0], FNS.size()));
+ std::auto_ptr<MemoryBuffer> Buffer(MemoryBuffer::getFileOrSTDIN(FNS.c_str()));
if (Buffer.get())
Result = ParseBitcodeFile(Buffer.get(), &ParseErrorMessage);
else
Modified: llvm/trunk/lib/Support/FileUtilities.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/FileUtilities.cpp?rev=49041&r1=49040&r2=49041&view=diff
==============================================================================
--- llvm/trunk/lib/Support/FileUtilities.cpp (original)
+++ llvm/trunk/lib/Support/FileUtilities.cpp Tue Apr 1 13:04:03 2008
@@ -189,10 +189,8 @@
// Now its safe to mmap the files into memory becasue both files
// have a non-zero size.
- OwningPtr<MemoryBuffer> F1(MemoryBuffer::getFile(FileA.c_str(), FileA.size(),
- Error));
- OwningPtr<MemoryBuffer> F2(MemoryBuffer::getFile(FileB.c_str(), FileB.size(),
- Error));
+ OwningPtr<MemoryBuffer> F1(MemoryBuffer::getFile(FileA.c_str(), Error));
+ OwningPtr<MemoryBuffer> F2(MemoryBuffer::getFile(FileB.c_str(), Error));
if (F1 == 0 || F2 == 0)
return 2;
Modified: llvm/trunk/lib/Support/MemoryBuffer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/MemoryBuffer.cpp?rev=49041&r1=49040&r2=49041&view=diff
==============================================================================
--- llvm/trunk/lib/Support/MemoryBuffer.cpp (original)
+++ llvm/trunk/lib/Support/MemoryBuffer.cpp Tue Apr 1 13:04:03 2008
@@ -132,12 +132,11 @@
/// if the Filename is "-". If an error occurs, this returns null and fills
/// in *ErrStr with a reason. If stdin is empty, this API (unlike getSTDIN)
/// returns an empty buffer.
-MemoryBuffer *MemoryBuffer::getFileOrSTDIN(const char *FilenameStart,
- unsigned FnSize,
+MemoryBuffer *MemoryBuffer::getFileOrSTDIN(const char *Filename,
std::string *ErrStr,
int64_t FileSize) {
- if (FnSize != 1 || FilenameStart[0] != '-')
- return getFile(FilenameStart, FnSize, ErrStr, FileSize);
+ if (Filename[0] != '-' || Filename[1] != 0)
+ return getFile(Filename, ErrStr, FileSize);
MemoryBuffer *M = getSTDIN();
if (M) return M;
@@ -172,17 +171,13 @@
};
}
-MemoryBuffer *MemoryBuffer::getFile(const char *FilenameStart, unsigned FnSize,
- std::string *ErrStr, int64_t FileSize) {
- // Null terminate the filename.
- SmallString<1000> Filename(FilenameStart, FilenameStart+FnSize);
- Filename.push_back(0);
-
+MemoryBuffer *MemoryBuffer::getFile(const char *Filename, std::string *ErrStr,
+ int64_t FileSize) {
int OpenFlags = 0;
#ifdef O_BINARY
Flags |= O_BINARY; // Open input file in binary mode on win32.
#endif
- int FD = ::open(&Filename[0], O_RDONLY|OpenFlags);
+ int FD = ::open(Filename, O_RDONLY|OpenFlags);
if (FD == -1) {
if (ErrStr) *ErrStr = "could not open file";
return 0;
@@ -211,12 +206,12 @@
if (const char *Pages = sys::Path::MapInFilePages(FD, FileSize)) {
// Close the file descriptor, now that the whole file is in memory.
::close(FD);
- return new MemoryBufferMMapFile(&Filename[0], Pages, FileSize);
+ return new MemoryBufferMMapFile(Filename, Pages, FileSize);
}
}
OwningPtr<MemoryBuffer> SB;
- SB.reset(MemoryBuffer::getNewUninitMemBuffer(FileSize, &Filename[0]));
+ SB.reset(MemoryBuffer::getNewUninitMemBuffer(FileSize, Filename));
char *BufPtr = const_cast<char*>(SB->getBufferStart());
unsigned BytesLeft = FileSize;
Modified: llvm/trunk/lib/VMCore/Core.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Core.cpp?rev=49041&r1=49040&r2=49041&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/Core.cpp (original)
+++ llvm/trunk/lib/VMCore/Core.cpp Tue Apr 1 13:04:03 2008
@@ -1307,7 +1307,7 @@
LLVMMemoryBufferRef *OutMemBuf,
char **OutMessage) {
std::string Error;
- if (MemoryBuffer *MB = MemoryBuffer::getFile(Path, strlen(Path), &Error)) {
+ if (MemoryBuffer *MB = MemoryBuffer::getFile(Path, &Error)) {
*OutMemBuf = wrap(MB);
return 0;
}
Modified: llvm/trunk/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp?rev=49041&r1=49040&r2=49041&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp (original)
+++ llvm/trunk/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp Tue Apr 1 13:04:03 2008
@@ -374,11 +374,7 @@
/// AnalyzeBitcode - Analyze the bitcode file specified by InputFilename.
static int AnalyzeBitcode() {
// Read the input file.
- MemoryBuffer *Buffer;
- if (InputFilename == "-")
- Buffer = MemoryBuffer::getSTDIN();
- else
- Buffer = MemoryBuffer::getFile(&InputFilename[0], InputFilename.size());
+ MemoryBuffer *Buffer = MemoryBuffer::getFileOrSTDIN(InputFilename.c_str());
if (Buffer == 0)
return Error("Error reading '" + InputFilename + "'.");
Modified: llvm/trunk/tools/lto2/LTOCodeGenerator.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/lto2/LTOCodeGenerator.cpp?rev=49041&r1=49040&r2=49041&view=diff
==============================================================================
--- llvm/trunk/tools/lto2/LTOCodeGenerator.cpp (original)
+++ llvm/trunk/tools/lto2/LTOCodeGenerator.cpp Tue Apr 1 13:04:03 2008
@@ -186,8 +186,7 @@
delete _nativeObjectFile;
// read .o file into memory buffer
- _nativeObjectFile = MemoryBuffer::getFile(&uniqueObjStr[0],
- uniqueObjStr.size(), &errMsg);
+ _nativeObjectFile = MemoryBuffer::getFile(uniqueObjStr.c_str(),&errMsg);
}
// remove temp files
Modified: llvm/trunk/tools/lto2/LTOModule.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/lto2/LTOModule.cpp?rev=49041&r1=49040&r2=49041&view=diff
==============================================================================
--- llvm/trunk/tools/lto2/LTOModule.cpp (original)
+++ llvm/trunk/tools/lto2/LTOModule.cpp Tue Apr 1 13:04:03 2008
@@ -43,11 +43,11 @@
return llvm::sys::Path(path).isBitcodeFile();
}
-bool LTOModule::isBitcodeFileForTarget(const void* mem,
- size_t length, const char* triplePrefix)
+bool LTOModule::isBitcodeFileForTarget(const void* mem, size_t length,
+ const char* triplePrefix)
{
MemoryBuffer* buffer = MemoryBuffer::getMemBuffer((char*)mem,
- (char*)mem+length);
+ (char*)mem+length);
if ( buffer == NULL )
return false;
return isTargetMatch(buffer, triplePrefix);
@@ -55,10 +55,10 @@
bool LTOModule::isBitcodeFileForTarget(const char* path,
- const char* triplePrefix)
+ const char* triplePrefix)
{
- MemoryBuffer* buffer = MemoryBuffer::getFile(path, strlen(path));
- if ( buffer == NULL )
+ MemoryBuffer *buffer = MemoryBuffer::getFile(path);
+ if (buffer == NULL)
return false;
return isTargetMatch(buffer, triplePrefix);
}
@@ -85,8 +85,7 @@
LTOModule* LTOModule::makeLTOModule(const char* path, std::string& errMsg)
{
- OwningPtr<MemoryBuffer> buffer(MemoryBuffer::getFile(
- path, strlen(path), &errMsg));
+ OwningPtr<MemoryBuffer> buffer(MemoryBuffer::getFile(path, &errMsg));
if ( !buffer )
return NULL;
return makeLTOModule(buffer.get(), errMsg);
Modified: llvm/trunk/utils/TableGen/TGLexer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/TGLexer.cpp?rev=49041&r1=49040&r2=49041&view=diff
==============================================================================
--- llvm/trunk/utils/TableGen/TGLexer.cpp (original)
+++ llvm/trunk/utils/TableGen/TGLexer.cpp Tue Apr 1 13:04:03 2008
@@ -256,12 +256,12 @@
std::string Filename = CurStrVal;
// Try to find the file.
- MemoryBuffer *NewBuf = MemoryBuffer::getFile(&Filename[0], Filename.size());
+ MemoryBuffer *NewBuf = MemoryBuffer::getFile(Filename.c_str());
// If the file didn't exist directly, see if it's in an include path.
for (unsigned i = 0, e = IncludeDirectories.size(); i != e && !NewBuf; ++i) {
std::string IncFile = IncludeDirectories[i] + "/" + Filename;
- NewBuf = MemoryBuffer::getFile(&IncFile[0], IncFile.size());
+ NewBuf = MemoryBuffer::getFile(IncFile.c_str());
}
if (NewBuf == 0) {
Modified: llvm/trunk/utils/TableGen/TableGen.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/TableGen.cpp?rev=49041&r1=49040&r2=49041&view=diff
==============================================================================
--- llvm/trunk/utils/TableGen/TableGen.cpp (original)
+++ llvm/trunk/utils/TableGen/TableGen.cpp Tue Apr 1 13:04:03 2008
@@ -107,8 +107,7 @@
static bool ParseFile(const std::string &Filename,
const std::vector<std::string> &IncludeDirs) {
std::string ErrorStr;
- MemoryBuffer *F = MemoryBuffer::getFileOrSTDIN(&Filename[0], Filename.size(),
- &ErrorStr);
+ MemoryBuffer *F = MemoryBuffer::getFileOrSTDIN(Filename.c_str(), &ErrorStr);
if (F == 0) {
cerr << "Could not open input file '" + Filename + "': " << ErrorStr <<"\n";
return true;
More information about the llvm-commits
mailing list