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

Side by Side Diff: third_party/WebKit/Source/platform/image-decoders/SegmentReader.h

Issue 2918443003: Remove redundant reading and writing of data about SharedBuffer.
Patch Set: benchmark Created 3 years, 6 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef SegmentReader_h 5 #ifndef SegmentReader_h
6 #define SegmentReader_h 6 #define SegmentReader_h
7 7
8 #include "platform/SharedBuffer.h" 8 #include "platform/SharedBuffer.h"
9 #include "platform/SharedBufferStep.h"
9 #include "platform/wtf/Noncopyable.h" 10 #include "platform/wtf/Noncopyable.h"
10 #include "platform/wtf/PassRefPtr.h" 11 #include "platform/wtf/PassRefPtr.h"
11 #include "platform/wtf/ThreadSafeRefCounted.h" 12 #include "platform/wtf/ThreadSafeRefCounted.h"
12 #include "third_party/skia/include/core/SkData.h" 13 #include "third_party/skia/include/core/SkData.h"
13 #include "third_party/skia/include/core/SkRWBuffer.h" 14 #include "third_party/skia/include/core/SkRWBuffer.h"
14 #include "third_party/skia/include/core/SkRefCnt.h" 15 #include "third_party/skia/include/core/SkRefCnt.h"
15 16
16 namespace blink { 17 namespace blink {
17 18
18 // Interface that looks like SharedBuffer. Used by ImageDecoders to use various 19 // Interface that looks like SharedBuffer. Used by ImageDecoders to use various
(...skipping 11 matching lines...) Expand all
30 : public ThreadSafeRefCounted<SegmentReader> { 31 : public ThreadSafeRefCounted<SegmentReader> {
31 WTF_MAKE_NONCOPYABLE(SegmentReader); 32 WTF_MAKE_NONCOPYABLE(SegmentReader);
32 33
33 public: 34 public:
34 // This version is thread-safe so long as no thread is modifying the 35 // This version is thread-safe so long as no thread is modifying the
35 // underlying SharedBuffer. This class does not modify it, so that would 36 // underlying SharedBuffer. This class does not modify it, so that would
36 // mean modifying it in another way. 37 // mean modifying it in another way.
37 static PassRefPtr<SegmentReader> CreateFromSharedBuffer( 38 static PassRefPtr<SegmentReader> CreateFromSharedBuffer(
38 PassRefPtr<SharedBuffer>); 39 PassRefPtr<SharedBuffer>);
39 40
41 static PassRefPtr<SegmentReader> CreateFromSharedBufferStep(
42 PassRefPtr<SharedBufferStep>);
43
40 // These versions use thread-safe input, so they are always thread-safe. 44 // These versions use thread-safe input, so they are always thread-safe.
41 static PassRefPtr<SegmentReader> CreateFromSkData(sk_sp<SkData>); 45 static PassRefPtr<SegmentReader> CreateFromSkData(sk_sp<SkData>);
42 static PassRefPtr<SegmentReader> CreateFromSkROBuffer(sk_sp<SkROBuffer>); 46 static PassRefPtr<SegmentReader> CreateFromSkROBuffer(sk_sp<SkROBuffer>);
43 47
44 SegmentReader() {} 48 SegmentReader() {}
45 virtual ~SegmentReader() {} 49 virtual ~SegmentReader() {}
46 virtual size_t size() const = 0; 50 virtual size_t size() const = 0;
47 virtual size_t GetSomeData(const char*& data, size_t position) const = 0; 51 virtual size_t GetSomeData(const char*& data, size_t position) const = 0;
48 virtual sk_sp<SkData> GetAsSkData() const = 0; 52 virtual sk_sp<SkData> GetAsSkData() const = 0;
49 }; 53 };
50 54
51 } // namespace blink 55 } // namespace blink
52 #endif // SegmentReader_h 56 #endif // SegmentReader_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698