configure.ac | 6 ++-- src/hb-ot-layout-gpos-table.hh | 5 --- src/hb-ot-map-private.hh | 32 +++++++++++----------- src/hb-ot-map.cc | 59 +++++++++++++++++------------------------ 4 files changed, 44 insertions(+), 58 deletions(-)
New commits: commit 00b93f6610f36d8d14ca65fb99864be6d5bdb1ea Author: Behdad Esfahbod <[email protected]> Date: Mon Apr 29 13:48:49 2013 -0400 Fix icu linking by requesting the library searchpath from icu-config This is not ideal as we don't like -L/usr/lib in our linker line. But this is only relevant to environments that don't have pkgconfig files for ICU... https://github.com/behdad/harfbuzz/pull/2 diff --git a/configure.ac b/configure.ac index b44dd75..0ab61ba 100644 --- a/configure.ac +++ b/configure.ac @@ -177,7 +177,7 @@ if test "$have_icu" != "true"; then # necessarily want, like debugging and optimization flags # See man (1) icu-config for more info. ICU_CFLAGS=`$ICU_CONFIG --cppflags` - ICU_LIBS=`$ICU_CONFIG --ldflags-libsonly` + ICU_LIBS=`$ICU_CONFIG --ldflags-searchpath --ldflags-libsonly` AC_SUBST(ICU_CFLAGS) AC_SUBST(ICU_LIBS) AC_MSG_RESULT([yes]) @@ -205,7 +205,7 @@ if test "$have_icu_le" != "true"; then # necessarily want, like debugging and optimization flags # See man (1) icu-config for more info. ICU_LE_CFLAGS=`$ICU_CONFIG --cppflags` - ICU_LE_LIBS=`$ICU_CONFIG --ldflags-libsonly --ldflags-layout` + ICU_LE_LIBS=`$ICU_CONFIG --ldflags-searchpath --ldflags-libsonly --ldflags-layout` AC_SUBST(ICU_LE_CFLAGS) AC_SUBST(ICU_LE_LIBS) AC_MSG_RESULT([yes]) commit 03adf38b22a37216dffac50d075ea9c881f1a22d Author: Behdad Esfahbod <[email protected]> Date: Mon Apr 29 13:40:52 2013 -0400 Make both old autoconf and new automake happy Sigh.. Bug 64039 - undefined macro AM_PROG_AR diff --git a/configure.ac b/configure.ac index 588744e..b44dd75 100644 --- a/configure.ac +++ b/configure.ac @@ -13,7 +13,7 @@ AM_INIT_AUTOMAKE([1.11.1 gnits dist-bzip2 no-dist-gzip -Wall no-define color-tes AM_SILENT_RULES([yes]) # Initialize libtool -AM_PROG_AR +m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) LT_PREREQ([2.2]) LT_INIT([disable-static]) commit ed79dff517bacfc87279079d5d42d079c21a0373 Author: Behdad Esfahbod <[email protected]> Date: Sun Apr 21 15:39:25 2013 -0400 Minor diff --git a/src/hb-ot-layout-gpos-table.hh b/src/hb-ot-layout-gpos-table.hh index b2b5e9a..56b3a4f 100644 --- a/src/hb-ot-layout-gpos-table.hh +++ b/src/hb-ot-layout-gpos-table.hh @@ -710,8 +710,6 @@ struct PairPosFormat2 TRACE_COLLECT_GLYPHS (this); /* (this+coverage).add_coverage (c->input); // Don't need this. */ - /* TODO only add values for pairs that have nonzero adjustments. */ - unsigned int count1 = class1Count; const ClassDef &klass1 = this+classDef1; for (unsigned int i = 0; i < count1; i++) @@ -1014,7 +1012,6 @@ struct MarkBasePosFormat1 TRACE_COLLECT_GLYPHS (this); (this+markCoverage).add_coverage (c->input); (this+baseCoverage).add_coverage (c->input); - /* TODO only add combinations that have nonzero adjustment. */ } inline const Coverage &get_coverage (void) const @@ -1118,7 +1115,6 @@ struct MarkLigPosFormat1 TRACE_COLLECT_GLYPHS (this); (this+markCoverage).add_coverage (c->input); (this+ligatureCoverage).add_coverage (c->input); - /* TODO only add combinations that have nonzero adjustment. */ } inline const Coverage &get_coverage (void) const @@ -1234,7 +1230,6 @@ struct MarkMarkPosFormat1 TRACE_COLLECT_GLYPHS (this); (this+mark1Coverage).add_coverage (c->input); (this+mark2Coverage).add_coverage (c->input); - /* TODO only add combinations that have nonzero adjustment. */ } inline const Coverage &get_coverage (void) const commit 893f57b32f01da3411b5596d59170bc340e9fa39 Author: Behdad Esfahbod <[email protected]> Date: Sun Apr 21 15:21:49 2013 -0400 Minor renaming diff --git a/src/hb-ot-map-private.hh b/src/hb-ot-map-private.hh index 66e9b95..62fd605 100644 --- a/src/hb-ot-map-private.hh +++ b/src/hb-ot-map-private.hh @@ -68,8 +68,8 @@ struct hb_ot_map_t typedef void (*pause_func_t) (const struct hb_ot_shape_plan_t *plan, hb_font_t *font, hb_buffer_t *buffer); struct stage_map_t { - unsigned int num_lookups; /* Cumulative */ - pause_func_t callback; + unsigned int last_lookup; /* Cumulative */ + pause_func_t pause_func; }; @@ -111,8 +111,8 @@ struct hb_ot_map_t return; } assert (stage <= stages[table_index].len); - unsigned int start = stage ? stages[table_index][stage - 1].num_lookups : 0; - unsigned int end = stage < stages[table_index].len ? stages[table_index][stage].num_lookups : lookups[table_index].len; + unsigned int start = stage ? stages[table_index][stage - 1].last_lookup : 0; + unsigned int end = stage < stages[table_index].len ? stages[table_index][stage].last_lookup : lookups[table_index].len; *plookups = &lookups[table_index][start]; *lookup_count = end - start; } @@ -215,7 +215,7 @@ struct hb_ot_map_builder_t struct stage_info_t { unsigned int index; - hb_ot_map_t::pause_func_t callback; + hb_ot_map_t::pause_func_t pause_func; }; HB_INTERNAL void add_pause (unsigned int table_index, hb_ot_map_t::pause_func_t pause_func); diff --git a/src/hb-ot-map.cc b/src/hb-ot-map.cc index b907fe1..39929e0 100644 --- a/src/hb-ot-map.cc +++ b/src/hb-ot-map.cc @@ -109,16 +109,16 @@ void hb_ot_map_t::substitute (const hb_ot_shape_plan_t *plan, hb_font_t *font, h for (unsigned int stage_index = 0; stage_index < stages[table_index].len; stage_index++) { const stage_map_t *stage = &stages[table_index][stage_index]; - for (; i < stage->num_lookups; i++) + for (; i < stage->last_lookup; i++) hb_ot_layout_substitute_lookup (font, buffer, lookups[table_index][i].index, lookups[table_index][i].mask, lookups[table_index][i].auto_zwj); - if (stage->callback) + if (stage->pause_func) { buffer->clear_output (); - stage->callback (plan, font, buffer); + stage->pause_func (plan, font, buffer); } } } @@ -130,13 +130,13 @@ void hb_ot_map_t::position (const hb_ot_shape_plan_t *plan, hb_font_t *font, hb_ for (unsigned int stage_index = 0; stage_index < stages[table_index].len; stage_index++) { const stage_map_t *stage = &stages[table_index][stage_index]; - for (; i < stage->num_lookups; i++) + for (; i < stage->last_lookup; i++) hb_ot_layout_position_lookup (font, buffer, lookups[table_index][i].index, lookups[table_index][i].mask, lookups[table_index][i].auto_zwj); - if (stage->callback) - stage->callback (plan, font, buffer); + if (stage->pause_func) + stage->pause_func (plan, font, buffer); } } @@ -151,7 +151,7 @@ void hb_ot_map_builder_t::add_pause (unsigned int table_index, hb_ot_map_t::paus stage_info_t *s = stages[table_index].push (); if (likely (s)) { s->index = current_stage[table_index]; - s->callback = pause_func; + s->pause_func = pause_func; } current_stage[table_index]++; @@ -299,10 +299,10 @@ hb_ot_map_builder_t::compile (hb_ot_map_t &m) last_num_lookups = m.lookups[table_index].len; if (stage_index < stages[table_index].len && stages[table_index][stage_index].index == stage) { - hb_ot_map_t::stage_map_t *pause_map = m.stages[table_index].push (); - if (likely (pause_map)) { - pause_map->num_lookups = last_num_lookups; - pause_map->callback = stages[table_index][stage_index].callback; + hb_ot_map_t::stage_map_t *stage_map = m.stages[table_index].push (); + if (likely (stage_map)) { + stage_map->last_lookup = last_num_lookups; + stage_map->pause_func = stages[table_index][stage_index].pause_func; } stage_index++; commit 8ac3c9c0b6b8e76bce282825b9bb706c0c78c2a6 Author: Behdad Esfahbod <[email protected]> Date: Sun Apr 21 15:19:38 2013 -0400 Rename "pause" to "stage" The compile() function is starting to become illegible... diff --git a/src/hb-ot-map-private.hh b/src/hb-ot-map-private.hh index bcd5da4..66e9b95 100644 --- a/src/hb-ot-map-private.hh +++ b/src/hb-ot-map-private.hh @@ -67,7 +67,7 @@ struct hb_ot_map_t typedef void (*pause_func_t) (const struct hb_ot_shape_plan_t *plan, hb_font_t *font, hb_buffer_t *buffer); - struct pause_map_t { + struct stage_map_t { unsigned int num_lookups; /* Cumulative */ pause_func_t callback; }; @@ -110,9 +110,9 @@ struct hb_ot_map_t *lookup_count = 0; return; } - assert (stage <= pauses[table_index].len); - unsigned int start = stage ? pauses[table_index][stage - 1].num_lookups : 0; - unsigned int end = stage < pauses[table_index].len ? pauses[table_index][stage].num_lookups : lookups[table_index].len; + assert (stage <= stages[table_index].len); + unsigned int start = stage ? stages[table_index][stage - 1].num_lookups : 0; + unsigned int end = stage < stages[table_index].len ? stages[table_index][stage].num_lookups : lookups[table_index].len; *plookups = &lookups[table_index][start]; *lookup_count = end - start; } @@ -125,8 +125,8 @@ struct hb_ot_map_t features.finish (); lookups[0].finish (); lookups[1].finish (); - pauses[0].finish (); - pauses[1].finish (); + stages[0].finish (); + stages[1].finish (); } public: @@ -145,7 +145,7 @@ struct hb_ot_map_t hb_prealloced_array_t<feature_map_t, 8> features; hb_prealloced_array_t<lookup_map_t, 32> lookups[2]; /* GSUB/GPOS */ - hb_prealloced_array_t<pause_map_t, 1> pauses[2]; /* GSUB/GPOS */ + hb_prealloced_array_t<stage_map_t, 1> stages[2]; /* GSUB/GPOS */ }; enum hb_ot_map_feature_flags_t { @@ -195,8 +195,8 @@ struct hb_ot_map_builder_t inline void finish (void) { feature_infos.finish (); - pauses[0].finish (); - pauses[1].finish (); + stages[0].finish (); + stages[1].finish (); } private: @@ -213,8 +213,8 @@ struct hb_ot_map_builder_t { return (a->tag != b->tag) ? (a->tag < b->tag ? -1 : 1) : (a->seq < b->seq ? -1 : 1); } }; - struct pause_info_t { - unsigned int stage; + struct stage_info_t { + unsigned int index; hb_ot_map_t::pause_func_t callback; }; @@ -233,7 +233,7 @@ struct hb_ot_map_builder_t unsigned int current_stage[2]; /* GSUB/GPOS */ hb_prealloced_array_t<feature_info_t,16> feature_infos; - hb_prealloced_array_t<pause_info_t, 1> pauses[2]; /* GSUB/GPOS */ + hb_prealloced_array_t<stage_info_t, 1> stages[2]; /* GSUB/GPOS */ }; diff --git a/src/hb-ot-map.cc b/src/hb-ot-map.cc index 5300639..b907fe1 100644 --- a/src/hb-ot-map.cc +++ b/src/hb-ot-map.cc @@ -107,18 +107,18 @@ void hb_ot_map_t::substitute (const hb_ot_shape_plan_t *plan, hb_font_t *font, h const unsigned int table_index = 0; unsigned int i = 0; - for (unsigned int pause_index = 0; pause_index < pauses[table_index].len; pause_index++) { - const pause_map_t *pause = &pauses[table_index][pause_index]; - for (; i < pause->num_lookups; i++) + for (unsigned int stage_index = 0; stage_index < stages[table_index].len; stage_index++) { + const stage_map_t *stage = &stages[table_index][stage_index]; + for (; i < stage->num_lookups; i++) hb_ot_layout_substitute_lookup (font, buffer, lookups[table_index][i].index, lookups[table_index][i].mask, lookups[table_index][i].auto_zwj); - if (pause->callback) + if (stage->callback) { buffer->clear_output (); - pause->callback (plan, font, buffer); + stage->callback (plan, font, buffer); } } } @@ -128,15 +128,15 @@ void hb_ot_map_t::position (const hb_ot_shape_plan_t *plan, hb_font_t *font, hb_ const unsigned int table_index = 1; unsigned int i = 0; - for (unsigned int pause_index = 0; pause_index < pauses[table_index].len; pause_index++) { - const pause_map_t *pause = &pauses[table_index][pause_index]; - for (; i < pause->num_lookups; i++) + for (unsigned int stage_index = 0; stage_index < stages[table_index].len; stage_index++) { + const stage_map_t *stage = &stages[table_index][stage_index]; + for (; i < stage->num_lookups; i++) hb_ot_layout_position_lookup (font, buffer, lookups[table_index][i].index, lookups[table_index][i].mask, lookups[table_index][i].auto_zwj); - if (pause->callback) - pause->callback (plan, font, buffer); + if (stage->callback) + stage->callback (plan, font, buffer); } } @@ -148,10 +148,10 @@ void hb_ot_map_t::collect_lookups (unsigned int table_index, hb_set_t *lookups_o void hb_ot_map_builder_t::add_pause (unsigned int table_index, hb_ot_map_t::pause_func_t pause_func) { - pause_info_t *p = pauses[table_index].push (); - if (likely (p)) { - p->stage = current_stage[table_index]; - p->callback = pause_func; + stage_info_t *s = stages[table_index].push (); + if (likely (s)) { + s->index = current_stage[table_index]; + s->callback = pause_func; } current_stage[table_index]++; @@ -268,7 +268,7 @@ hb_ot_map_builder_t::compile (hb_ot_map_t &m) &required_feature_index)) m.add_lookups (face, table_index, required_feature_index, 1, true); - unsigned int pause_index = 0; + unsigned int stage_index = 0; unsigned int last_num_lookups = 0; for (unsigned stage = 0; stage < current_stage[table_index]; stage++) { @@ -298,14 +298,14 @@ hb_ot_map_builder_t::compile (hb_ot_map_t &m) last_num_lookups = m.lookups[table_index].len; - if (pause_index < pauses[table_index].len && pauses[table_index][pause_index].stage == stage) { - hb_ot_map_t::pause_map_t *pause_map = m.pauses[table_index].push (); + if (stage_index < stages[table_index].len && stages[table_index][stage_index].index == stage) { + hb_ot_map_t::stage_map_t *pause_map = m.stages[table_index].push (); if (likely (pause_map)) { pause_map->num_lookups = last_num_lookups; - pause_map->callback = pauses[table_index][pause_index].callback; + pause_map->callback = stages[table_index][stage_index].callback; } - pause_index++; + stage_index++; } } } commit dd0641a432691f9b6186b081c38053858c8bc5c1 Author: Behdad Esfahbod <[email protected]> Date: Sun Apr 21 15:13:57 2013 -0400 Minor diff --git a/src/hb-ot-map.cc b/src/hb-ot-map.cc index 6228c5f..5300639 100644 --- a/src/hb-ot-map.cc +++ b/src/hb-ot-map.cc @@ -115,10 +115,11 @@ void hb_ot_map_t::substitute (const hb_ot_shape_plan_t *plan, hb_font_t *font, h lookups[table_index][i].mask, lookups[table_index][i].auto_zwj); - buffer->clear_output (); - if (pause->callback) + { + buffer->clear_output (); pause->callback (plan, font, buffer); + } } } commit 06a44e859328f5f1e2f6034e711b474116d22e22 Author: Behdad Esfahbod <[email protected]> Date: Sun Apr 21 15:13:08 2013 -0400 Remove unneeded code We always push a pause at the end such that each lookup falls in exactly one pause_map_t. Now, only if I can find a better name for that... diff --git a/src/hb-ot-map-private.hh b/src/hb-ot-map-private.hh index a679fb5..bcd5da4 100644 --- a/src/hb-ot-map-private.hh +++ b/src/hb-ot-map-private.hh @@ -1,6 +1,6 @@ /* * Copyright © 2009,2010 Red Hat, Inc. - * Copyright © 2010,2011,2012 Google, Inc. + * Copyright © 2010,2011,2012,2013 Google, Inc. * * This is part of HarfBuzz, a text shaping library. * diff --git a/src/hb-ot-map.cc b/src/hb-ot-map.cc index 85e6e16..6228c5f 100644 --- a/src/hb-ot-map.cc +++ b/src/hb-ot-map.cc @@ -1,6 +1,6 @@ /* * Copyright © 2009,2010 Red Hat, Inc. - * Copyright © 2010,2011 Google, Inc. + * Copyright © 2010,2011,2013 Google, Inc. * * This is part of HarfBuzz, a text shaping library. * @@ -120,11 +120,6 @@ void hb_ot_map_t::substitute (const hb_ot_shape_plan_t *plan, hb_font_t *font, h if (pause->callback) pause->callback (plan, font, buffer); } - - for (; i < lookups[table_index].len; i++) - hb_ot_layout_substitute_lookup (font, buffer, lookups[table_index][i].index, - lookups[table_index][i].mask, - lookups[table_index][i].auto_zwj); } void hb_ot_map_t::position (const hb_ot_shape_plan_t *plan, hb_font_t *font, hb_buffer_t *buffer) const @@ -142,11 +137,6 @@ void hb_ot_map_t::position (const hb_ot_shape_plan_t *plan, hb_font_t *font, hb_ if (pause->callback) pause->callback (plan, font, buffer); } - - for (; i < lookups[table_index].len; i++) - hb_ot_layout_position_lookup (font, buffer, lookups[table_index][i].index, - lookups[table_index][i].mask, - lookups[table_index][i].auto_zwj); } void hb_ot_map_t::collect_lookups (unsigned int table_index, hb_set_t *lookups_out) const
_______________________________________________ HarfBuzz mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/harfbuzz
