From: Andreas Hansson Date: Wed, 17 Apr 2013 12:17:03 +0000 (-0400) Subject: dev: Fix a bug in the use of seekp/seekg X-Git-Tag: stable_2013_06_16~2^2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=234c9a36a21fae7c0489e2f67b8e0385e61db732;p=gem5.git dev: Fix a bug in the use of seekp/seekg This patch fixes two instances of incorrect use of the seekp/seekg stream member functions. These two functions return a stream reference (*this), and should not be compared to an integer value. --- diff --git a/src/dev/disk_image.cc b/src/dev/disk_image.cc index 84027d9b4..8194eb507 100644 --- a/src/dev/disk_image.cc +++ b/src/dev/disk_image.cc @@ -108,7 +108,8 @@ RawDiskImage::read(uint8_t *data, std::streampos offset) const if (!stream.is_open()) panic("file not open!\n"); - if (stream.seekg(offset * SectorSize, ios::beg) < 0) + stream.seekg(offset * SectorSize, ios::beg); + if (!stream.good()) panic("Could not seek to location in file"); streampos pos = stream.tellg(); @@ -132,7 +133,8 @@ RawDiskImage::write(const uint8_t *data, std::streampos offset) if (!stream.is_open()) panic("file not open!\n"); - if (stream.seekp(offset * SectorSize, ios::beg) < 0) + stream.seekp(offset * SectorSize, ios::beg); + if (!stream.good()) panic("Could not seek to location in file"); DPRINTF(DiskImageWrite, "write: offset=%d\n", (uint64_t)offset);