summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2019-07-09 22:01:26 +0000
committerMatthias Clasen <mclasen@redhat.com>2019-07-09 22:01:26 +0000
commitfa45f01356d3a957f18272b60bc616e26426d7a0 (patch)
treee134504963eb14f6aeacf0933ef3f8184e24f12a
parent56ff2776f61d25c1cdf9701768c88378fd6dda73 (diff)
parent8e4cee2589572c7909d07bbcc6ea500b1c4b688e (diff)
downloadpango-fa45f01356d3a957f18272b60bc616e26426d7a0.tar.gz
Merge branch 'kill-lang-engine' into 'master'
Remove lang engine use See merge request GNOME/pango!73
-rw-r--r--pango/break.c66
-rw-r--r--pango/pango-context.c9
-rw-r--r--pango/pango-engine-private.h2
-rw-r--r--pango/pango-layout.c11
4 files changed, 19 insertions, 69 deletions
diff --git a/pango/break.c b/pango/break.c
index 11f4079e..11a1e34a 100644
--- a/pango/break.c
+++ b/pango/break.c
@@ -22,7 +22,6 @@
#include "config.h"
#include "pango-break.h"
-#include "pango-engine-private.h"
#include "pango-script-private.h"
#include "pango-emoji-private.h"
#include "pango-break-table.h"
@@ -1574,23 +1573,25 @@ pango_default_break (const gchar *text,
}
static gboolean
+break_script (const char *item_text,
+ unsigned int item_length,
+ const PangoAnalysis *analysis,
+ PangoLogAttr *attrs,
+ int attrs_len);
+
+static gboolean
tailor_break (const gchar *text,
gint length,
PangoAnalysis *analysis,
PangoLogAttr *attrs,
int attrs_len)
{
- if (analysis->lang_engine && PANGO_ENGINE_LANG_GET_CLASS (analysis->lang_engine)->script_break)
- {
- if (length < 0)
- length = strlen (text);
- else if (text == NULL)
- text = "";
+ if (length < 0)
+ length = strlen (text);
+ else if (text == NULL)
+ text = "";
- PANGO_ENGINE_LANG_GET_CLASS (analysis->lang_engine)->script_break (analysis->lang_engine, text, length, analysis, attrs, attrs_len);
- return TRUE;
- }
- return FALSE;
+ return break_script (text, length, analysis, attrs, attrs_len);
}
/**
@@ -1787,7 +1788,6 @@ pango_get_log_attrs (const char *text,
g_return_if_fail (log_attrs != NULL);
analysis.level = level;
- analysis.lang_engine = _pango_get_language_engine ();
pango_default_break (text, length, &analysis, log_attrs, attrs_len);
@@ -1817,7 +1817,7 @@ pango_get_log_attrs (const char *text,
#include "break-indic.c"
#include "break-thai.c"
-static void
+static gboolean
break_script (const char *item_text,
unsigned int item_length,
const PangoAnalysis *analysis,
@@ -1846,43 +1846,9 @@ break_script (const char *item_text,
case PANGO_SCRIPT_THAI:
break_thai (item_text, item_length, analysis, attrs, attrs_len);
break;
+ default:
+ return FALSE;
}
-}
-
-
-/* Wrap language breaker in PangoEngineLang to pass it through old API,
- * from times when there were modules and engines. */
-typedef PangoEngineLang PangoLanguageEngine;
-typedef PangoEngineLangClass PangoLanguageEngineClass;
-static GType pango_language_engine_get_type (void) G_GNUC_CONST;
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-G_DEFINE_TYPE (PangoLanguageEngine, pango_language_engine, PANGO_TYPE_ENGINE_LANG);
-G_GNUC_END_IGNORE_DEPRECATIONS
-static void
-_pango_language_engine_break (PangoEngineLang *engine G_GNUC_UNUSED,
- const char *item_text,
- int item_length,
- PangoAnalysis *analysis,
- PangoLogAttr *attrs,
- int attrs_len)
-{
- break_script (item_text, item_length, analysis, attrs, attrs_len);
-}
-static void
-pango_language_engine_class_init (PangoEngineLangClass *class)
-{
- class->script_break = _pango_language_engine_break;
-}
-static void
-pango_language_engine_init (PangoEngineLang *object)
-{
-}
-PangoEngineLang *
-_pango_get_language_engine (void)
-{
- static PangoEngineLang *engine;
- if (g_once_init_enter (&engine))
- g_once_init_leave (&engine, g_object_new (pango_language_engine_get_type(), NULL));
- return engine;
+ return TRUE;
}
diff --git a/pango/pango-context.c b/pango/pango-context.c
index 83fdc9a6..b8e78c22 100644
--- a/pango/pango-context.c
+++ b/pango/pango-context.c
@@ -758,7 +758,6 @@ struct _ItemizeState
PangoEmojiIter emoji_iter;
PangoLanguage *derived_lang;
- PangoEngineLang *lang_engine;
PangoFontset *current_fonts;
FontCache *cache;
@@ -1061,7 +1060,6 @@ itemize_state_init (ItemizeState *state,
state->gravity_hint = state->context->gravity_hint;
state->resolved_gravity = PANGO_GRAVITY_AUTO;
state->derived_lang = NULL;
- state->lang_engine = NULL;
state->current_fonts = NULL;
state->cache = NULL;
state->base_font = NULL;
@@ -1165,7 +1163,6 @@ itemize_state_add_character (ItemizeState *state,
}
if (!force_break &&
- state->item->analysis.lang_engine == state->lang_engine &&
state->item->analysis.shape_engine == shape_engine &&
state->item->analysis.font == font)
{
@@ -1181,7 +1178,6 @@ itemize_state_add_character (ItemizeState *state,
state->item->length = 0;
state->item->num_chars = 1;
state->item->analysis.shape_engine = shape_engine;
- state->item->analysis.lang_engine = state->lang_engine;
if (font)
g_object_ref (font);
@@ -1404,11 +1400,6 @@ itemize_state_update_for_new_run (ItemizeState *state)
state->changed |= DERIVED_LANG_CHANGED;
}
- if ((state->changed & DERIVED_LANG_CHANGED) || !state->lang_engine)
- {
- state->lang_engine = _pango_get_language_engine ();
- }
-
if (state->changed & (EMOJI_CHANGED))
{
state->changed |= FONT_CHANGED;
diff --git a/pango/pango-engine-private.h b/pango/pango-engine-private.h
index de54ee09..cd0b6103 100644
--- a/pango/pango-engine-private.h
+++ b/pango/pango-engine-private.h
@@ -42,8 +42,6 @@ PangoCoverageLevel _pango_engine_shape_covers (PangoEngineShape *engine,
PangoEngineShape *_pango_get_fallback_shaper (void) /* XXX got to go when we switch to harfbuzz-only. */;
-PangoEngineLang *_pango_get_language_engine (void);
-
G_END_DECLS
#endif /* __PANGO_ENGINE_PRIVATE_H__ */
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index b6e6ac89..84f96a94 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -3949,13 +3949,8 @@ get_items_log_attrs (const char *text,
PangoItem *next_item = items->next->data;
/* FIXME: Handle language tags */
- if (next_item->analysis.lang_engine != tmp_item.analysis.lang_engine)
- break;
- else
- {
- tmp_item.length += next_item->length;
- tmp_item.num_chars += next_item->num_chars;
- }
+ tmp_item.length += next_item->length;
+ tmp_item.num_chars += next_item->num_chars;
items = items->next;
}
@@ -3968,7 +3963,7 @@ get_items_log_attrs (const char *text,
}
/* XXX This is wrong. we should call pango_default_break on the entire
- * layout text and then tailor_break on each lang_engine change, like
+ * layout text and then tailor_break on each language change, like
* pango_get_log_attrs does.
*/
pango_break (text + index, tmp_item.length, &tmp_item.analysis,