Commit ece563e8 authored by Daniel Colascione's avatar Daniel Colascione
Browse files

Fix crash in charset detection after pdumper load

* src/coding.c:
(reset_coding_after_pdumper_load): new function re-init character
classes after pdumper load.
(syms_of_coding): Call it.
parent 8bf51c38
Pipeline #544 failed with stage
in 51 minutes
......@@ -10774,6 +10774,8 @@ init_coding_once (void)
PDUMPER_REMEMBER_SCALAR (emacs_mule_bytes);
}
static void reset_coding_after_pdumper_load (void);
void
syms_of_coding (void)
{
......@@ -11316,4 +11318,27 @@ internal character representation. */);
system_eol_type = Qunix;
#endif
staticpro (&system_eol_type);
pdumper_do_now_and_after_load_impl (reset_coding_after_pdumper_load);
}
static void
reset_coding_after_pdumper_load (void)
{
if (!dumped_with_pdumper_p ())
return;
for (struct coding_system *this = &coding_categories[0];
this < &coding_categories[coding_category_max];
++this)
{
int id = this->id;
if (id >= 0)
{
/* Need to rebuild the coding system object because we
persisted it as a scalar and it's full of gunk that's now
invalid. */
memset (this, 0, sizeof (*this));
setup_coding_system (CODING_ID_NAME (id), this);
}
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment