emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Building the igc branch on MS-Windows


From: Eli Zaretskii
Subject: Re: Building the igc branch on MS-Windows
Date: Sat, 27 Apr 2024 15:37:56 +0300

> From: Gerd Möllmann <gerd.moellmann@gmail.com>
> Cc: eller.helmut@gmail.com,  emacs-devel@gnu.org
> Date: Sat, 27 Apr 2024 14:09:26 +0200
> 
> Inaccessible memory in my experience so far means that the corresponding
> object has either been moved by MPS, or it has been "freed", by not
> copying it.
> 
> So, as an ansatz, let's assume the font in question has been moved. It
> would follow, I think, that it is not a face->font right? Because
> otherwise the reference to the the font would have been traced. The
> question would be where the reference to the font comes from?

It _is_ face->font.  We get to it like this:

  void
  gui_produce_glyphs (struct it *it)
  {
    int extra_line_spacing = it->extra_line_spacing;

    it->glyph_not_available_p = false;

    if (it->what == IT_CHARACTER)
      {
        unsigned char2b;
        struct face *face = FACE_FROM_ID (it->f, it->face_id);
        struct font *font = face->font; <<<<<<<<<<<<<<<<<<<<<<<<<<<<

IOW, the display iterator references a face by its ID, and we access
that face via the frame's face cache.  As I wrote in a previous
message, all the faces in the cache after index 21 are clobbered,
although the cache's 'used' count is 57, and the index of the
problematic face is 22.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]