[Filesystem] Support for 2GB+ files added 37/137937/1
authorPiotr Kosko <p.kosko@samsung.com>
Mon, 10 Jul 2017 09:46:02 +0000 (11:46 +0200)
committerPiotr Kosko <p.kosko@samsung.com>
Mon, 10 Jul 2017 09:47:23 +0000 (11:47 +0200)
[Feature] Plugins are build with '-D_FILE_OFFSET_BITS=64' flag to
  support files larger that 2GB.

[Verification] Code compiles without errors.
  TCT passrate 100%.
  Checked in console with code:
// bigfiletest contains 4GB file
 tizen.filesystem.resolve(
   'images/bigfiletest',
   function(dir) {
     function onsuccess(files) {
       for (var i = 0; i < files.length; i++) {
         console.log(files[i].name + "  size: "  + files[i].fileSize );
       }
     }
     dir.listFiles(onsuccess);
   }, function(e) {
     console.log("Error: " + e.message);
   }, "r"
 );
/// result
// BIG.txt  size: 4294967296

Change-Id: I21513b533eeee0294267888d416ec3d0a85c91bf
Signed-off-by: Piotr Kosko <p.kosko@samsung.com>
src/filesystem/filesystem.gyp
src/filesystem/filesystem_stat.h

index 0ab915203697c7dcde8d9e7184d22ed6c5e35444..9a3c7379a4fb4c18dfdf06eaf9a4e754737677a8 100644 (file)
@@ -30,6 +30,9 @@
         'filesystem_utils.cc',
         'filesystem_utils.h',
       ],
+      'cflags': [
+        '-D_FILE_OFFSET_BITS=64',
+      ],
       'conditions': [
         [ 'tizen == 1', {
             'variables': { 'packages': [
index 87e7e47818d3324852ef2146fa2c34699dd4d8df..a984ab1dbaa49cedd0452c6bef5c2572d8f5e44a 100755 (executable)
@@ -39,7 +39,12 @@ class FilesystemStat {
   bool readOnly;
   std::time_t ctime;
   std::time_t mtime;
-  size_t size;
+
+#ifndef __USE_FILE_OFFSET64
+  __off_t size;
+#else
+  __off64_t size;
+#endif
   size_t nlink;
 
   picojson::value toJSON() const;