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

Side by Side Diff: third_party/harfbuzz-ng/src/hb-buffer-deserialize-json.hh

Issue 839143002: Roll Chrome into Mojo. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Rebase Created 5 years, 11 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
OLDNEW
1 1
2 #line 1 "../../src/hb-buffer-deserialize-json.rl" 2 #line 1 "hb-buffer-deserialize-json.rl"
3 /* 3 /*
4 * Copyright © 2013 Google, Inc. 4 * Copyright © 2013 Google, Inc.
5 * 5 *
6 * This is part of HarfBuzz, a text shaping library. 6 * This is part of HarfBuzz, a text shaping library.
7 * 7 *
8 * Permission is hereby granted, without written agreement and without 8 * Permission is hereby granted, without written agreement and without
9 * license or royalty fees, to use, copy, modify, and distribute this 9 * license or royalty fees, to use, copy, modify, and distribute this
10 * software and its documentation for any purpose, provided that the 10 * software and its documentation for any purpose, provided that the
11 * above copyright notice and the following two paragraphs appear in 11 * above copyright notice and the following two paragraphs appear in
12 * all copies of this software. 12 * all copies of this software.
(...skipping 12 matching lines...) Expand all
25 * 25 *
26 * Google Author(s): Behdad Esfahbod 26 * Google Author(s): Behdad Esfahbod
27 */ 27 */
28 28
29 #ifndef HB_BUFFER_DESERIALIZE_JSON_HH 29 #ifndef HB_BUFFER_DESERIALIZE_JSON_HH
30 #define HB_BUFFER_DESERIALIZE_JSON_HH 30 #define HB_BUFFER_DESERIALIZE_JSON_HH
31 31
32 #include "hb-private.hh" 32 #include "hb-private.hh"
33 33
34 34
35 #line 36 "hb-buffer-deserialize-json.hh.tmp" 35 #line 36 "hb-buffer-deserialize-json.hh"
36 static const unsigned char _deserialize_json_trans_keys[] = { 36 static const unsigned char _deserialize_json_trans_keys[] = {
37 0u, 0u, 9u, 123u, 9u, 34u, 97u, 103u, 120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u, 37 0u, 0u, 9u, 123u, 9u, 34u, 97u, 103u, 120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u,
38 48u, 57u, 9u, 125u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 38 48u, 57u, 9u, 125u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u,
39 9u, 125u, 9u, 125u, 108u, 108u, 34u, 34u, 9u, 58u, 9u, 57u, 9u, 125u, 9u , 125u, 39 9u, 125u, 9u, 125u, 108u, 108u, 34u, 34u, 9u, 58u, 9u, 57u, 9u, 125u, 9u , 125u,
40 120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 34 u, 34u, 40 120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 34 u, 34u,
41 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 5 7u, 41 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 5 7u,
42 65u, 122u, 34u, 122u, 9u, 125u, 9u, 125u, 9u, 93u, 9u, 123u, 0u, 0u, 0 42 65u, 122u, 34u, 122u, 9u, 125u, 9u, 125u, 9u, 93u, 9u, 123u, 0u, 0u, 0
43 }; 43 };
44 44
45 static const char _deserialize_json_key_spans[] = { 45 static const char _deserialize_json_key_spans[] = {
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
428 15, 15, 16, 0, 0, 0, 0 428 15, 15, 16, 0, 0, 0, 0
429 }; 429 };
430 430
431 static const int deserialize_json_start = 1; 431 static const int deserialize_json_start = 1;
432 static const int deserialize_json_first_final = 44; 432 static const int deserialize_json_first_final = 44;
433 static const int deserialize_json_error = 0; 433 static const int deserialize_json_error = 0;
434 434
435 static const int deserialize_json_en_main = 1; 435 static const int deserialize_json_en_main = 1;
436 436
437 437
438 #line 97 "../../src/hb-buffer-deserialize-json.rl" 438 #line 97 "hb-buffer-deserialize-json.rl"
439 439
440 440
441 static hb_bool_t 441 static hb_bool_t
442 _hb_buffer_deserialize_glyphs_json (hb_buffer_t *buffer, 442 _hb_buffer_deserialize_glyphs_json (hb_buffer_t *buffer,
443 const char *buf, 443 const char *buf,
444 unsigned int buf_len, 444 unsigned int buf_len,
445 const char **end_ptr, 445 const char **end_ptr,
446 hb_font_t *font) 446 hb_font_t *font)
447 { 447 {
448 const char *p = buf, *pe = buf + buf_len; 448 const char *p = buf, *pe = buf + buf_len;
449 449
450 /* Ensure we have positions. */ 450 /* Ensure we have positions. */
451 (void) hb_buffer_get_glyph_positions (buffer, NULL); 451 (void) hb_buffer_get_glyph_positions (buffer, NULL);
452 452
453 while (p < pe && ISSPACE (*p)) 453 while (p < pe && ISSPACE (*p))
454 p++; 454 p++;
455 if (p < pe && *p == (buffer->len ? ',' : '[')) 455 if (p < pe && *p == (buffer->len ? ',' : '['))
456 { 456 {
457 *end_ptr = ++p; 457 *end_ptr = ++p;
458 } 458 }
459 459
460 const char *tok = NULL; 460 const char *tok = NULL;
461 int cs; 461 int cs;
462 hb_glyph_info_t info; 462 hb_glyph_info_t info = {0};
463 hb_glyph_position_t pos; 463 hb_glyph_position_t pos = {0};
464 464
465 #line 466 "hb-buffer-deserialize-json.hh.tmp" 465 #line 466 "hb-buffer-deserialize-json.hh"
466 { 466 {
467 cs = deserialize_json_start; 467 cs = deserialize_json_start;
468 } 468 }
469 469
470 #line 471 "hb-buffer-deserialize-json.hh.tmp" 470 #line 471 "hb-buffer-deserialize-json.hh"
471 { 471 {
472 int _slen; 472 int _slen;
473 int _trans; 473 int _trans;
474 const unsigned char *_keys; 474 const unsigned char *_keys;
475 const char *_inds; 475 const char *_inds;
476 if ( p == pe ) 476 if ( p == pe )
477 goto _test_eof; 477 goto _test_eof;
478 if ( cs == 0 ) 478 if ( cs == 0 )
479 goto _out; 479 goto _out;
480 _resume: 480 _resume:
481 _keys = _deserialize_json_trans_keys + (cs<<1); 481 _keys = _deserialize_json_trans_keys + (cs<<1);
482 _inds = _deserialize_json_indicies + _deserialize_json_index_offsets[cs] ; 482 _inds = _deserialize_json_indicies + _deserialize_json_index_offsets[cs] ;
483 483
484 _slen = _deserialize_json_key_spans[cs]; 484 _slen = _deserialize_json_key_spans[cs];
485 _trans = _inds[ _slen > 0 && _keys[0] <=(*p) && 485 _trans = _inds[ _slen > 0 && _keys[0] <=(*p) &&
486 (*p) <= _keys[1] ? 486 (*p) <= _keys[1] ?
487 (*p) - _keys[0] : _slen ]; 487 (*p) - _keys[0] : _slen ];
488 488
489 cs = _deserialize_json_trans_targs[_trans]; 489 cs = _deserialize_json_trans_targs[_trans];
490 490
491 if ( _deserialize_json_trans_actions[_trans] == 0 ) 491 if ( _deserialize_json_trans_actions[_trans] == 0 )
492 goto _again; 492 goto _again;
493 493
494 switch ( _deserialize_json_trans_actions[_trans] ) { 494 switch ( _deserialize_json_trans_actions[_trans] ) {
495 case 1: 495 case 1:
496 #line 38 "../../src/hb-buffer-deserialize-json.rl" 496 #line 38 "hb-buffer-deserialize-json.rl"
497 { 497 {
498 memset (&info, 0, sizeof (info)); 498 memset (&info, 0, sizeof (info));
499 memset (&pos , 0, sizeof (pos )); 499 memset (&pos , 0, sizeof (pos ));
500 } 500 }
501 break; 501 break;
502 case 5: 502 case 5:
503 #line 43 "../../src/hb-buffer-deserialize-json.rl" 503 #line 43 "hb-buffer-deserialize-json.rl"
504 { 504 {
505 buffer->add_info (info); 505 buffer->add_info (info);
506 if (buffer->in_error) 506 if (buffer->in_error)
507 return false; 507 return false;
508 buffer->pos[buffer->len - 1] = pos; 508 buffer->pos[buffer->len - 1] = pos;
509 *end_ptr = p; 509 *end_ptr = p;
510 } 510 }
511 break; 511 break;
512 case 2: 512 case 2:
513 #line 51 "../../src/hb-buffer-deserialize-json.rl" 513 #line 51 "hb-buffer-deserialize-json.rl"
514 { 514 {
515 tok = p; 515 tok = p;
516 } 516 }
517 break; 517 break;
518 case 14: 518 case 14:
519 #line 55 "../../src/hb-buffer-deserialize-json.rl" 519 #line 55 "hb-buffer-deserialize-json.rl"
520 { 520 {
521 if (!hb_font_glyph_from_string (font, 521 if (!hb_font_glyph_from_string (font,
522 tok, p - tok, 522 tok, p - tok,
523 &info.codepoint)) 523 &info.codepoint))
524 return false; 524 return false;
525 } 525 }
526 break; 526 break;
527 case 15: 527 case 15:
528 #line 62 "../../src/hb-buffer-deserialize-json.rl" 528 #line 62 "hb-buffer-deserialize-json.rl"
529 { if (!parse_uint (tok, p, &info.codepoint)) return false; } 529 { if (!parse_uint (tok, p, &info.codepoint)) return false; }
530 break; 530 break;
531 case 8: 531 case 8:
532 #line 63 "../../src/hb-buffer-deserialize-json.rl" 532 #line 63 "hb-buffer-deserialize-json.rl"
533 { if (!parse_uint (tok, p, &info.cluster )) return false; } 533 { if (!parse_uint (tok, p, &info.cluster )) return false; }
534 break; 534 break;
535 case 10: 535 case 10:
536 #line 64 "../../src/hb-buffer-deserialize-json.rl" 536 #line 64 "hb-buffer-deserialize-json.rl"
537 { if (!parse_int (tok, p, &pos.x_offset )) return false; } 537 { if (!parse_int (tok, p, &pos.x_offset )) return false; }
538 break; 538 break;
539 case 12: 539 case 12:
540 #line 65 "../../src/hb-buffer-deserialize-json.rl" 540 #line 65 "hb-buffer-deserialize-json.rl"
541 { if (!parse_int (tok, p, &pos.y_offset )) return false; } 541 { if (!parse_int (tok, p, &pos.y_offset )) return false; }
542 break; 542 break;
543 case 3: 543 case 3:
544 #line 66 "../../src/hb-buffer-deserialize-json.rl" 544 #line 66 "hb-buffer-deserialize-json.rl"
545 { if (!parse_int (tok, p, &pos.x_advance)) return false; } 545 { if (!parse_int (tok, p, &pos.x_advance)) return false; }
546 break; 546 break;
547 case 6: 547 case 6:
548 #line 67 "../../src/hb-buffer-deserialize-json.rl" 548 #line 67 "hb-buffer-deserialize-json.rl"
549 { if (!parse_int (tok, p, &pos.y_advance)) return false; } 549 { if (!parse_int (tok, p, &pos.y_advance)) return false; }
550 break; 550 break;
551 case 16: 551 case 16:
552 #line 62 "../../src/hb-buffer-deserialize-json.rl" 552 #line 62 "hb-buffer-deserialize-json.rl"
553 { if (!parse_uint (tok, p, &info.codepoint)) return false; } 553 { if (!parse_uint (tok, p, &info.codepoint)) return false; }
554 #line 43 "../../src/hb-buffer-deserialize-json.rl" 554 #line 43 "hb-buffer-deserialize-json.rl"
555 { 555 {
556 buffer->add_info (info); 556 buffer->add_info (info);
557 if (buffer->in_error) 557 if (buffer->in_error)
558 return false; 558 return false;
559 buffer->pos[buffer->len - 1] = pos; 559 buffer->pos[buffer->len - 1] = pos;
560 *end_ptr = p; 560 *end_ptr = p;
561 } 561 }
562 break; 562 break;
563 case 9: 563 case 9:
564 #line 63 "../../src/hb-buffer-deserialize-json.rl" 564 #line 63 "hb-buffer-deserialize-json.rl"
565 { if (!parse_uint (tok, p, &info.cluster )) return false; } 565 { if (!parse_uint (tok, p, &info.cluster )) return false; }
566 #line 43 "../../src/hb-buffer-deserialize-json.rl" 566 #line 43 "hb-buffer-deserialize-json.rl"
567 { 567 {
568 buffer->add_info (info); 568 buffer->add_info (info);
569 if (buffer->in_error) 569 if (buffer->in_error)
570 return false; 570 return false;
571 buffer->pos[buffer->len - 1] = pos; 571 buffer->pos[buffer->len - 1] = pos;
572 *end_ptr = p; 572 *end_ptr = p;
573 } 573 }
574 break; 574 break;
575 case 11: 575 case 11:
576 #line 64 "../../src/hb-buffer-deserialize-json.rl" 576 #line 64 "hb-buffer-deserialize-json.rl"
577 { if (!parse_int (tok, p, &pos.x_offset )) return false; } 577 { if (!parse_int (tok, p, &pos.x_offset )) return false; }
578 #line 43 "../../src/hb-buffer-deserialize-json.rl" 578 #line 43 "hb-buffer-deserialize-json.rl"
579 { 579 {
580 buffer->add_info (info); 580 buffer->add_info (info);
581 if (buffer->in_error) 581 if (buffer->in_error)
582 return false; 582 return false;
583 buffer->pos[buffer->len - 1] = pos; 583 buffer->pos[buffer->len - 1] = pos;
584 *end_ptr = p; 584 *end_ptr = p;
585 } 585 }
586 break; 586 break;
587 case 13: 587 case 13:
588 #line 65 "../../src/hb-buffer-deserialize-json.rl" 588 #line 65 "hb-buffer-deserialize-json.rl"
589 { if (!parse_int (tok, p, &pos.y_offset )) return false; } 589 { if (!parse_int (tok, p, &pos.y_offset )) return false; }
590 #line 43 "../../src/hb-buffer-deserialize-json.rl" 590 #line 43 "hb-buffer-deserialize-json.rl"
591 { 591 {
592 buffer->add_info (info); 592 buffer->add_info (info);
593 if (buffer->in_error) 593 if (buffer->in_error)
594 return false; 594 return false;
595 buffer->pos[buffer->len - 1] = pos; 595 buffer->pos[buffer->len - 1] = pos;
596 *end_ptr = p; 596 *end_ptr = p;
597 } 597 }
598 break; 598 break;
599 case 4: 599 case 4:
600 #line 66 "../../src/hb-buffer-deserialize-json.rl" 600 #line 66 "hb-buffer-deserialize-json.rl"
601 { if (!parse_int (tok, p, &pos.x_advance)) return false; } 601 { if (!parse_int (tok, p, &pos.x_advance)) return false; }
602 #line 43 "../../src/hb-buffer-deserialize-json.rl" 602 #line 43 "hb-buffer-deserialize-json.rl"
603 { 603 {
604 buffer->add_info (info); 604 buffer->add_info (info);
605 if (buffer->in_error) 605 if (buffer->in_error)
606 return false; 606 return false;
607 buffer->pos[buffer->len - 1] = pos; 607 buffer->pos[buffer->len - 1] = pos;
608 *end_ptr = p; 608 *end_ptr = p;
609 } 609 }
610 break; 610 break;
611 case 7: 611 case 7:
612 #line 67 "../../src/hb-buffer-deserialize-json.rl" 612 #line 67 "hb-buffer-deserialize-json.rl"
613 { if (!parse_int (tok, p, &pos.y_advance)) return false; } 613 { if (!parse_int (tok, p, &pos.y_advance)) return false; }
614 #line 43 "../../src/hb-buffer-deserialize-json.rl" 614 #line 43 "hb-buffer-deserialize-json.rl"
615 { 615 {
616 buffer->add_info (info); 616 buffer->add_info (info);
617 if (buffer->in_error) 617 if (buffer->in_error)
618 return false; 618 return false;
619 buffer->pos[buffer->len - 1] = pos; 619 buffer->pos[buffer->len - 1] = pos;
620 *end_ptr = p; 620 *end_ptr = p;
621 } 621 }
622 break; 622 break;
623 #line 624 "hb-buffer-deserialize-json.hh.tmp" 623 #line 624 "hb-buffer-deserialize-json.hh"
624 } 624 }
625 625
626 _again: 626 _again:
627 if ( cs == 0 ) 627 if ( cs == 0 )
628 goto _out; 628 goto _out;
629 if ( ++p != pe ) 629 if ( ++p != pe )
630 goto _resume; 630 goto _resume;
631 _test_eof: {} 631 _test_eof: {}
632 _out: {} 632 _out: {}
633 } 633 }
634 634
635 #line 125 "../../src/hb-buffer-deserialize-json.rl" 635 #line 125 "hb-buffer-deserialize-json.rl"
636 636
637 637
638 *end_ptr = p; 638 *end_ptr = p;
639 639
640 return p == pe && *(p-1) != ']'; 640 return p == pe && *(p-1) != ']';
641 } 641 }
642 642
643 #endif /* HB_BUFFER_DESERIALIZE_JSON_HH */ 643 #endif /* HB_BUFFER_DESERIALIZE_JSON_HH */
OLDNEW
« no previous file with comments | « third_party/harfbuzz-ng/gsubgpos.patch ('k') | third_party/harfbuzz-ng/src/hb-buffer-deserialize-text.hh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698