diff options
author | jorlow@chromium.org <jorlow@chromium.org@62dab493-f737-651d-591e-8d6aee1b9529> | 2011-03-28 20:43:44 +0000 |
---|---|---|
committer | jorlow@chromium.org <jorlow@chromium.org@62dab493-f737-651d-591e-8d6aee1b9529> | 2011-03-28 20:43:44 +0000 |
commit | e2da744e1241fec301351ca34730877e6cff722a (patch) | |
tree | 7e8e474bb5a8f038cf9e69e591529ee614d939d9 /util | |
parent | e11bdf1935bc5a46db790ef414110149009f8c6a (diff) | |
download | leveldb-e2da744e1241fec301351ca34730877e6cff722a.tar.gz |
Upstream changes.
git-svn-id: https://leveldb.googlecode.com/svn/trunk@16 62dab493-f737-651d-591e-8d6aee1b9529
Diffstat (limited to 'util')
-rw-r--r-- | util/env_chromium.cc | 16 | ||||
-rw-r--r-- | util/env_posix.cc | 16 |
2 files changed, 6 insertions, 26 deletions
diff --git a/util/env_chromium.cc b/util/env_chromium.cc index d79406f..834ec2d 100644 --- a/util/env_chromium.cc +++ b/util/env_chromium.cc @@ -144,17 +144,13 @@ class ChromiumSequentialFile: public SequentialFile { class ChromiumRandomAccessFile: public RandomAccessFile { private: std::string filename_; - uint64_t size_; ::base::PlatformFile file_; public: - ChromiumRandomAccessFile(const std::string& fname, uint64_t size, - ::base::PlatformFile file) - : filename_(fname), size_(size), file_(file) { } + ChromiumRandomAccessFile(const std::string& fname, ::base::PlatformFile file) + : filename_(fname), file_(file) { } virtual ~ChromiumRandomAccessFile() { ::base::ClosePlatformFile(file_); } - virtual uint64_t Size() const { return size_; } - virtual Status Read(uint64_t offset, size_t n, Slice* result, char* scratch) const { Status s; @@ -256,13 +252,7 @@ class ChromiumEnv : public Env { *result = NULL; return Status::IOError(fname, PlatformFileErrorString(error_code)); } - ::base::PlatformFileInfo info; - if (!::base::GetPlatformFileInfo(file, &info)) { - *result = NULL; - ::base::ClosePlatformFile(file); - return Status::IOError(fname, PlatformFileErrorString(error_code)); - } - *result = new ChromiumRandomAccessFile(fname, info.size, file); + *result = new ChromiumRandomAccessFile(fname, file); return Status::OK(); } diff --git a/util/env_posix.cc b/util/env_posix.cc index f5174d3..5c58449 100644 --- a/util/env_posix.cc +++ b/util/env_posix.cc @@ -57,16 +57,13 @@ class PosixSequentialFile: public SequentialFile { class PosixRandomAccessFile: public RandomAccessFile { private: std::string filename_; - uint64_t size_; int fd_; public: - PosixRandomAccessFile(const std::string& fname, uint64_t size, int fd) - : filename_(fname), size_(size), fd_(fd) { } + PosixRandomAccessFile(const std::string& fname, int fd) + : filename_(fname), fd_(fd) { } virtual ~PosixRandomAccessFile() { close(fd_); } - virtual uint64_t Size() const { return size_; } - virtual Status Read(uint64_t offset, size_t n, Slice* result, char* scratch) const { Status s; @@ -286,14 +283,7 @@ class PosixEnv : public Env { *result = NULL; return Status::IOError(fname, strerror(errno)); } - struct stat sbuf; - if (fstat(fd, &sbuf) != 0) { - *result = NULL; - Status s = Status::IOError(fname, strerror(errno)); - close(fd); - return s; - } - *result = new PosixRandomAccessFile(fname, sbuf.st_size, fd); + *result = new PosixRandomAccessFile(fname, fd); return Status::OK(); } |