aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pdf
diff options
context:
space:
mode:
Diffstat (limited to 'src/pdf')
-rw-r--r--src/pdf/SkPDFCatalog.cpp8
-rw-r--r--src/pdf/SkPDFTypes.cpp22
2 files changed, 28 insertions, 2 deletions
diff --git a/src/pdf/SkPDFCatalog.cpp b/src/pdf/SkPDFCatalog.cpp
index dd3cd7eab6..1349da1317 100644
--- a/src/pdf/SkPDFCatalog.cpp
+++ b/src/pdf/SkPDFCatalog.cpp
@@ -18,6 +18,14 @@
#include "SkPDFTypes.h"
#include "SkStream.h"
+SkPDFCatalog::SkPDFCatalog()
+ : fNextObjNum(1),
+ fStartedAssigningObjNums(false),
+ fAssigningFirstPageObjNums(false) {
+}
+
+SkPDFCatalog::~SkPDFCatalog() {}
+
void SkPDFCatalog::addObject(SkPDFObject* obj, bool onFirstPage) {
SkASSERT(findObjectIndex(obj) == -1);
SkASSERT(!fStartedAssigningObjNums);
diff --git a/src/pdf/SkPDFTypes.cpp b/src/pdf/SkPDFTypes.cpp
index 83f133eda2..f5f23ca709 100644
--- a/src/pdf/SkPDFTypes.cpp
+++ b/src/pdf/SkPDFTypes.cpp
@@ -18,6 +18,9 @@
#include "SkPDFTypes.h"
#include "SkStream.h"
+SkPDFObject::SkPDFObject() {}
+SkPDFObject::~SkPDFObject() {}
+
size_t SkPDFObject::getOutputSize(SkPDFCatalog* catalog, bool indirect) {
SkDynamicMemoryWStream buffer;
emitObject(&buffer, catalog, indirect);
@@ -31,6 +34,9 @@ void SkPDFObject::emitIndirectObject(SkWStream* stream, SkPDFCatalog* catalog) {
stream->writeText("\nendobj\n");
}
+SkPDFObjRef::SkPDFObjRef(SkPDFObject* obj) : fObj(obj) {}
+SkPDFObjRef::~SkPDFObjRef() {}
+
size_t SkPDFObject::getIndirectOutputSize(SkPDFCatalog* catalog) {
return catalog->getObjectNumberSize(this) + strlen(" obj\n") +
this->getOutputSize(catalog, false) + strlen("\nendobj\n");
@@ -48,6 +54,9 @@ size_t SkPDFObjRef::getOutputSize(SkPDFCatalog* catalog, bool indirect) {
return catalog->getObjectNumberSize(fObj.get()) + strlen(" R");
}
+SkPDFInt::SkPDFInt(int32_t value) : fValue(value) {}
+SkPDFInt::~SkPDFInt() {}
+
void SkPDFInt::emitObject(SkWStream* stream, SkPDFCatalog* catalog,
bool indirect) {
if (indirect)
@@ -55,6 +64,9 @@ void SkPDFInt::emitObject(SkWStream* stream, SkPDFCatalog* catalog,
stream->writeDecAsText(fValue);
}
+SkPDFScalar::SkPDFScalar(SkScalar value) : fValue(value) {}
+SkPDFScalar::~SkPDFScalar() {}
+
void SkPDFScalar::emitObject(SkWStream* stream, SkPDFCatalog* catalog,
bool indirect) {
if (indirect)
@@ -70,6 +82,8 @@ SkPDFString::SkPDFString(const SkString& value)
: fValue(formatString(value)) {
}
+SkPDFString::~SkPDFString() {}
+
void SkPDFString::emitObject(SkWStream* stream, SkPDFCatalog* catalog,
bool indirect) {
if (indirect)
@@ -90,7 +104,7 @@ SkString SkPDFString::formatString(const SkString& input) {
// a 7-bit clean string should require little escaping.
bool sevenBitClean = true;
for (size_t i = 0; i < input.size(); i++) {
- if (input[i] > 0x7F || input[i] < ' ') {
+ if (input[i] & 0x80 || input[i] < ' ') {
sevenBitClean = false;
break;
}
@@ -117,6 +131,7 @@ SkString SkPDFString::formatString(const SkString& input) {
SkPDFName::SkPDFName(const char name[]) : fValue(formatName(SkString(name))) {}
SkPDFName::SkPDFName(const SkString& name) : fValue(formatName(name)) {}
+SkPDFName::~SkPDFName() {}
void SkPDFName::emitObject(SkWStream* stream, SkPDFCatalog* catalog,
bool indirect) {
@@ -129,12 +144,13 @@ size_t SkPDFName::getOutputSize(SkPDFCatalog* catalog, bool indirect) {
return fValue.size();
}
+// static
SkString SkPDFName::formatName(const SkString& input) {
SkASSERT(input.size() <= kMaxLen);
SkString result("/");
for (size_t i = 0; i < input.size(); i++) {
- if (input[i] > 0x7F || input[i] < '!' || input[i] == '#') {
+ if (input[i] & 0x80 || input[i] < '!' || input[i] == '#') {
result.append("#");
result.appendHex(input[i], 2);
} else {
@@ -145,6 +161,7 @@ SkString SkPDFName::formatName(const SkString& input) {
return result;
}
+SkPDFArray::SkPDFArray() {}
SkPDFArray::~SkPDFArray() {
fValue.safeUnrefAll();
}
@@ -193,6 +210,7 @@ void SkPDFArray::append(SkPDFObject* value) {
fValue.push(value);
}
+SkPDFDict::SkPDFDict() {}
SkPDFDict::~SkPDFDict() {
for (int i = 0; i < fValue.count(); i++) {
SkSafeUnref(fValue[i].key);