{
rface->rfont = rfont;
rface->layouter = rfont->layouter;
+ rfont->layouter = Mnil;
work_gstring.glyphs[0].rface = rface;
work_gstring.glyphs[0].code = MCHAR_INVALID_CODE;
mfont__get_metric (&work_gstring, 0, 1);
*new = *rface;
new->rfont = rfont;
new->layouter = rfont->layouter;
+ rfont->layouter = Mnil;
new->non_ascii_list = NULL;
new->ascent = rfont->ascent;
new->descent = rfont->descent;
{
from_g->rface = new;
from_g->code
- = (rfont->layouter
- ? mfont__flt_encode_char (rfont->layouter, from_g->c)
+ = (new->layouter
+ ? mfont__flt_encode_char (new->layouter, from_g->c)
: mfont__encode_char (rfont->frame, (MFont *) rfont, NULL,
from_g->c));
}
rfont = mfont__lookup_fontset (from_g->rface->rfontset, from_g, &num,
script, language, charset, size, 0);
if (rfont)
- layouter = rfont->layouter;
+ {
+ layouter = rfont->layouter;
+ rfont->layouter = Mnil;
+ }
else
{
from_g->code = MCHAR_INVALID_CODE;