Просмотр исходного кода

KWSys: Avoid stat in CopyFileAlways (#10790)

On Windows 7 the file size reported by 'stat' on a new file sometimes
reports zero even though the real size is correct.  This causes our
CopyFileAlways method to falsely detect copy failure.  Work around the
problem by trusting the state of ofstream after writing the file.
Brad King 15 лет назад
Родитель
Сommit
c15ed3294c
1 измененных файлов с 1 добавлено и 13 удалено
  1. 1 13
      Source/kwsys/SystemTools.cxx

+ 1 - 13
Source/kwsys/SystemTools.cxx

@@ -1924,22 +1924,10 @@ bool SystemTools::CopyFileAlways(const char* source, const char* destination,
   fin.close();
   fout.close();
 
-  // More checks.
-  struct stat statSource, statDestination;
-  statSource.st_size = 12345;
-  statDestination.st_size = 12345;
-  if(stat(source, &statSource) != 0)
-    {
-    return false;
-    }
-  else if(stat(destination, &statDestination) != 0)
+  if(!fout)
     {
     return false;
     }
-  else if(statSource.st_size != statDestination.st_size)
-    {
-   return false;
-    }
   if ( copyPermissions && perms )
     {
     if ( !SystemTools::SetPermissions(destination, perm) )