< prev index next >
src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-os2-unicode-ranges.hh
Print this page
@@ -25,23 +25,37 @@
*/
#ifndef HB_OT_OS2_UNICODE_RANGES_HH
#define HB_OT_OS2_UNICODE_RANGES_HH
-#include "hb-private.hh"
-#include "hb-dsalgs.hh"
+#include "hb.hh"
namespace OT {
-struct Range {
+struct OS2Range
+{
+ static int
+ cmp (const void *_key, const void *_item)
+ {
+ hb_codepoint_t cp = *((hb_codepoint_t *) _key);
+ const OS2Range *range = (OS2Range *) _item;
+
+ if (cp < range->start)
+ return -1;
+ else if (cp <= range->end)
+ return 0;
+ else
+ return +1;
+ }
+
hb_codepoint_t start;
hb_codepoint_t end;
unsigned int bit;
};
-/* Note: The contents of this array was generated using src/gen-unicode-ranges.py. */
-static Range os2UnicodeRangesSorted[] =
+/* Note: The contents of this array was generated using gen-os2-unicode-ranges.py. */
+static const OS2Range _hb_os2_unicode_ranges[] =
{
{ 0x0, 0x7F, 0}, // Basic Latin
{ 0x80, 0xFF, 1}, // Latin-1 Supplement
{ 0x100, 0x17F, 2}, // Latin Extended-A
{ 0x180, 0x24F, 3}, // Latin Extended-B
@@ -210,35 +224,21 @@
{ 0xE0100, 0xE01EF, 91}, // Variation Selectors Supplement
{ 0xF0000, 0xFFFFD, 90}, // Private Use (plane 15)
{0x100000, 0x10FFFD, 90}, // Private Use (plane 16)
};
-static int
-_compare_range (const void *_key, const void *_item, void *_arg)
-{
- hb_codepoint_t cp = *((hb_codepoint_t *) _key);
- const Range *range = (Range *) _item;
-
- if (cp < range->start)
- return -1;
- else if (cp <= range->end)
- return 0;
- else
- return 1;
-}
-
/**
- * hb_get_unicode_range_bit:
- * Returns the bit to be set in os/2 ulUnicodeRange for a given codepoint.
+ * _hb_ot_os2_get_unicode_range_bit:
+ * Returns the bit to be set in os/2 ulUnicodeOS2Range for a given codepoint.
**/
static unsigned int
-hb_get_unicode_range_bit (hb_codepoint_t cp)
+_hb_ot_os2_get_unicode_range_bit (hb_codepoint_t cp)
{
- Range *range = (Range*) hb_bsearch_r (&cp, os2UnicodeRangesSorted,
- sizeof (os2UnicodeRangesSorted) / sizeof(Range),
- sizeof(Range),
- _compare_range, nullptr);
+ OS2Range *range = (OS2Range*) hb_bsearch (&cp, _hb_os2_unicode_ranges,
+ ARRAY_LENGTH (_hb_os2_unicode_ranges),
+ sizeof (OS2Range),
+ OS2Range::cmp);
if (range != nullptr)
return range->bit;
return -1;
}
< prev index next >