In article <[email protected]>, Stefan Monnier
<[email protected]> writes:
> > It will fix the current problem of bufp contents being
> > changed by recursive call, but we still have a danger of
> > Lisp code being called in re_compile_pattern, which may lead
> > to relocation of string data pointed by the arg "pattern".
> > So, I think we must avoid any Lisp calls within
> > re_compile_pattern.
> Indeed, tho it's not clear how we could do that. One way that occurs to
> me is: if we need to `load' or do some such dangerous operation in
> re_compile_pattern, signal an error so we exit re_compile_pattern.
> Then catch this error in the calling code where we can do the
> corresponding operation safely and call re_compile_pattern again.
> Kind of ugly, but for autoload-style operations it seems acceptable.
We should take care of re_search_2 and re_match_2_internal
If the problem is only the call of openp in
load_charset_map_from_file, and building various Lisp object
is ok, we can change load_charset_map_from_file to open a
charset map by itself without using openp.