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

Side by Side Diff: experimental/PdfViewer/pdfparser/native/SkPdfObject.h

Issue 19670019: pdfviewer: fix type3 font, make SkPdfObject::get parameter const (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 5 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « experimental/PdfViewer/SkPdfFont.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #ifndef EXPERIMENTAL_PDFVIEWER_PDFPARSER_NATIVE_SKPDFOBJECT_H_ 1 #ifndef EXPERIMENTAL_PDFVIEWER_PDFPARSER_NATIVE_SKPDFOBJECT_H_
2 #define EXPERIMENTAL_PDFVIEWER_PDFPARSER_NATIVE_SKPDFOBJECT_H_ 2 #define EXPERIMENTAL_PDFVIEWER_PDFPARSER_NATIVE_SKPDFOBJECT_H_
3 3
4 #include <stdint.h> 4 #include <stdint.h>
5 #include <string.h> 5 #include <string.h>
6 #include <string> 6 #include <string>
7 #include "SkTDArray.h" 7 #include "SkTDArray.h"
8 #include "SkTDict.h" 8 #include "SkTDict.h"
9 #include "SkRect.h" 9 #include "SkRect.h"
10 #include "SkMatrix.h" 10 #include "SkMatrix.h"
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 obj->fStr.fBytes = 0; 365 obj->fStr.fBytes = 0;
366 } 366 }
367 367
368 // TODO(edisonn): get all the possible names from spec, and compute a hash f unction 368 // TODO(edisonn): get all the possible names from spec, and compute a hash f unction
369 // that would create no overlaps in the same dictionary 369 // that would create no overlaps in the same dictionary
370 // or build a tree of chars that when followed goes to a unique id/index/has h 370 // or build a tree of chars that when followed goes to a unique id/index/has h
371 // TODO(edisonn): generate constants like kDictFoo, kNameDict_name 371 // TODO(edisonn): generate constants like kDictFoo, kNameDict_name
372 // which will be used in code 372 // which will be used in code
373 // add function SkPdfFastNameKey key(const char* key); 373 // add function SkPdfFastNameKey key(const char* key);
374 // TODO(edisonn): setting the same key twike, will make the value undefined! 374 // TODO(edisonn): setting the same key twike, will make the value undefined!
375 bool set(SkPdfObject* key, SkPdfObject* value) { 375 bool set(const SkPdfObject* key, SkPdfObject* value) {
376 SkASSERT(fObjectType == kDictionary_PdfObjectType); 376 SkASSERT(fObjectType == kDictionary_PdfObjectType);
377 SkASSERT(key->fObjectType == kName_PdfObjectType); 377 SkASSERT(key->fObjectType == kName_PdfObjectType);
378 378
379 if (key->fObjectType != kName_PdfObjectType || fObjectType != kDictionar y_PdfObjectType) { 379 if (key->fObjectType != kName_PdfObjectType || fObjectType != kDictionar y_PdfObjectType) {
380 // TODO(edisonn): report err 380 // TODO(edisonn): report err
381 return false; 381 return false;
382 } 382 }
383 383
384 //// we rewrite all delimiters and white spaces with '\0', so we expect the end of name to be '\0' 384 //// we rewrite all delimiters and white spaces with '\0', so we expect the end of name to be '\0'
385 //SkASSERT(key->fStr.fBuffer[key->fStr.fBytes] == '\0'); 385 //SkASSERT(key->fStr.fBuffer[key->fStr.fBytes] == '\0');
386 386
387 return set(key->fStr.fBuffer, key->fStr.fBytes, value); 387 return set(key->fStr.fBuffer, key->fStr.fBytes, value);
388 } 388 }
389 389
390 bool set(const char* key, SkPdfObject* value) { 390 bool set(const char* key, SkPdfObject* value) {
391 return set((const unsigned char*)key, strlen(key), value); 391 return set((const unsigned char*)key, strlen(key), value);
392 } 392 }
393 393
394 bool set(const unsigned char* key, size_t len, SkPdfObject* value) { 394 bool set(const unsigned char* key, size_t len, SkPdfObject* value) {
395 SkASSERT(fObjectType == kDictionary_PdfObjectType); 395 SkASSERT(fObjectType == kDictionary_PdfObjectType);
396 396
397 if (fObjectType != kDictionary_PdfObjectType) { 397 if (fObjectType != kDictionary_PdfObjectType) {
398 // TODO(edisonn): report err 398 // TODO(edisonn): report err
399 return false; 399 return false;
400 } 400 }
401 401
402 return fMap->set((const char*)key, len, value); 402 return fMap->set((const char*)key, len, value);
403 } 403 }
404 404
405 SkPdfObject* get(SkPdfObject* key) { 405 SkPdfObject* get(const SkPdfObject* key) {
406 SkASSERT(fObjectType == kDictionary_PdfObjectType); 406 SkASSERT(fObjectType == kDictionary_PdfObjectType);
407 SkASSERT(key->fObjectType == kName_PdfObjectType); 407 SkASSERT(key->fObjectType == kName_PdfObjectType);
408 408
409 if (key->fObjectType != kName_PdfObjectType || fObjectType != kDictionar y_PdfObjectType) { 409 if (key->fObjectType != kName_PdfObjectType || fObjectType != kDictionar y_PdfObjectType) {
410 // TODO(edisonn): report err 410 // TODO(edisonn): report err
411 return NULL; 411 return NULL;
412 } 412 }
413 413
414 //SkASSERT(key->fStr.fBuffer[key->fStr.fBytes] == '\0'); 414 //SkASSERT(key->fStr.fBuffer[key->fStr.fBytes] == '\0');
415 415
416 return get(key->fStr.fBuffer, key->fStr.fBytes); 416 return get(key->fStr.fBuffer, key->fStr.fBytes);
417 } 417 }
418 418
419 SkPdfObject* get(const char* key) { 419 SkPdfObject* get(const char* key) {
420 return get((const unsigned char*)key, strlen(key)); 420 return get((const unsigned char*)key, strlen(key));
421 } 421 }
422 422
423 SkPdfObject* get(const unsigned char* key, size_t len) { 423 SkPdfObject* get(const unsigned char* key, size_t len) {
424 SkASSERT(fObjectType == kDictionary_PdfObjectType); 424 SkASSERT(fObjectType == kDictionary_PdfObjectType);
425 SkASSERT(key); 425 SkASSERT(key);
426 if (fObjectType != kDictionary_PdfObjectType) { 426 if (fObjectType != kDictionary_PdfObjectType) {
427 // TODO(edisonn): report err 427 // TODO(edisonn): report err
428 return NULL; 428 return NULL;
429 } 429 }
430 SkPdfObject* ret = NULL; 430 SkPdfObject* ret = NULL;
431 fMap->find((const char*)key, len, &ret); 431 fMap->find((const char*)key, len, &ret);
432 return ret; 432 return ret;
433 } 433 }
434 434
435 const SkPdfObject* get(SkPdfObject* key) const { 435 const SkPdfObject* get(const SkPdfObject* key) const {
436 SkASSERT(fObjectType == kDictionary_PdfObjectType); 436 SkASSERT(fObjectType == kDictionary_PdfObjectType);
437 SkASSERT(key->fObjectType == kName_PdfObjectType); 437 SkASSERT(key->fObjectType == kName_PdfObjectType);
438 438
439 if (key->fObjectType != kName_PdfObjectType || fObjectType != kDictionar y_PdfObjectType) { 439 if (key->fObjectType != kName_PdfObjectType || fObjectType != kDictionar y_PdfObjectType) {
440 // TODO(edisonn): report err 440 // TODO(edisonn): report err
441 return NULL; 441 return NULL;
442 } 442 }
443 443
444 //SkASSERT(key->fStr.fBuffer[key->fStr.fBytes] == '\0'); 444 //SkASSERT(key->fStr.fBuffer[key->fStr.fBytes] == '\0');
445 445
(...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after
899 SkPdfName() : SkPdfObject() { 899 SkPdfName() : SkPdfObject() {
900 SkPdfObject::makeName((const unsigned char*)"", this); 900 SkPdfObject::makeName((const unsigned char*)"", this);
901 } 901 }
902 public: 902 public:
903 SkPdfName(char* name) : SkPdfObject() { 903 SkPdfName(char* name) : SkPdfObject() {
904 this->makeName((const unsigned char*)name, this); 904 this->makeName((const unsigned char*)name, this);
905 } 905 }
906 }; 906 };
907 907
908 #endif // EXPERIMENTAL_PDFVIEWER_PDFPARSER_NATIVE_SKPDFOBJECT_H_ 908 #endif // EXPERIMENTAL_PDFVIEWER_PDFPARSER_NATIVE_SKPDFOBJECT_H_
OLDNEW
« no previous file with comments | « experimental/PdfViewer/SkPdfFont.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698