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

Side by Side Diff: third_party/harfbuzz-ng/src/hb-private.hh

Issue 12438036: Update harfbuzz-ng to 0.9.14 from 0.9.10 (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 8 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
OLDNEW
1 /* 1 /*
2 * Copyright © 2007,2008,2009 Red Hat, Inc. 2 * Copyright © 2007,2008,2009 Red Hat, Inc.
3 * Copyright © 2011,2012 Google, Inc. 3 * Copyright © 2011,2012 Google, Inc.
4 * 4 *
5 * This is part of HarfBuzz, a text shaping library. 5 * This is part of HarfBuzz, a text shaping library.
6 * 6 *
7 * Permission is hereby granted, without written agreement and without 7 * Permission is hereby granted, without written agreement and without
8 * license or royalty fees, to use, copy, modify, and distribute this 8 * license or royalty fees, to use, copy, modify, and distribute this
9 * software and its documentation for any purpose, provided that the 9 * software and its documentation for any purpose, provided that the
10 * above copyright notice and the following two paragraphs appear in 10 * above copyright notice and the following two paragraphs appear in
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 369
370 inline void finish (void) 370 inline void finish (void)
371 { 371 {
372 if (array != static_array) 372 if (array != static_array)
373 free (array); 373 free (array);
374 array = NULL; 374 array = NULL;
375 allocated = len = 0; 375 allocated = len = 0;
376 } 376 }
377 }; 377 };
378 378
379 #define HB_AUTO_ARRAY_PREALLOCED 64
380 template <typename Type>
381 struct hb_auto_array_t : hb_prealloced_array_t <Type, HB_AUTO_ARRAY_PREALLOCED>
382 {
383 hb_auto_array_t (void) { hb_prealloced_array_t<Type, HB_AUTO_ARRAY_PREALLOCED> ::init (); }
384 ~hb_auto_array_t (void) { hb_prealloced_array_t<Type, HB_AUTO_ARRAY_PREALLOCED >::finish (); }
385 };
386
379 387
380 #define HB_LOCKABLE_SET_INIT {HB_PREALLOCED_ARRAY_INIT} 388 #define HB_LOCKABLE_SET_INIT {HB_PREALLOCED_ARRAY_INIT}
381 template <typename item_t, typename lock_t> 389 template <typename item_t, typename lock_t>
382 struct hb_lockable_set_t 390 struct hb_lockable_set_t
383 { 391 {
384 hb_prealloced_array_t <item_t, 2> items; 392 hb_prealloced_array_t <item_t, 2> items;
385 393
386 inline void init (void) { items.init (); } 394 inline void init (void) { items.init (); }
387 395
388 template <typename T> 396 template <typename T>
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 #define hb_be_uint32_get(v) (uint32_t) ((v[0] << 24) + (v[1] << 16) + (v[2] << 8) + v[3]) 517 #define hb_be_uint32_get(v) (uint32_t) ((v[0] << 24) + (v[1] << 16) + (v[2] << 8) + v[3])
510 #define hb_be_uint32_eq(a,b) (a[0] == b[0] && a[1] == b[1] && a[2] == b[2] && a[3] == b[3]) 518 #define hb_be_uint32_eq(a,b) (a[0] == b[0] && a[1] == b[1] && a[2] == b[2] && a[3] == b[3])
511 519
512 #define hb_be_uint24_put(v,V) HB_STMT_START { v[0] = (V>>16); v[1] = (V>>8); v [2] (V); } HB_STMT_END 520 #define hb_be_uint24_put(v,V) HB_STMT_START { v[0] = (V>>16); v[1] = (V>>8); v [2] (V); } HB_STMT_END
513 #define hb_be_uint24_get(v) (uint32_t) ((v[0] << 16) + (v[1] << 8) + v[2]) 521 #define hb_be_uint24_get(v) (uint32_t) ((v[0] << 16) + (v[1] << 8) + v[2])
514 #define hb_be_uint24_eq(a,b) (a[0] == b[0] && a[1] == b[1] && a[2] == b[2]) 522 #define hb_be_uint24_eq(a,b) (a[0] == b[0] && a[1] == b[1] && a[2] == b[2])
515 523
516 524
517 /* ASCII tag/character handling */ 525 /* ASCII tag/character handling */
518 526
519 static inline unsigned char ISALPHA (unsigned char c) 527 static inline bool ISALPHA (unsigned char c)
520 { return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); } 528 { return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); }
521 static inline unsigned char ISALNUM (unsigned char c) 529 static inline bool ISALNUM (unsigned char c)
522 { return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= ' 9'); } 530 { return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= ' 9'); }
531 static inline bool ISSPACE (unsigned char c)
532 { return c == ' ' || c =='\f'|| c =='\n'|| c =='\r'|| c =='\t'|| c =='\v'; }
523 static inline unsigned char TOUPPER (unsigned char c) 533 static inline unsigned char TOUPPER (unsigned char c)
524 { return (c >= 'a' && c <= 'z') ? c - 'a' + 'A' : c; } 534 { return (c >= 'a' && c <= 'z') ? c - 'a' + 'A' : c; }
525 static inline unsigned char TOLOWER (unsigned char c) 535 static inline unsigned char TOLOWER (unsigned char c)
526 { return (c >= 'A' && c <= 'Z') ? c - 'A' + 'a' : c; } 536 { return (c >= 'A' && c <= 'Z') ? c - 'A' + 'a' : c; }
527 537
528 #define HB_TAG_CHAR4(s) (HB_TAG(((const char *) s)[0], \ 538 #define HB_TAG_CHAR4(s) (HB_TAG(((const char *) s)[0], \
529 ((const char *) s)[1], \ 539 ((const char *) s)[1], \
530 ((const char *) s)[2], \ 540 ((const char *) s)[2], \
531 ((const char *) s)[3])) 541 ((const char *) s)[3]))
532 542
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 static const char bars[] = VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR; 597 static const char bars[] = VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR VBAR;
588 fprintf (stderr, "%2d %s" VRBAR "%s", 598 fprintf (stderr, "%2d %s" VRBAR "%s",
589 level, 599 level,
590 bars + sizeof (bars) - 1 - MIN ((unsigned int) sizeof (bars), (unsi gned int) (sizeof (VBAR) - 1) * level), 600 bars + sizeof (bars) - 1 - MIN ((unsigned int) sizeof (bars), (unsi gned int) (sizeof (VBAR) - 1) * level),
591 level_dir ? (level_dir > 0 ? DLBAR : ULBAR) : LBAR); 601 level_dir ? (level_dir > 0 ? DLBAR : ULBAR) : LBAR);
592 } else 602 } else
593 fprintf (stderr, " " VRBAR LBAR); 603 fprintf (stderr, " " VRBAR LBAR);
594 604
595 if (func) 605 if (func)
596 { 606 {
607 unsigned int func_len = strlen (func);
608 #ifndef HB_DEBUG_VERBOSE
597 /* Skip "typename" */ 609 /* Skip "typename" */
598 if (0 == strncmp (func, "typename ", 9)) 610 if (0 == strncmp (func, "typename ", 9))
599 func += 9; 611 func += 9;
600 /* Skip return type */ 612 /* Skip return type */
601 const char *space = strchr (func, ' '); 613 const char *space = strchr (func, ' ');
602 if (space) 614 if (space)
603 func = space + 1; 615 func = space + 1;
604 /* Skip parameter list */ 616 /* Skip parameter list */
605 const char *paren = strchr (func, '('); 617 const char *paren = strchr (func, '(');
606 unsigned int func_len = paren ? paren - func : strlen (func); 618 if (paren)
619 func_len = paren - func;
620 #endif
607 fprintf (stderr, "%.*s: ", func_len, func); 621 fprintf (stderr, "%.*s: ", func_len, func);
608 } 622 }
609 623
610 if (message) 624 if (message)
611 vfprintf (stderr, message, ap); 625 vfprintf (stderr, message, ap);
612 626
613 fprintf (stderr, "\n"); 627 fprintf (stderr, "\n");
614 } 628 }
615 template <> inline void 629 template <> inline void
616 _hb_debug_msg_va<0> (const char *what HB_UNUSED, 630 _hb_debug_msg_va<0> (const char *what HB_UNUSED,
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 hb_bubble_sort (T *array, unsigned int len, int(*compar)(const T *, const T *)) 848 hb_bubble_sort (T *array, unsigned int len, int(*compar)(const T *, const T *))
835 { 849 {
836 hb_bubble_sort (array, len, compar, (int *) NULL); 850 hb_bubble_sort (array, len, compar, (int *) NULL);
837 } 851 }
838 852
839 static inline hb_bool_t 853 static inline hb_bool_t
840 hb_codepoint_parse (const char *s, unsigned int len, int base, hb_codepoint_t *o ut) 854 hb_codepoint_parse (const char *s, unsigned int len, int base, hb_codepoint_t *o ut)
841 { 855 {
842 /* Pain because we don't know whether s is nul-terminated. */ 856 /* Pain because we don't know whether s is nul-terminated. */
843 char buf[64]; 857 char buf[64];
844 strncpy (buf, s, MIN (ARRAY_LENGTH (buf) - 1, len)); 858 len = MIN (ARRAY_LENGTH (buf) - 1, len);
845 buf[MIN (ARRAY_LENGTH (buf) - 1, len)] = '\0'; 859 strncpy (buf, s, len);
860 buf[len] = '\0';
846 861
847 char *end; 862 char *end;
848 errno = 0; 863 errno = 0;
849 unsigned long v = strtoul (buf, &end, base); 864 unsigned long v = strtoul (buf, &end, base);
850 if (errno) return false; 865 if (errno) return false;
851 if (*end) return false; 866 if (*end) return false;
852 *out = v; 867 *out = v;
853 return true; 868 return true;
854 } 869 }
855 870
856 871
872 /* Global runtime options. */
873
874 struct hb_options_t
875 {
876 int initialized : 1;
877 int uniscribe_bug_compatible : 1;
878 };
879
880 union hb_options_union_t {
881 int i;
882 hb_options_t opts;
883 };
884 ASSERT_STATIC (sizeof (int) == sizeof (hb_options_union_t));
885
886 HB_INTERNAL void
887 _hb_options_init (void);
888
889 extern HB_INTERNAL hb_options_union_t _hb_options;
890
891 static inline hb_options_t
892 hb_options (void)
893 {
894 if (unlikely (!_hb_options.i))
895 _hb_options_init ();
896
897 return _hb_options.opts;
898 }
899
900
857 #endif /* HB_PRIVATE_HH */ 901 #endif /* HB_PRIVATE_HH */
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698