diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-03-26 19:48:41 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-03-26 20:28:14 -0400 |
commit | 58b3145c90a4681bf1ee026f58e12bfb5cafe81a (patch) | |
tree | 5f9bbb48c9aebad360c4f622444ff8f935697f48 | |
parent | 0f5ae9546025a23e350107247327c5e56a6b3864 (diff) | |
download | gtk+-58b3145c90a4681bf1ee026f58e12bfb5cafe81a.tar.gz |
composetable: Limit algorithmic checking
Only check for combinations of up to 2 dead keys with
a base character. We don't want to spend ages generating
all permutations of long sequences.
-rw-r--r-- | gtk/gtkcomposetable.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gtk/gtkcomposetable.c b/gtk/gtkcomposetable.c index 512e35e61d..185f89fefe 100644 --- a/gtk/gtkcomposetable.c +++ b/gtk/gtkcomposetable.c @@ -1190,6 +1190,12 @@ gtk_check_algorithmically (const guint16 *compose_buffer, for (i = 0; i < n_compose && IS_DEAD_KEY (compose_buffer[i]); i++) ; + + /* Allow at most 2 dead keys */ + if (i > 2) + return FALSE; + + /* Can't combine if there's no base character */ if (i == n_compose) return TRUE; |