OLD | NEW |
1 #ifndef EXPERIMENTAL_PDFVIEWER_PDFPARSER_NATIVE_SKPDFNATIVETOKENIZER_H_ | 1 #ifndef EXPERIMENTAL_PDFVIEWER_PDFPARSER_NATIVE_SKPDFNATIVETOKENIZER_H_ |
2 #define EXPERIMENTAL_PDFVIEWER_PDFPARSER_NATIVE_SKPDFNATIVETOKENIZER_H_ | 2 #define EXPERIMENTAL_PDFVIEWER_PDFPARSER_NATIVE_SKPDFNATIVETOKENIZER_H_ |
3 | 3 |
4 #include "SkTDArray.h" | 4 #include "SkTDArray.h" |
5 #include "SkTDict.h" | 5 #include "SkTDict.h" |
6 #include <math.h> | 6 #include <math.h> |
7 #include <string.h> | 7 #include <string.h> |
8 | 8 |
9 class SkPdfMapper; | 9 class SkPdfMapper; |
10 class SkPdfDictionary; | 10 class SkPdfDictionary; |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 class SkPdfObject; | 76 class SkPdfObject; |
77 | 77 |
78 class SkPdfAllocator { | 78 class SkPdfAllocator { |
79 #define BUFFER_SIZE 1024 | 79 #define BUFFER_SIZE 1024 |
80 SkTDArray<SkPdfObject*> fHistory; | 80 SkTDArray<SkPdfObject*> fHistory; |
81 SkTDArray<void*> fHandles; | 81 SkTDArray<void*> fHandles; |
82 SkPdfObject* fCurrent; | 82 SkPdfObject* fCurrent; |
83 int fCurrentUsed; | 83 int fCurrentUsed; |
84 | 84 |
85 SkPdfObject* allocBlock(); | 85 SkPdfObject* allocBlock(); |
| 86 size_t fSizeInBytes; |
86 | 87 |
87 public: | 88 public: |
88 SkPdfAllocator() { | 89 SkPdfAllocator() { |
| 90 fSizeInBytes = sizeof(*this); |
89 fCurrent = allocBlock(); | 91 fCurrent = allocBlock(); |
90 fCurrentUsed = 0; | 92 fCurrentUsed = 0; |
91 } | 93 } |
92 | 94 |
93 ~SkPdfAllocator(); | 95 ~SkPdfAllocator(); |
94 | 96 |
95 SkPdfObject* allocObject(); | 97 SkPdfObject* allocObject(); |
96 | 98 |
97 // TODO(edisonn): free this memory in destructor, track the usage? | 99 // TODO(edisonn): free this memory in destructor, track the usage? |
98 void* alloc(size_t bytes) { | 100 void* alloc(size_t bytes) { |
99 void* data = malloc(bytes); | 101 void* data = malloc(bytes); |
100 fHandles.push(data); | 102 fHandles.push(data); |
| 103 fSizeInBytes += bytes; |
101 return data; | 104 return data; |
102 } | 105 } |
| 106 |
| 107 size_t bytesUsed() { |
| 108 return fSizeInBytes; |
| 109 } |
103 }; | 110 }; |
104 | 111 |
105 class SkNativeParsedPDF; | 112 class SkNativeParsedPDF; |
106 unsigned char* nextObject(unsigned char* start, unsigned char* end, SkPdfObject*
token, SkPdfAllocator* allocator, SkNativeParsedPDF* doc); | 113 unsigned char* nextObject(unsigned char* start, unsigned char* end, SkPdfObject*
token, SkPdfAllocator* allocator, SkNativeParsedPDF* doc); |
107 | 114 |
108 enum SkPdfTokenType { | 115 enum SkPdfTokenType { |
109 kKeyword_TokenType, | 116 kKeyword_TokenType, |
110 kObject_TokenType, | 117 kObject_TokenType, |
111 }; | 118 }; |
112 | 119 |
(...skipping 25 matching lines...) Expand all Loading... |
138 unsigned char* fUncompressedStreamStart; | 145 unsigned char* fUncompressedStreamStart; |
139 unsigned char* fUncompressedStream; | 146 unsigned char* fUncompressedStream; |
140 unsigned char* fUncompressedStreamEnd; | 147 unsigned char* fUncompressedStreamEnd; |
141 | 148 |
142 bool fEmpty; | 149 bool fEmpty; |
143 bool fHasPutBack; | 150 bool fHasPutBack; |
144 PdfToken fPutBack; | 151 PdfToken fPutBack; |
145 }; | 152 }; |
146 | 153 |
147 #endif // EXPERIMENTAL_PDFVIEWER_PDFPARSER_NATIVE_SKPDFNATIVETOKENIZER_H_ | 154 #endif // EXPERIMENTAL_PDFVIEWER_PDFPARSER_NATIVE_SKPDFNATIVETOKENIZER_H_ |
OLD | NEW |