SkPDF: add drop() virtual to release resources early.
authorhalcanary <halcanary@google.com>
Mon, 21 Mar 2016 17:05:23 +0000 (10:05 -0700)
committerCommit bot <commit-bot@chromium.org>
Mon, 21 Mar 2016 17:05:23 +0000 (10:05 -0700)
commitbae235eb07cdfeb6dd92efa2b2143fa9e91d9d04
tree050cd0a1e4bb6bcc8c57872bccd5efbfae7e8b65
parentf8f90e4a85638faa18e7b4133cfe4d1ff5b1b23e
SkPDF: add drop() virtual to release resources early.

Call drop() after calling emitObject() on top-level objects.  In Debug
mode, assert that each object is emited exactly once by asserting that
emitObject is never called after drop().  Same for addResources().

To make sure that top level objects don't get deleted prematurely,
SkPDFObjNumMap takes a reference.

Motivation: save RAM.  Allow even earlier serialization with later
changes.

Also: Switch some SkTDArrays to SkTArrays.

BUG=skia:5087
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1790023003

Review URL: https://codereview.chromium.org/1790023003
bench/PDFBench.cpp
src/pdf/SkPDFBitmap.cpp
src/pdf/SkPDFDocument.cpp
src/pdf/SkPDFFont.cpp
src/pdf/SkPDFFont.h
src/pdf/SkPDFStream.cpp
src/pdf/SkPDFStream.h
src/pdf/SkPDFTypes.cpp
src/pdf/SkPDFTypes.h