ソースを参照

Compare filesize directly to the numeric max of size_t

suzker 9 年 前
コミット
ef0a2e601f
1 ファイル変更1 行追加2 行削除
  1. 1 2
      src/AbstractDiskWriter.cc

+ 1 - 2
src/AbstractDiskWriter.cc

@@ -373,8 +373,7 @@ void AbstractDiskWriter::ensureMmapWrite(size_t len, int64_t offset)
         return;
       }
 
-      uint32_t filesize_lo = filesize & 0xffffffffu;
-      if (sizeof(off_t) > sizeof(size_t) && (filesize_lo) > 0) {
+      if (static_cast<uint64_t>(std::numeric_limits<size_t>::max()) < static_cast<uint64_t>(filesize)) {
         // filesize could overflow in 32bit OS with 64bit off_t type
         // the filesize will be truncated if provided as a 32bit size_t
         enableMmap_ = false;