diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-06-26 20:47:20 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-06-26 20:47:20 +0000 |
commit | fe686a0ef53ccf34d2ec4fc643c883e9fbe6141b (patch) | |
tree | 3edfe6af2197e01fdb80506d80e8e9150a743c75 | |
parent | cf228f9c23f69d71d7ab40e18026a1fc0186e6c3 (diff) | |
parent | e755ff3d80b9436d1c10ca1b88ed5a5eb3f9e03f (diff) | |
download | skia-oreo-release.tar.gz |
Merge cherrypicks of [2461233, 2461302, 2461279, 2461176, 2461341, 2461280, 2461290, 2461342, 2461291, 2461216, 2461217, 2461304, 2461306, 2461381, 2461307, 2461234, 2461195, 2461308, 2461362, 2461235, 2461218, 2461363, 2461323, 2461382, 2461345] into oc-releaseandroid-cts-8.0_r9android-cts-8.0_r8android-cts-8.0_r7android-cts-8.0_r6android-cts-8.0_r5android-cts-8.0_r4android-cts-8.0_r3android-cts-8.0_r26android-cts-8.0_r25android-cts-8.0_r24android-cts-8.0_r23android-cts-8.0_r22android-cts-8.0_r21android-cts-8.0_r20android-cts-8.0_r2android-cts-8.0_r19android-cts-8.0_r18android-cts-8.0_r17android-cts-8.0_r16android-cts-8.0_r15android-cts-8.0_r14android-cts-8.0_r13android-cts-8.0_r12android-cts-8.0_r11android-cts-8.0_r10android-cts-8.0_r1android-8.0.0_r9android-8.0.0_r7android-8.0.0_r4android-8.0.0_r32android-8.0.0_r31android-8.0.0_r30android-8.0.0_r3android-8.0.0_r29android-8.0.0_r28android-8.0.0_r2android-8.0.0_r17android-8.0.0_r16android-8.0.0_r15android-8.0.0_r13android-8.0.0_r12android-8.0.0_r11android-8.0.0_r10android-8.0.0_r1oreo-releaseoreo-r6-releaseoreo-r3-releaseoreo-r2-releaseoreo-cts-release
Change-Id: I742af6b7f49c6f1a7111a07c305da76336a21feb
-rw-r--r-- | src/ports/SkOSFile_posix.cpp | 19 | ||||
-rw-r--r-- | src/ports/SkOSFile_stdio.cpp | 18 | ||||
-rw-r--r-- | src/ports/SkOSFile_win.cpp | 21 |
3 files changed, 18 insertions, 40 deletions
diff --git a/src/ports/SkOSFile_posix.cpp b/src/ports/SkOSFile_posix.cpp index 40028246ff..48b5b95ad3 100644 --- a/src/ports/SkOSFile_posix.cpp +++ b/src/ports/SkOSFile_posix.cpp @@ -19,25 +19,6 @@ #include <sys/types.h> #include <unistd.h> -size_t sk_fgetsize(FILE* f) { - int fd = fileno(f); - if (fd < 0) { - return 0; - } - - struct stat status; - if (0 != fstat(fd, &status)) { - return 0; - } - if (!S_ISREG(status.st_mode)) { - return 0; - } - if (!SkTFitsIn<size_t>(status.st_size)) { - return 0; - } - return static_cast<size_t>(status.st_size); -} - bool sk_exists(const char *path, SkFILE_Flags flags) { int mode = F_OK; if (flags & kRead_SkFILE_Flag) { diff --git a/src/ports/SkOSFile_stdio.cpp b/src/ports/SkOSFile_stdio.cpp index e79d87fc89..68c2d3d4d7 100644 --- a/src/ports/SkOSFile_stdio.cpp +++ b/src/ports/SkOSFile_stdio.cpp @@ -87,6 +87,24 @@ FILE* sk_fopen(const char path[], SkFILE_Flags flags) { return file; } +size_t sk_fgetsize(FILE* f) { + SkASSERT(f); + + long curr = ftell(f); // remember where we are + if (curr < 0) { + return 0; + } + + fseek(f, 0, SEEK_END); // go to the end + long size = ftell(f); // record the size + if (size < 0) { + size = 0; + } + + fseek(f, curr, SEEK_SET); // go back to our prev location + return size; +} + size_t sk_fwrite(const void* buffer, size_t byteCount, FILE* f) { SkASSERT(f); return fwrite(buffer, 1, byteCount, f); diff --git a/src/ports/SkOSFile_win.cpp b/src/ports/SkOSFile_win.cpp index e66bcb89c0..7e194cf287 100644 --- a/src/ports/SkOSFile_win.cpp +++ b/src/ports/SkOSFile_win.cpp @@ -17,27 +17,6 @@ #include <stdio.h> #include <sys/stat.h> -size_t sk_fgetsize(FILE* f) { - int fileno = sk_fileno(f); - if (fileno < 0) { - return 0; - } - - HANDLE file = (HANDLE)_get_osfhandle(fileno); - if (INVALID_HANDLE_VALUE == file) { - return 0; - } - - LARGE_INTEGER fileSize; - if (0 == GetFileSizeEx(file, &fileSize)) { - return 0; - } - if (!SkTFitsIn<size_t>(fileSize.QuadPart)) { - return 0; - } - return static_cast<size_t>(fileSize.QuadPart); -} - bool sk_exists(const char *path, SkFILE_Flags flags) { int mode = 0; // existence if (flags & kRead_SkFILE_Flag) { |