Subject: Re: bug#11519: "Wrong type argument: characterp" building custom-deps while boostrapping

From: Eli Zaretskii <[email-masked]>
Date: Tue, 22 May 2012 22:02:09 +0300

> From: Kenichi Handa <[email-masked]>
> Cc: [email-masked], [email-masked], [email-masked]
> Date: Tue, 22 May 2012 23:38:34 +0900
> 
> In article <[email-masked]>, Eli Zaretskii <[email-masked]> writes:
> 
> > So I think that what happened is that something, probably the
> > translation through a char-table, caused allocation of a large chunk
> > of memory, which in turn relocated the text of the current buffer
> > behind regex.c's back, which still uses C pointers to the old location
> > of the buffer text.
> 
> The function char_table_translate may allocate some amount
> of memory.  But that's only when the char-table is one of a
> "unicode character property table" loaded via the function
> uniprop_table.  When char_table_translate is called from
> re_search_2 (via the macro RE_TRANSLATE), the char-table to
> lookup is one of a case-related table (equiv? canon?) which
> is not a unicode property table.

You are right: it was not char_table_translate, it was
load_charset_map_from_file, invoked through STRING_CHAR_AND_LENGTH.