aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pdf/SkPDFStream.cpp
diff options
context:
space:
mode:
authorGravatar vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2010-10-12 23:08:13 +0000
committerGravatar vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2010-10-12 23:08:13 +0000
commitd877fdbb6e64692285c3e6532d88b9458f65b3cd (patch)
treec346892a4d2d014c95acc6729174c779d0bfcd02 /src/pdf/SkPDFStream.cpp
parentf66025d59ab4c8c4439fabf6ad89ddf35a19d1fd (diff)
High level pdf classes and pdf specific interface.
The guts of the implementation will be in SkPDFDevice and below. This is a first implementation of everything above that point. Review URL: http://codereview.appspot.com/2342043 git-svn-id: http://skia.googlecode.com/svn/trunk@602 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/pdf/SkPDFStream.cpp')
-rw-r--r--src/pdf/SkPDFStream.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/pdf/SkPDFStream.cpp b/src/pdf/SkPDFStream.cpp
index a7fbc62521..b880d4a26a 100644
--- a/src/pdf/SkPDFStream.cpp
+++ b/src/pdf/SkPDFStream.cpp
@@ -19,11 +19,9 @@
#include "SkStream.h"
SkPDFStream::SkPDFStream(SkStream* stream) : fData(stream) {
- SkRefPtr<SkPDFName> lenKey = new SkPDFName("Length");
- lenKey->unref(); // SkRefPtr and new both took a reference.
SkRefPtr<SkPDFInt> lenValue = new SkPDFInt(fData->read(NULL, 0));
lenValue->unref(); // SkRefPtr and new both took a reference.
- fDict.insert(lenKey.get(), lenValue.get());
+ fDict.insert("Length", lenValue.get());
}
SkPDFStream::~SkPDFStream() {
@@ -37,7 +35,7 @@ void SkPDFStream::emitObject(SkWStream* stream, SkPDFCatalog* catalog,
fDict.emitObject(stream, catalog, false);
stream->writeText(" stream\n");
stream->write(fData->getMemoryBase(), fData->read(NULL, 0));
- stream->writeText("endstream\n");
+ stream->writeText("endstream");
}
size_t SkPDFStream::getOutputSize(SkPDFCatalog* catalog, bool indirect) {
@@ -45,9 +43,13 @@ size_t SkPDFStream::getOutputSize(SkPDFCatalog* catalog, bool indirect) {
return getIndirectOutputSize(catalog);
return fDict.getOutputSize(catalog, false) +
- strlen(" stream\nendstream\n") + fData->read(NULL, 0);
+ strlen(" stream\nendstream") + fData->read(NULL, 0);
}
void SkPDFStream::insert(SkPDFName* key, SkPDFObject* value) {
fDict.insert(key, value);
}
+
+void SkPDFStream::insert(const char key[], SkPDFObject* value) {
+ fDict.insert(key, value);
+}