Remove static initializer from DataStream.cpp

If someone would prefer a clear name for the 'success' error_value we could
come up with one - potentially just a 'named constructor' style
'error_value::success()' to make this expression more self-documenting. If
I see this come up in other cases I'll certainly consider it.

One step along the way to resolving PR11944.

llvm-svn: 150120
This commit is contained in:
David Blaikie 2012-02-09 00:29:19 +00:00
parent 7cc99dc40f
commit e7d7a5dfaa
1 changed files with 11 additions and 12 deletions

View File

@ -49,8 +49,6 @@ DataStreamer::~DataStreamer() {}
namespace {
const static error_code success;
// Very simple stream backed by a file. Mostly useful for stdin and debugging;
// actual file access is probably still best done with mmap.
class DataFileStreamer : public DataStreamer {
@ -66,18 +64,20 @@ public:
}
error_code OpenFile(const std::string &Filename) {
if (Filename == "-") {
Fd = 0;
sys::Program::ChangeStdinToBinary();
return error_code();
}
int OpenFlags = O_RDONLY;
#ifdef O_BINARY
OpenFlags |= O_BINARY; // Open input file in binary mode on win32.
#endif
if (Filename == "-") {
Fd = 0;
sys::Program::ChangeStdinToBinary();
}
else
Fd = ::open(Filename.c_str(), OpenFlags);
if (Fd == -1) return error_code(errno, posix_category());
return success;
Fd = ::open(Filename.c_str(), OpenFlags);
if (Fd == -1)
return error_code(errno, posix_category());
return error_code();
}
};
@ -87,8 +87,7 @@ namespace llvm {
DataStreamer *getDataFileStreamer(const std::string &Filename,
std::string *StrError) {
DataFileStreamer *s = new DataFileStreamer();
error_code e = s->OpenFile(Filename);
if (e != success) {
if (error_code e = s->OpenFile(Filename)) {
*StrError = std::string("Could not open ") + Filename + ": " +
e.message() + "\n";
return NULL;