1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-27 10:54:40 +00:00

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.
This commit is contained in:
Eli Zaretskii 2016-01-11 18:00:13 +02:00
parent eef6784ea4
commit 200675299e
2 changed files with 7 additions and 2 deletions

View File

@ -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;

View File

@ -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? */