diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-11-10 00:43:58 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-11-10 00:43:58 +0000 |
commit | 124fc5e2521019d1e170d6e82ad7415ff32e230e (patch) | |
tree | f210987b3e766d00f2f48dad0933d44bcc0d2e9c /llvm/lib/VMCore/Core.cpp | |
parent | 983136e3a1eed1fc44b99b477897eb09d619f9a6 (diff) | |
download | bcm5719-llvm-124fc5e2521019d1e170d6e82ad7415ff32e230e.tar.gz bcm5719-llvm-124fc5e2521019d1e170d6e82ad7415ff32e230e.zip |
Fix MemoryBuffer::getSTDIN to *not* return null if stdin is empty, this is a lame API.
Also, Stringrefify some more MemoryBuffer functions, and add two performance FIXMEs.
llvm-svn: 86630
Diffstat (limited to 'llvm/lib/VMCore/Core.cpp')
-rw-r--r-- | llvm/lib/VMCore/Core.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/llvm/lib/VMCore/Core.cpp b/llvm/lib/VMCore/Core.cpp index 1a341804836..73fe17a3323 100644 --- a/llvm/lib/VMCore/Core.cpp +++ b/llvm/lib/VMCore/Core.cpp @@ -1987,13 +1987,15 @@ int LLVMCreateMemoryBufferWithContentsOfFile(const char *Path, int LLVMCreateMemoryBufferWithSTDIN(LLVMMemoryBufferRef *OutMemBuf, char **OutMessage) { - if (MemoryBuffer *MB = MemoryBuffer::getSTDIN()) { - *OutMemBuf = wrap(MB); - return 0; + MemoryBuffer *MB = MemoryBuffer::getSTDIN(); + if (!MB->getBufferSize()) { + delete MB; + *OutMessage = strdup("stdin is empty."); + return 1; } - - *OutMessage = strdup("stdin is empty."); - return 1; + + *OutMemBuf = wrap(MB); + return 0; } void LLVMDisposeMemoryBuffer(LLVMMemoryBufferRef MemBuf) { |