History log of /external/skia/src/utils/SkFrontBufferedStream.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
028a4135aa6404ccd3a494813befe6e1a35e5e6c 02-Apr-2015 scroggo <scroggo@google.com> Add a method to read a stream without advancing it.

Add a virtual method on SkStream which will do a "peek" some bytes, so
that those bytes are read, but the next call to read will be
unaffected.

Implement peek for SkMemoryStream, where the implementation is simple
and obvious.

Implement peek on SkFrontBufferedStream.

Add tests.

Motivated by decoding streams which cannot be rewound.

TBR=reed@google.com

BUG=skia:3257

Review URL: https://codereview.chromium.org/1044953002
/external/skia/src/utils/SkFrontBufferedStream.cpp
36352bf5e38f45a70ee4f4fc132a38048d38206d 26-Mar-2015 mtklein <mtklein@chromium.org> C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla}

NOPRESUBMIT=true

BUG=skia:
DOCS_PREVIEW= https://skia.org/?cl=1037793002

Review URL: https://codereview.chromium.org/1037793002
/external/skia/src/utils/SkFrontBufferedStream.cpp
a1193e4b0e34a7e4e1bd33e9708d7341679f8321 21-Jan-2015 scroggo <scroggo@google.com> Make SkStream *not* ref counted.

SkStream is a stateful object, so it does not make sense for it to have
multiple owners. Make SkStream inherit directly from SkNoncopyable.

Update methods which previously called SkStream::ref() (e.g.
SkImageDecoder::buildTileIndex() and SkFrontBufferedStream::Create(),
which required the existing owners to call SkStream::unref()) to take
ownership of their SkStream parameters and delete when done (including
on failure).

Switch all SkAutoTUnref<SkStream>s to SkAutoTDelete<SkStream>s. In some
cases this means heap allocating streams that were previously stack
allocated.

Respect ownership rules of SkTypeface::CreateFromStream() and
SkImageDecoder::buildTileIndex().

Update the comments for exceptional methods which do not affect the
ownership of their SkStream parameters (e.g.
SkPicture::CreateFromStream() and SkTypeface::Deserialize()) to be
explicit about ownership.

Remove test_stream_life, which tested that buildTileIndex() behaved
correctly when SkStream was a ref counted object. The test does not
make sense now that it is not.

In SkPDFStream, remove the SkMemoryStream member. Instead of using it,
create a new SkMemoryStream to pass to fDataStream (which is now an
SkAutoTDelete).

Make other pdf rasterizers behave like SkPDFDocumentToBitmap.

SkPDFDocumentToBitmap delete the SkStream, so do the same in the
following pdf rasterizers:

SkPopplerRasterizePDF
SkNativeRasterizePDF
SkNoRasterizePDF

Requires a change to Android, which currently treats SkStreams as ref
counted objects.

Review URL: https://codereview.chromium.org/849103004
/external/skia/src/utils/SkFrontBufferedStream.cpp
72c9faab45124e08c85f70ca38536914862d947c 09-Jan-2015 mtklein <mtklein@chromium.org> Fix up all the easy virtual ... SK_OVERRIDE cases.

This fixes every case where virtual and SK_OVERRIDE were on the same line,
which should be the bulk of cases. We'll have to manually clean up the rest
over time unless I level up in regexes.

for f in (find . -type f); perl -p -i -e 's/virtual (.*)SK_OVERRIDE/\1SK_OVERRIDE/g' $f; end

BUG=skia:

Review URL: https://codereview.chromium.org/806653007
/external/skia/src/utils/SkFrontBufferedStream.cpp
dd5a1e094c19fa10202c37c50a1f799e5af5dac0 21-Oct-2014 scroggo <scroggo@google.com> Check SkStream::isAtEnd before attempting to read.

In FrontBufferedStream, when attempting to read and buffer more
data, do not try to read if the underlying stream is at the end.

Prevents a bug where we continue trying to read a stream that
has nothing more to read.

Review URL: https://codereview.chromium.org/665303002
/external/skia/src/utils/SkFrontBufferedStream.cpp
1f66e4539177297545270ff3cbd1d8fa6c3481ac 21-Oct-2014 mtklein <mtklein@chromium.org> Add an assert that we still have a buffer to readFromBuffer().

sk_free(fBuffer.detach()) means fBuffer will be left as NULL, not a zero-length malloc.

BUG=skia:

Review URL: https://codereview.chromium.org/669813002
/external/skia/src/utils/SkFrontBufferedStream.cpp
74b88b70b8f78e09d223e3f8357e18e6043fa3aa 10-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow buffered stream to work with an offset.

If the stream being buffered is buffered from somewhere other than
the start, the SkFrontBufferedStream needs to take that into account
when reporting its length.

R=djsollen@google.com, bungeman@google.com, reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/157103002

git-svn-id: http://skia.googlecode.com/svn/trunk@13388 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/utils/SkFrontBufferedStream.cpp
09a5383adc59c3798f6f6e851f46320393b6c4b8 12-Nov-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Hide implementation details: SkFrontBufferedStream

R=reed@google.com

Review URL: https://codereview.chromium.org/25581002

git-svn-id: http://skia.googlecode.com/svn/trunk@12256 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/utils/SkFrontBufferedStream.cpp
fd67f2f0a394b4a795f1a0f64c5b1233938839a9 26-Sep-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix a warning.

git-svn-id: http://skia.googlecode.com/svn/trunk@11489 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/utils/SkFrontBufferedStream.cpp
83fd2c7c43fea7ea49adc68681e9ed3ed180d568 26-Sep-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a buffered SkStream class.

This is used by Android to buffer an input stream which may not
otherwise be able to rewind.

Add a test for the new class.

R=bungeman@google.com, mtklein@google.com, reed@google.com

Review URL: https://codereview.chromium.org/23717055

git-svn-id: http://skia.googlecode.com/svn/trunk@11488 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/utils/SkFrontBufferedStream.cpp