Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Unified Diff: experimental/PdfViewer/pdfparser/native/SkPdfNativeObject.h

Issue 23456022: pdfviewer: (part 1) store the offset of the location of object in file/stream. In order to use the … (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: experimental/PdfViewer/pdfparser/native/SkPdfNativeObject.h
===================================================================
--- experimental/PdfViewer/pdfparser/native/SkPdfNativeObject.h (revision 11100)
+++ experimental/PdfViewer/pdfparser/native/SkPdfNativeObject.h (working copy)
@@ -103,13 +103,27 @@
DataType fDataType;
- // Keep this the last entrys
+ // Keep this the last entries
#ifdef PDF_TRACK_OBJECT_USAGE
mutable bool fUsed;
#endif // PDF_TRACK_OBJECT_USAGE
+#ifdef PDF_TRACK_STREAM_OFFSETS
public:
+ int fStreamId;
+ int fOffsetStart;
+ int fOffsetEnd;
+#endif // PDF_TRACK_STREAM_OFFSETS
+public:
+
+#ifdef PDF_TRACK_STREAM_OFFSETS
+ int streamId() const { return fStreamId; }
+ int offsetStart() const { return fOffsetStart; }
+ int offsetEnd() const { return fOffsetEnd; }
+#endif // PDF_TRACK_STREAM_OFFSETS
+
+
SkPdfNativeObject() : fInRendering(0)
, fObjectType(kInvalid_PdfObjectType)
, fMap(NULL)
@@ -118,6 +132,12 @@
#ifdef PDF_TRACK_OBJECT_USAGE
, fUsed(false)
#endif // PDF_TRACK_OBJECT_USAGE
+
+#ifdef PDF_TRACK_STREAM_OFFSETS
+ , fStreamId(-1)
+ , fOffsetStart(-1)
+ , fOffsetEnd(-1)
+#endif // PDF_TRACK_STREAM_OFFSETS
{}
bool inRendering() const { return fInRendering != 0; }
@@ -231,49 +251,63 @@
return nyi;
}
- static void makeBoolean(bool value, SkPdfNativeObject* obj) {
+ static void makeBoolean(bool value, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ STORE_TRACK_PARAMETERS(obj);
+
SkASSERT(obj->fObjectType == kInvalid_PdfObjectType);
obj->fObjectType = kBoolean_PdfObjectType;
obj->fBooleanValue = value;
}
- static SkPdfNativeObject makeBoolean(bool value) {
+ static SkPdfNativeObject makeBoolean(bool value GET_TRACK_PARAMETERS) {
SkPdfNativeObject obj;
+
+ STORE_TRACK_PARAMETERS(&obj);
+
obj.fObjectType = kBoolean_PdfObjectType;
obj.fBooleanValue = value;
return obj;
}
- static void makeInteger(int64_t value, SkPdfNativeObject* obj) {
+ static void makeInteger(int64_t value, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ STORE_TRACK_PARAMETERS(obj);
+
SkASSERT(obj->fObjectType == kInvalid_PdfObjectType);
obj->fObjectType = kInteger_PdfObjectType;
obj->fIntegerValue = value;
}
- static void makeReal(double value, SkPdfNativeObject* obj) {
+ static void makeReal(double value, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ STORE_TRACK_PARAMETERS(obj);
+
SkASSERT(obj->fObjectType == kInvalid_PdfObjectType);
obj->fObjectType = kReal_PdfObjectType;
obj->fRealValue = value;
}
- static void makeNull(SkPdfNativeObject* obj) {
+ static void makeNull(SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ STORE_TRACK_PARAMETERS(obj);
+
SkASSERT(obj->fObjectType == kInvalid_PdfObjectType);
obj->fObjectType = kNull_PdfObjectType;
}
- static SkPdfNativeObject makeNull() {
+ static SkPdfNativeObject makeNull(GET_TRACK_PARAMETERS0) {
SkPdfNativeObject obj;
+
+ STORE_TRACK_PARAMETERS(&obj);
+
obj.fObjectType = kNull_PdfObjectType;
return obj;
}
static SkPdfNativeObject kNull;
- static void makeNumeric(const unsigned char* start, const unsigned char* end, SkPdfNativeObject* obj) {
+ static void makeNumeric(const unsigned char* start, const unsigned char* end, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
SkASSERT(obj->fObjectType == kInvalid_PdfObjectType);
// TODO(edisonn): NYI properly
@@ -287,13 +321,15 @@
// TODO(edisonn): report parse issue with numbers like "24asdasd123"
}
if (isInt) {
- makeInteger(atol((const char*)start), obj);
+ makeInteger(atol((const char*)start), obj PUT_TRACK_PARAMETERS);
} else {
- makeReal(atof((const char*)start), obj);
+ makeReal(atof((const char*)start), obj PUT_TRACK_PARAMETERS);
}
}
- static void makeReference(unsigned int id, unsigned int gen, SkPdfNativeObject* obj) {
+ static void makeReference(unsigned int id, unsigned int gen, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ STORE_TRACK_PARAMETERS(obj);
+
SkASSERT(obj->fObjectType == kInvalid_PdfObjectType);
obj->fObjectType = kReference_PdfObjectType;
@@ -301,62 +337,69 @@
obj->fRef.fGen = gen;
}
+ static void resetAndMakeReference(unsigned int id, unsigned int gen, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ obj->reset();
+ makeReference(id, gen, obj PUT_TRACK_PARAMETERS);
+ }
- static void makeString(const unsigned char* start, SkPdfNativeObject* obj) {
- makeStringCore(start, strlen((const char*)start), obj, kString_PdfObjectType);
+
+ static void makeString(const unsigned char* start, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ makeStringCore(start, strlen((const char*)start), obj, kString_PdfObjectType PUT_TRACK_PARAMETERS);
}
- static void makeString(const unsigned char* start, const unsigned char* end, SkPdfNativeObject* obj) {
- makeStringCore(start, end - start, obj, kString_PdfObjectType);
+ static void makeString(const unsigned char* start, const unsigned char* end, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ makeStringCore(start, end - start, obj, kString_PdfObjectType PUT_TRACK_PARAMETERS);
}
- static void makeString(const unsigned char* start, size_t bytes, SkPdfNativeObject* obj) {
- makeStringCore(start, bytes, obj, kString_PdfObjectType);
+ static void makeString(const unsigned char* start, size_t bytes, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ makeStringCore(start, bytes, obj, kString_PdfObjectType PUT_TRACK_PARAMETERS);
}
- static void makeHexString(const unsigned char* start, SkPdfNativeObject* obj) {
- makeStringCore(start, strlen((const char*)start), obj, kHexString_PdfObjectType);
+ static void makeHexString(const unsigned char* start, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ makeStringCore(start, strlen((const char*)start), obj, kHexString_PdfObjectType PUT_TRACK_PARAMETERS);
}
- static void makeHexString(const unsigned char* start, const unsigned char* end, SkPdfNativeObject* obj) {
- makeStringCore(start, end - start, obj, kHexString_PdfObjectType);
+ static void makeHexString(const unsigned char* start, const unsigned char* end, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ makeStringCore(start, end - start, obj, kHexString_PdfObjectType PUT_TRACK_PARAMETERS);
}
- static void makeHexString(const unsigned char* start, size_t bytes, SkPdfNativeObject* obj) {
- makeStringCore(start, bytes, obj, kHexString_PdfObjectType);
+ static void makeHexString(const unsigned char* start, size_t bytes, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ makeStringCore(start, bytes, obj, kHexString_PdfObjectType PUT_TRACK_PARAMETERS);
}
- static void makeName(const unsigned char* start, SkPdfNativeObject* obj) {
- makeStringCore(start, strlen((const char*)start), obj, kName_PdfObjectType);
+ static void makeName(const unsigned char* start, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ makeStringCore(start, strlen((const char*)start), obj, kName_PdfObjectType PUT_TRACK_PARAMETERS);
}
- static void makeName(const unsigned char* start, const unsigned char* end, SkPdfNativeObject* obj) {
- makeStringCore(start, end - start, obj, kName_PdfObjectType);
+ static void makeName(const unsigned char* start, const unsigned char* end, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ makeStringCore(start, end - start, obj, kName_PdfObjectType PUT_TRACK_PARAMETERS);
}
- static void makeName(const unsigned char* start, size_t bytes, SkPdfNativeObject* obj) {
- makeStringCore(start, bytes, obj, kName_PdfObjectType);
+ static void makeName(const unsigned char* start, size_t bytes, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ makeStringCore(start, bytes, obj, kName_PdfObjectType PUT_TRACK_PARAMETERS);
}
- static void makeKeyword(const unsigned char* start, SkPdfNativeObject* obj) {
- makeStringCore(start, strlen((const char*)start), obj, kKeyword_PdfObjectType);
+ static void makeKeyword(const unsigned char* start, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ makeStringCore(start, strlen((const char*)start), obj, kKeyword_PdfObjectType PUT_TRACK_PARAMETERS);
}
- static void makeKeyword(const unsigned char* start, const unsigned char* end, SkPdfNativeObject* obj) {
- makeStringCore(start, end - start, obj, kKeyword_PdfObjectType);
+ static void makeKeyword(const unsigned char* start, const unsigned char* end, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ makeStringCore(start, end - start, obj, kKeyword_PdfObjectType PUT_TRACK_PARAMETERS);
}
- static void makeKeyword(const unsigned char* start, size_t bytes, SkPdfNativeObject* obj) {
- makeStringCore(start, bytes, obj, kKeyword_PdfObjectType);
+ static void makeKeyword(const unsigned char* start, size_t bytes, SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ makeStringCore(start, bytes, obj, kKeyword_PdfObjectType PUT_TRACK_PARAMETERS);
}
// TODO(edisonn): make the functions to return SkPdfArray, move these functions in SkPdfArray
- static void makeEmptyArray(SkPdfNativeObject* obj) {
+ static void makeEmptyArray(SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ STORE_TRACK_PARAMETERS(obj);
+
SkASSERT(obj->fObjectType == kInvalid_PdfObjectType);
obj->fObjectType = kArray_PdfObjectType;
@@ -427,7 +470,9 @@
// TODO(edisonn): make the functions to return SkPdfDictionary, move these functions in SkPdfDictionary
- static void makeEmptyDictionary(SkPdfNativeObject* obj) {
+ static void makeEmptyDictionary(SkPdfNativeObject* obj GET_TRACK_PARAMETERS) {
+ STORE_TRACK_PARAMETERS(obj);
+
SkASSERT(obj->fObjectType == kInvalid_PdfObjectType);
obj->fObjectType = kDictionary_PdfObjectType;
@@ -1144,15 +1189,17 @@
}
private:
- static void makeStringCore(const unsigned char* start, SkPdfNativeObject* obj, ObjectType type) {
- makeStringCore(start, strlen((const char*)start), obj, type);
+ static void makeStringCore(const unsigned char* start, SkPdfNativeObject* obj, ObjectType type GET_TRACK_PARAMETERS) {
+ makeStringCore(start, strlen((const char*)start), obj, type PUT_TRACK_PARAMETERS);
}
- static void makeStringCore(const unsigned char* start, const unsigned char* end, SkPdfNativeObject* obj, ObjectType type) {
- makeStringCore(start, end - start, obj, type);
+ static void makeStringCore(const unsigned char* start, const unsigned char* end, SkPdfNativeObject* obj, ObjectType type GET_TRACK_PARAMETERS) {
+ makeStringCore(start, end - start, obj, type PUT_TRACK_PARAMETERS);
}
- static void makeStringCore(const unsigned char* start, size_t bytes, SkPdfNativeObject* obj, ObjectType type) {
+ static void makeStringCore(const unsigned char* start, size_t bytes, SkPdfNativeObject* obj, ObjectType type GET_TRACK_PARAMETERS) {
+ STORE_TRACK_PARAMETERS(obj);
+
SkASSERT(obj->fObjectType == kInvalid_PdfObjectType);
obj->fObjectType = type;
@@ -1175,11 +1222,11 @@
class SkPdfName : public SkPdfNativeObject {
SkPdfName() : SkPdfNativeObject() {
- SkPdfNativeObject::makeName((const unsigned char*)"", this);
+ SkPdfNativeObject::makeName((const unsigned char*)"", this PUT_TRACK_PARAMETERS_SRC);
}
public:
SkPdfName(char* name) : SkPdfNativeObject() {
- this->makeName((const unsigned char*)name, this);
+ this->makeName((const unsigned char*)name, this PUT_TRACK_PARAMETERS_SRC);
}
};

Powered by Google App Engine
This is Rietveld 408576698