Subject: bug#41755: feature/native-comp (master?): temacs crash in GC during mark phase

From: Nicolas Bértolo <[email-masked]>
Date: Mon, 8 Jun 2020 15:24:23 -0300

> Thanks, but are you sure the fix should be in load_charset_map_from_file and
> not in the new code added to openp in the offending commit? Why does the
> additional code in openp need to cons its list off the heap?

Good idea. It should be easy to rework the openp to avoid putting the suffixes
in a heap based list.

What openp() does now is turn a list of suffixes into a list of suffixes and
associated directories that need to be added to the file path.

For example, it turns this:

(".eln" ".elc" ".elc.gz" ".el" ".el.gz")

 into this:

((nil . ".eln")
 (comp-native-path-postfix . ".eln")
 (nil . ".elc")
 (nil . ".elc.gz")
 (nil . ".el")
 (nil . ".el.gz"))

I did it this way because then iterating over it can be done using a
FOR_EACH_TAIL macro. I'll change this to use two lists, one for the suffixes and
another one for the directories. The code for iterating them will be just a
little more complicated, but it should be safe to pass stack-based suffixes.