Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Side by Side Diff: src/core/SkStream.cpp

Issue 2339273002: SkFontData to use smart pointers. (Closed)
Patch Set: Add trivial bodies to the trivial implementations. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/core/SkFontMgr.cpp ('k') | src/core/SkTypeface.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2006 The Android Open Source Project 2 * Copyright 2006 The Android Open Source Project
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 8
9 #include "SkStream.h" 9 #include "SkStream.h"
10 #include "SkStreamPriv.h" 10 #include "SkStreamPriv.h"
11 #include "SkData.h" 11 #include "SkData.h"
12 #include "SkFixed.h" 12 #include "SkFixed.h"
13 #include "SkMakeUnique.h"
13 #include "SkString.h" 14 #include "SkString.h"
14 #include "SkOSFile.h" 15 #include "SkOSFile.h"
15 #include "SkTypes.h" 16 #include "SkTypes.h"
16 17
17 /////////////////////////////////////////////////////////////////////////////// 18 ///////////////////////////////////////////////////////////////////////////////
18 19
19 20
20 int8_t SkStream::readS8() { 21 int8_t SkStream::readS8() {
21 int8_t value; 22 int8_t value;
22 SkDEBUGCODE(size_t len =) this->read(&value, 1); 23 SkDEBUGCODE(size_t len =) this->read(&value, 1);
(...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after
847 FILE* file = sk_fopen(path, kRead_SkFILE_Flag); 848 FILE* file = sk_fopen(path, kRead_SkFILE_Flag);
848 if (nullptr == file) { 849 if (nullptr == file) {
849 return nullptr; 850 return nullptr;
850 } 851 }
851 852
852 auto data = SkData::MakeFromFILE(file); 853 auto data = SkData::MakeFromFILE(file);
853 sk_fclose(file); 854 sk_fclose(file);
854 return data; 855 return data;
855 } 856 }
856 857
857 SkStreamAsset* SkStream::NewFromFile(const char path[]) { 858 std::unique_ptr<SkStreamAsset> SkStream::MakeFromFile(const char path[]) {
858 auto data(mmap_filename(path)); 859 auto data(mmap_filename(path));
859 if (data) { 860 if (data) {
860 return new SkMemoryStream(std::move(data)); 861 return skstd::make_unique<SkMemoryStream>(std::move(data));
861 } 862 }
862 863
863 // If we get here, then our attempt at using mmap failed, so try normal 864 // If we get here, then our attempt at using mmap failed, so try normal file access.
864 // file access. 865 auto stream = skstd::make_unique<SkFILEStream>(path);
865 SkFILEStream* stream = new SkFILEStream(path);
866 if (!stream->isValid()) { 866 if (!stream->isValid()) {
867 delete stream; 867 return nullptr;
868 stream = nullptr;
869 } 868 }
870 return stream; 869 return std::move(stream);
871 } 870 }
872 871
873 // Declared in SkStreamPriv.h: 872 // Declared in SkStreamPriv.h:
874 sk_sp<SkData> SkCopyStreamToData(SkStream* stream) { 873 sk_sp<SkData> SkCopyStreamToData(SkStream* stream) {
875 SkASSERT(stream != nullptr); 874 SkASSERT(stream != nullptr);
876 875
877 if (stream->hasLength()) { 876 if (stream->hasLength()) {
878 return SkData::MakeFromStream(stream, stream->getLength()); 877 return SkData::MakeFromStream(stream, stream->getLength());
879 } 878 }
880 879
(...skipping 21 matching lines...) Expand all
902 while (true) { 901 while (true) {
903 count = input->read(scratch, sizeof(scratch)); 902 count = input->read(scratch, sizeof(scratch));
904 if (0 == count) { 903 if (0 == count) {
905 return true; 904 return true;
906 } 905 }
907 if (!out->write(scratch, count)) { 906 if (!out->write(scratch, count)) {
908 return false; 907 return false;
909 } 908 }
910 } 909 }
911 } 910 }
OLDNEW
« no previous file with comments | « src/core/SkFontMgr.cpp ('k') | src/core/SkTypeface.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698