aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkStream.cpp
Commit message (Collapse)AuthorAge
* SkBlockMemoryStream implements peek()Gravatar halcanary2015-05-21
| | | | Review URL: https://codereview.chromium.org/1146903004
* Add a method to read a stream without advancing it.Gravatar scroggo2015-04-02
| | | | | | | | | | | | | | | | | | | | | 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
* C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla}Gravatar mtklein2015-03-25
| | | | | | | | | NOPRESUBMIT=true BUG=skia: DOCS_PREVIEW= https://skia.org/?cl=1037793002 Review URL: https://codereview.chromium.org/1037793002
* SkStream: Add SkDynamicMemoryWStream::writeToStream(SkWStream*)Gravatar halcanary2015-02-23
| | | | Review URL: https://codereview.chromium.org/943423002
* Make SkStream *not* ref counted.Gravatar scroggo2015-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix up all the easy virtual ... SK_OVERRIDE cases.Gravatar mtklein2015-01-09
| | | | | | | | | | | | 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
* for X in {Dec,BigDec,Scalar}, SkWStream::write"X"AsText no longer mallocsGravatar halcanary2014-11-07
| | | | Review URL: https://codereview.chromium.org/706063002
* use SkData::NewUninitializedGravatar reed2014-09-12
| | | | | | | | | BUG=skia: R=bungeman@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/565803005
* remove confusing/unused stream methodsGravatar reed2014-09-12
| | | | | | | | | BUG=skia: R=bungeman@google.com, djsollen@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/563273003
* SkData can allocate room for its contents in the same blockGravatar reed2014-09-11
| | | | | | | | | BUG=skia: R=bungeman@google.com, mtklein@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/560653004
* "NULL !=" = NULLGravatar bsalomon2014-09-05
| | | | | | | | R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/544233002
* Move SkPDFStream back to SkStream to save memory.Gravatar halcanary2014-07-14
| | | | | | | | | | | | | | | SkPDFStream stores data as a SkStreamRewindable to minimize deep duplication and memory overhead. SkStreamToStreamRewindable function to deal with fact that SkTypeface returns a SkStream. BUG=skia:2743 R=djsollen@google.com, mtklein@google.com, bungeman@google.com, reed@google.com Author: halcanary@google.com Review URL: https://codereview.chromium.org/387863005
* Switch SkPDFStream's internal storage from SkStream to SkDataGravatar halcanary2014-06-27
| | | | | | | | | | | | | | | | | | | Motivation: This makes SkPDFStream thread-safe for two threads serializing it at once, since a SkStream has an internal position. Updated SkPDFFont, SkPDFGraphicState, and SkPDFPage's use of SkPDFStream to use the SkData constructor rather than the SkStream constructor (saving a memcpy). BUG=skia:2683 Committed: https://skia.googlesource.com/skia/+/c1dfa14b645ae274780f026dd86c9b633fbdad06 R=mtklein@google.com, djsollen@google.com, rmistry@google.com, robertphillips@google.com Author: halcanary@google.com Review URL: https://codereview.chromium.org/340783013
* fix size_t/int warningsGravatar commit-bot@chromium.org2014-04-23
| | | | | | | | | | | BUG=skia: R=mtklein@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/247753003 git-svn-id: http://skia.googlecode.com/svn/trunk@14332 2bbb7eff-a529-9590-31e7-b0007b416f81
* Actually, we wrote only size bytes.Gravatar commit-bot@chromium.org2014-03-06
| | | | | | | | | | | BUG=skia: R=halcanary@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/188343004 git-svn-id: http://skia.googlecode.com/svn/trunk@13688 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add size_t bytesWritten() const to SkWStream.Gravatar commit-bot@chromium.org2014-03-06
| | | | | | | | | | | BUG=skia: R=reed@google.com, mtklein@google.com, robertphillips@google.com, bungeman@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/187653003 git-svn-id: http://skia.googlecode.com/svn/trunk@13684 2bbb7eff-a529-9590-31e7-b0007b416f81
* This CL is motivated by the desire to make the skpinfo tool work a bit ↵Gravatar commit-bot@chromium.org2014-03-05
| | | | | | | | | | | | better. The main concern is that the assumptions made w.r.t. written bytes may not be valid for all SkWStream sub-classes. R=bungeman@gmail.com, bungeman@google.com, reed@google.com, mtklein@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/182733008 git-svn-id: http://skia.googlecode.com/svn/trunk@13673 2bbb7eff-a529-9590-31e7-b0007b416f81
* Prevent SkBlockMemoryStream::skip from writing to low memory.Gravatar bungeman@google.com2014-03-05
| | | | | | | | | | | | | | SkBlockMemoryStream::read was modeled on SkDynamicMemoryWStream::read. However, SkDynamicMemoryWStream::read does not allow passing a NULL buffer and SkBlockMemoryStream::read must correctly handle this case for skips. In the current code, if a 'skip' crosses a block boundary, 'read' may attempt to write to low memory. R=robertphillips@google.com Review URL: https://codereview.chromium.org/187683003 git-svn-id: http://skia.googlecode.com/svn/trunk@13671 2bbb7eff-a529-9590-31e7-b0007b416f81
* DM: read image files without an extra copyGravatar commit-bot@chromium.org2014-03-05
| | | | | | | | | | | BUG=skia: R=halcanary@google.com, reed@google.com, bsalomon@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/185263012 git-svn-id: http://skia.googlecode.com/svn/trunk@13669 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix compilation with SK_ENABLE_INST_COUNT=1Gravatar commit-bot@chromium.org2013-12-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add INHERITED declarations to class declarations that prevent compilation with the flag. Remove SK_DEFINE_INST_COUNT from all class implementations. Instead, use function-local static variables in the reference count helper classes to create the global instances to store the needed info. The accessor functions are defined inline in the helper classes, so definitions are not needed. The initialization point of the variables should be as well defined as previously. Remove SK_DECLARE_INST_COUNT_TEMPLATE and use SK_DECLARE_INST_COUNT instead. This avoids possible future compilation errors further. For SK_ENABLE_INST_COUNT=0 compilation, add an empty static member function to all classes that use SK_DECLARE_INST_COUNT and SK_DECLARE_INST_COUNT_ROOT macros. The function ensures that classes contain public INHERITED typedef. This member function seems to be compiled away. This shouĺd ensure that part of the compilation errors are caught earlier. Also adds DSK_DECLARE_INST_COUNT to few SkPDFDict subclasses. R=robertphillips@google.com, richardlin@chromium.org, bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/98703002 git-svn-id: http://skia.googlecode.com/svn/trunk@12501 2bbb7eff-a529-9590-31e7-b0007b416f81
* SkMemoryStream::setData should also set the current offset to 0.Gravatar bungeman@google.com2013-11-18
| | | | | | | | R=scroggo@google.com Review URL: https://codereview.chromium.org/73273004 git-svn-id: http://skia.googlecode.com/svn/trunk@12308 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add a detachAsStream to SkDynamicMemoryWStream.Gravatar bungeman@google.com2013-07-19
| | | | | | | | | | | | R=reed@google.com Committed: https://code.google.com/p/skia/source/detail?r=10171 Committed: https://code.google.com/p/skia/source/detail?r=10178 Review URL: https://codereview.chromium.org/19677002 git-svn-id: http://skia.googlecode.com/svn/trunk@10218 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add a detachAsStream to SkDynamicMemoryWStream.Gravatar bungeman@google.com2013-07-19
| | | | | | | | | | R=reed@google.com Committed: https://code.google.com/p/skia/source/detail?r=10171 Review URL: https://codereview.chromium.org/19677002 git-svn-id: http://skia.googlecode.com/svn/trunk@10178 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert r10171 due to test failure in StreamTestGravatar robertphillips@google.com2013-07-18
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@10172 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add a detachAsStream to SkDynamicMemoryWStream.Gravatar bungeman@google.com2013-07-18
| | | | | | | | R=reed@google.com Review URL: https://codereview.chromium.org/19677002 git-svn-id: http://skia.googlecode.com/svn/trunk@10171 2bbb7eff-a529-9590-31e7-b0007b416f81
* Change SkStream.Gravatar bungeman@google.com2013-05-29
| | | | | | | https://codereview.chromium.org/15298009/ git-svn-id: http://skia.googlecode.com/svn/trunk@9312 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move MMap to SkData.Gravatar commit-bot@chromium.org2013-04-24
| | | | | | | | | | R=reed@google.com Author: bungeman@google.com Review URL: https://chromiumcodereview.appspot.com/14336003 git-svn-id: http://skia.googlecode.com/svn/trunk@8848 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Skia_Periodic_House_KeepingGravatar skia.committer@gmail.com2013-03-19
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@8211 2bbb7eff-a529-9590-31e7-b0007b416f81
* update coding styleGravatar mike@reedtribe.org2013-03-19
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@8209 2bbb7eff-a529-9590-31e7-b0007b416f81
* reland 8200 w/ fix for android (use fullpath instead of path)Gravatar reed@google.com2013-03-18
| | | | | | Review URL: https://codereview.chromium.org/12921003 git-svn-id: http://skia.googlecode.com/svn/trunk@8206 2bbb7eff-a529-9590-31e7-b0007b416f81
* revert 8204 -- what is happening???Gravatar reed@google.com2013-03-18
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@8205 2bbb7eff-a529-9590-31e7-b0007b416f81
* reland 8200 w/ fix for android (need fullpath instead of path)Gravatar reed@google.com2013-03-18
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@8204 2bbb7eff-a529-9590-31e7-b0007b416f81
* revert 8200 to figure out android breakGravatar reed@google.com2013-03-18
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@8201 2bbb7eff-a529-9590-31e7-b0007b416f81
* move SK_MMAP_SUPPORT into SkPreConfig, so we can know about its availabilityGravatar reed@google.com2013-03-18
| | | | | | | | | | | throughout the code. Add SkData::NewFromMMap() help factory. Refactor (now gone) SkMMapStream into SkStream::NewFromFile() factory Review URL: https://codereview.chromium.org/12919013 git-svn-id: http://skia.googlecode.com/svn/trunk@8200 2bbb7eff-a529-9590-31e7-b0007b416f81
* Runtime configuration system for skia. This will allow developers to ↵Gravatar humper@google.com2013-01-14
| | | | | | | | control settings at launch time without relying on compile-time flags or recompilation. It can be used to turn features on and off, as well as to control numeric quantities to 'tune' algorithms. Once I make sure it's working across all platforms I'll send out a quick tutorial on its use. Review URL: https://codereview.appspot.com/7098051 git-svn-id: http://skia.googlecode.com/svn/trunk@7158 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix uninitialized memory issueGravatar robertphillips@google.com2013-01-14
| | | | | | | | https://codereview.appspot.com/7085055/ git-svn-id: http://skia.googlecode.com/svn/trunk@7156 2bbb7eff-a529-9590-31e7-b0007b416f81
* Ensure that SkMemoryStream does not crash dereferencing fData.Gravatar scroggo@google.com2013-01-09
| | | | | | | | | | | | SkMemoryStream attempts to dereference fData in multiple places. Instead of allowing it to be NULL, resulting in a crash, set it to SkData::NewEmpty(). Add a test for SkStream that will crash when its SkData is set to NULL. Review URL: https://codereview.appspot.com/7061059 git-svn-id: http://skia.googlecode.com/svn/trunk@7111 2bbb7eff-a529-9590-31e7-b0007b416f81
* Show the paint's typeface information in the details pane of the debugger.Gravatar humper@google.com2013-01-07
| | | | | | | | Also add a convenience constructor for SkMemoryStream that takes the SkData directly (instead of having to construct an empty one and call setData). Review URL: https://codereview.appspot.com/7065045 git-svn-id: http://skia.googlecode.com/svn/trunk@7048 2bbb7eff-a529-9590-31e7-b0007b416f81
* Result of running tools/sanitize_source_files.py (which was added in ↵Gravatar rmistry@google.com2012-08-23
| | | | | | | | | https://codereview.appspot.com/6465078/) This CL is part I of IV (I broke down the 1280 files into 4 CLs). Review URL: https://codereview.appspot.com/6485054 git-svn-id: http://skia.googlecode.com/svn/trunk@5262 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix typeGravatar reed@google.com2012-07-02
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4428 2bbb7eff-a529-9590-31e7-b0007b416f81
* add read/write SkData methodsGravatar reed@google.com2012-07-02
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4427 2bbb7eff-a529-9590-31e7-b0007b416f81
* stick SkInstCnt in more classes, to help track down leaksGravatar reed@google.com2012-06-26
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4341 2bbb7eff-a529-9590-31e7-b0007b416f81
* Expanded distribution of instance countingGravatar robertphillips@google.com2012-06-21
| | | | | | | | http://codereview.appspot.com/6300114/ git-svn-id: http://skia.googlecode.com/svn/trunk@4291 2bbb7eff-a529-9590-31e7-b0007b416f81
* add tests for read/writePackedUInt, and fix a bug there.Gravatar reed@google.com2011-10-18
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2482 2bbb7eff-a529-9590-31e7-b0007b416f81
* Automatic update of all copyright notices to reflect new license terms.Gravatar epoger@google.com2011-07-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I have manually examined all of these diffs and restored a few files that seem to require manual adjustment. The following files still need to be modified manually, in a separate CL: android_sample/SampleApp/AndroidManifest.xml android_sample/SampleApp/res/layout/layout.xml android_sample/SampleApp/res/menu/sample.xml android_sample/SampleApp/res/values/strings.xml android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java experimental/CiCarbonSampleMain.c experimental/CocoaDebugger/main.m experimental/FileReaderApp/main.m experimental/SimpleCocoaApp/main.m experimental/iOSSampleApp/Shared/SkAlertPrompt.h experimental/iOSSampleApp/Shared/SkAlertPrompt.m experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig gpu/src/android/GrGLDefaultInterface_android.cpp gyp/common.gypi gyp_skia include/ports/SkHarfBuzzFont.h include/views/SkOSWindow_wxwidgets.h make.bat make.py src/opts/memset.arm.S src/opts/memset16_neon.S src/opts/memset32_neon.S src/opts/opts_check_arm.cpp src/ports/SkDebug_brew.cpp src/ports/SkMemory_brew.cpp src/ports/SkOSFile_brew.cpp src/ports/SkXMLParser_empty.cpp src/utils/ios/SkImageDecoder_iOS.mm src/utils/ios/SkOSFile_iOS.mm src/utils/ios/SkStream_NSData.mm tests/FillPathTest.cpp Review URL: http://codereview.appspot.com/4816058 git-svn-id: http://skia.googlecode.com/svn/trunk@1982 2bbb7eff-a529-9590-31e7-b0007b416f81
* move common code into shared helper functionGravatar reed@google.com2011-06-24
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@1718 2bbb7eff-a529-9590-31e7-b0007b416f81
* replace detach/getStream apis on dynamicwstream with SkDataGravatar reed@google.com2011-06-24
| | | | | | | | http://codereview.appspot.com/4657046/ git-svn-id: http://skia.googlecode.com/svn/trunk@1714 2bbb7eff-a529-9590-31e7-b0007b416f81
* rename public SkDataRef to SkDataGravatar reed@google.com2011-06-24
| | | | | | | | rename animator's internal SkData to SkDataInput git-svn-id: http://skia.googlecode.com/svn/trunk@1697 2bbb7eff-a529-9590-31e7-b0007b416f81
* add copyToData() to dyanamicwstreamGravatar reed@google.com2011-06-23
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@1695 2bbb7eff-a529-9590-31e7-b0007b416f81
* merge from android tree:Gravatar djsollen@google.com2011-02-23
| | | | | | | | | | | | | - optional parameters added to descriptorProc and allocPixels - clip options to image decoders - check for xfermode in blitter_a8 - UNROLL loops in blitrow reviewed by reed@google.com git-svn-id: http://skia.googlecode.com/svn/trunk@841 2bbb7eff-a529-9590-31e7-b0007b416f81