summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2021-12-15 18:39:06 +0800
committerPo Lu <luangruo@yahoo.com>2021-12-15 18:39:06 +0800
commit81d2e846a801a45befe911146469a983af8438c6 (patch)
tree3197d30635b7e6752fd2cba09b8681579bd5a7c5 /src
parent30ac6fbbed95b3e9db530a35be7d04c257076423 (diff)
parent92ed2fe6886a367f00cf04a11d39b4fbf7a44edc (diff)
downloademacs-81d2e846a801a45befe911146469a983af8438c6.tar.gz
Merge remote-tracking branch 'origin/master' into feature/pgtk
Diffstat (limited to 'src')
-rw-r--r--src/charset.c2
-rw-r--r--src/charset.h1
-rw-r--r--src/pdumper.c4
-rw-r--r--src/xterm.c5
4 files changed, 8 insertions, 4 deletions
diff --git a/src/charset.c b/src/charset.c
index 7cd0fa78f04..670fd48a2d9 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -63,7 +63,7 @@ Lisp_Object Vcharset_hash_table;
/* Table of struct charset. */
struct charset *charset_table;
int charset_table_size;
-static int charset_table_used;
+int charset_table_used;
/* Special charsets corresponding to symbols. */
int charset_ascii;
diff --git a/src/charset.h b/src/charset.h
index 97122d82a65..8c538234d8d 100644
--- a/src/charset.h
+++ b/src/charset.h
@@ -249,6 +249,7 @@ extern Lisp_Object Vcharset_hash_table;
/* Table of struct charset. */
extern struct charset *charset_table;
extern int charset_table_size;
+extern int charset_table_used;
#define CHARSET_FROM_ID(id) (charset_table + (id))
diff --git a/src/pdumper.c b/src/pdumper.c
index c758bc89298..8f03684df5a 100644
--- a/src/pdumper.c
+++ b/src/pdumper.c
@@ -3177,7 +3177,7 @@ dump_charset (struct dump_context *ctx, int cs_i)
DUMP_FIELD_COPY (&out, cs, hash_index);
DUMP_FIELD_COPY (&out, cs, dimension);
memcpy (out.code_space, &cs->code_space, sizeof (cs->code_space));
- if (cs->code_space_mask)
+ if (cs_i < charset_table_used && cs->code_space_mask)
dump_field_fixup_later (ctx, &out, cs, &cs->code_space_mask);
DUMP_FIELD_COPY (&out, cs, code_linear_p);
DUMP_FIELD_COPY (&out, cs, iso_chars_96);
@@ -3198,7 +3198,7 @@ dump_charset (struct dump_context *ctx, int cs_i)
memcpy (out.fast_map, &cs->fast_map, sizeof (cs->fast_map));
DUMP_FIELD_COPY (&out, cs, code_offset);
dump_off offset = dump_object_finish (ctx, &out, sizeof (out));
- if (cs->code_space_mask)
+ if (cs_i < charset_table_used && cs->code_space_mask)
dump_remember_cold_op (ctx, COLD_OP_CHARSET,
Fcons (dump_off_to_lisp (cs_i),
dump_off_to_lisp (offset)));
diff --git a/src/xterm.c b/src/xterm.c
index 1f377f838b3..646985bdc20 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -10234,7 +10234,10 @@ handle_one_xevent (struct x_display_info *dpyinfo,
&& xev->detail >= 4
&& xev->detail <= 8
&& xev->flags & XIPointerEmulated)
- goto XI_OTHER;
+ {
+ *finish = X_EVENT_DROP;
+ goto XI_OTHER;
+ }
#endif
device = xi_device_from_id (dpyinfo, xev->deviceid);