Commit 20067529 authored by Eli Zaretskii's avatar Eli Zaretskii

Avoid unnecessary failures of auto-saving after fatal error

* src/w32.c (map_w32_filename): Avoid non-trivial system calls for
the benefit of FAT volumes if we are called as part of shutting
down due to a fatal error, which probably means we are trying to
auto-save the session.
* src/lread.c (check_obarray): Don't bother making the obarray
valid if we are shutting down due to a fatal error.  This avoids
interfering with auto-saving the crashed session.
parent eef6784e
......@@ -3720,7 +3720,11 @@ static size_t oblookup_last_bucket_number;
Lisp_Object
check_obarray (Lisp_Object obarray)
{
if (!VECTORP (obarray) || ASIZE (obarray) == 0)
/* We don't want to signal a wrong-type-argument error when we are
shutting down due to a fatal error, and we don't want to hit
assertions in VECTORP and ASIZE if the fatal error was during GC. */
if (!fatal_error_in_progress
&& (!VECTORP (obarray) || ASIZE (obarray) == 0))
{
/* If Vobarray is now invalid, force it to be valid. */
if (EQ (Vobarray, obarray)) Vobarray = initial_obarray;
......
......@@ -3210,7 +3210,8 @@ map_w32_filename (const char * name, const char ** pPath)
return shortname;
}
if (is_fat_volume (name, (const char **)&path)) /* truncate to 8.3 */
if (!fatal_error_in_progress /* disable fancy processing during crash */
&& is_fat_volume (name, (const char **)&path)) /* truncate to 8.3 */
{
register int left = 8; /* maximum number of chars in part */
register int extn = 0; /* extension added? */
......
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