diff options
author | zhitingzhu <zhitingzhu@google.com> | 2015-08-13 16:17:26 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-13 23:18:01 +0000 |
commit | 4b30ffe83c342e62be5682a1d96576367802511f (patch) | |
tree | afcbd6d6a16385ff620ddb555918c973bdd862ee /native_client_sdk | |
parent | 9924b74c852f1b3540d64b954bc1579632b365fe (diff) | |
download | chromium_src-4b30ffe83c342e62be5682a1d96576367802511f.zip chromium_src-4b30ffe83c342e62be5682a1d96576367802511f.tar.gz chromium_src-4b30ffe83c342e62be5682a1d96576367802511f.tar.bz2 |
[NaCl SDK] nacl_io: Make the default directory size returned by stat to be 4096
Review URL: https://codereview.chromium.org/1293543006
Cr-Commit-Position: refs/heads/master@{#343298}
Diffstat (limited to 'native_client_sdk')
-rw-r--r-- | native_client_sdk/src/libraries/nacl_io/html5fs/html5_fs_node.cc | 9 | ||||
-rw-r--r-- | native_client_sdk/src/tests/nacl_io_test/html5_fs_test.cc | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/native_client_sdk/src/libraries/nacl_io/html5fs/html5_fs_node.cc b/native_client_sdk/src/libraries/nacl_io/html5fs/html5_fs_node.cc index bb3a8f5..76eff01 100644 --- a/native_client_sdk/src/libraries/nacl_io/html5fs/html5_fs_node.cc +++ b/native_client_sdk/src/libraries/nacl_io/html5fs/html5_fs_node.cc @@ -26,6 +26,8 @@ namespace nacl_io { namespace { +const int kEmptyDirSize = 4096; + struct OutputBuffer { void* data; int element_count; @@ -156,6 +158,8 @@ Error Html5FsNode::GetStat(struct stat* stat) { // Fill in known info here. memcpy(stat, &stat_, sizeof(stat_)); + stat->st_size = static_cast<off_t>(info.size); + // Fill in the additional info from ppapi. switch (info.type) { case PP_FILETYPE_REGULAR: @@ -163,12 +167,15 @@ Error Html5FsNode::GetStat(struct stat* stat) { break; case PP_FILETYPE_DIRECTORY: stat->st_mode |= S_IFDIR; + // Hack the directory size + // In Linux, even a empty directory has size 4096 + // info.size is always zero for directories + stat->st_size = kEmptyDirSize; break; case PP_FILETYPE_OTHER: default: break; } - stat->st_size = static_cast<off_t>(info.size); stat->st_atime = info.last_access_time; stat->st_mtime = info.last_modified_time; stat->st_ctime = info.creation_time; diff --git a/native_client_sdk/src/tests/nacl_io_test/html5_fs_test.cc b/native_client_sdk/src/tests/nacl_io_test/html5_fs_test.cc index b5c1aea..fd5db4e 100644 --- a/native_client_sdk/src/tests/nacl_io_test/html5_fs_test.cc +++ b/native_client_sdk/src/tests/nacl_io_test/html5_fs_test.cc @@ -411,7 +411,7 @@ TEST_F(Html5FsTest, GetStat) { EXPECT_EQ(0, node->GetStat(&statbuf)); EXPECT_TRUE(S_ISDIR(statbuf.st_mode)); EXPECT_EQ(S_IRALL | S_IWALL | S_IXALL, statbuf.st_mode & S_MODEBITS); - EXPECT_EQ(0, statbuf.st_size); + EXPECT_EQ(4096, statbuf.st_size); EXPECT_EQ(access_time, statbuf.st_atime); EXPECT_EQ(creation_time, statbuf.st_ctime); EXPECT_EQ(modified_time, statbuf.st_mtime); |