Subject: bug#58028: closed (Re: bug#58028: 29.0.50; Ensures no leakage of glyph_matrix)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 24 Sep 2022 16:10:02 +0000

Your bug report

#58028: 29.0.50; Ensures no leakage of glyph_matrix

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
58028: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=58028
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#58028: 29.0.50; Ensures no leakage of glyph_matrix
From: Eli Zaretskii <[email-masked]>
To: Manuel Giraud <[email-masked]>
Cc: [email-masked]
Date: Sat, 24 Sep 2022 19:09:06 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Manuel Giraud <[email-masked]>
> Cc: [email-masked]
> Date: Sat, 24 Sep 2022 17:31:20 +0200
> 
> So I've tested emacs -Q a bit (compiled with --enable-checking=all) with
> the attached patch.  I had no error so far.

Thanks, installed.

Please in the future mention the bug number in the commit log message
(I added it for you this time).

Subject: 29.0.50; Ensures no leakage of glyph_matrix
From: Manuel Giraud <[email-masked]>
To: [email-masked]
Date: Fri, 23 Sep 2022 17:22:07 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Maybe this problem never triggers.  It is a « better be safe » kind of
patch.
>From f539c3b198201f8f33f02b2ff0b595b205e5364c Mon Sep 17 00:00:00 2001
From: Manuel Giraud <[email-masked]>
Date: Fri, 23 Sep 2022 17:14:44 +0200
Subject: [PATCH] Ensures no leakage of glyph_matrix

; * src/dispnew.c (allocate_matrices_for_window_redisplay): Ensures no
leakage of glyph_matrix.
---
 src/dispnew.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/dispnew.c b/src/dispnew.c
index b786f0f1ba..5659b3d4fc 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -1808,10 +1808,10 @@ allocate_matrices_for_window_redisplay (struct window *w)
 
 	  /* If matrices are not yet allocated, allocate them now.  */
 	  if (w->desired_matrix == NULL)
-	    {
-	      w->desired_matrix = new_glyph_matrix (NULL);
-	      w->current_matrix = new_glyph_matrix (NULL);
-	    }
+	    w->desired_matrix = new_glyph_matrix (NULL);
+
+	  if (w->current_matrix == NULL)
+	    w->current_matrix = new_glyph_matrix (NULL);
 
 	  dim.width = required_matrix_width (w);
 	  dim.height = required_matrix_height (w);
-- 
2.37.3

In GNU Emacs 29.0.50 (build 2, x86_64-unknown-openbsd7.2, cairo version
 1.17.6) of 2022-09-23 built on elite.giraud
Repository revision: 94380420e2cba7e2821b22fd8a46cd5b04c985ef
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: OpenBSD elite.giraud 7.2 GENERIC.MP#739 amd64

Configured using:
 'configure --prefix=/home/manuel/emacs --bindir=/home/manuel/bin
 --with-x-toolkit=no --without-sound --without-compress-install
 CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBOTF LIBXML2 MODULES NOTIFY KQUEUE OLDXMENU PDUMPER PNG RSVG
SQLITE3 THREADS TIFF WEBP X11 XDBE XIM XINPUT2 XPM ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Dired by name

Minor modes in effect:
  gnus-dired-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  icomplete-mode: t
  display-time-mode: t
  display-battery-mode: t
  shell-dirtrack-mode: t
  global-so-long-mode: t
  repeat-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  buffer-read-only: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/manuel/.emacs.d/elpa/transient-20220918.2101/transient hides /home/manuel/emacs/share/emacs/29.0.50/lisp/transient

Features:
(shadow emacsbug whitespace gnus-fun emoji-labels emoji multisession
sqlite ibuf-ext ibuffer ibuffer-loaddefs ispell magit-patch
magit-subtree magit-gitignore magit-ediff mailalias dabbrev cl-print
vc-src vc-sccs vc-cvs vc-rcs log-view vc boxquote-autoloads ediff
ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init
ediff-util let-alist rust-utils rust-mode rust-rustfmt rust-playpen
rust-compile rust-cargo loaddefs-gen tar-mode finder-inf
display-line-numbers mouse-copy mouse-drag vc-hg vc-bzr gnus-dired
tramp-sh tramp-cache time-stamp sort gnus-cite mail-extr textsec
uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check
gnus-async gnus-bcklg qp gnus-ml gnus-topic mm-archive url-http url-gw
url-cache url-auth utf-7 imap rfc2104 nndoc nndraft nnmh network-stream
nsm nnfolder nnml gnus-agent gnus-srvr gnus-score score-mode nnvirtual
nntp gnus-cache nnrss mm-url w3m doc-view jka-compr image-mode wallpaper
xdg exif w3m-hist w3m-fb bookmark-w3m w3m-ems w3m-favicon w3m-image
tab-line w3m-proc w3m-util shortdoc help-fns radix-tree misearch
multi-isearch find-dired ffap magit-extras face-remap magit-bookmark
magit-submodule magit-obsolete magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log which-func imenu
magit-diff smerge-mode diff git-commit log-edit pcvs-util add-log
magit-core magit-autorevert autorevert filenotify magit-margin
magit-transient magit-process with-editor magit-mode transient magit-git
magit-base magit-section dash compat-27 compat-26 compat compat-macs
vc-git diff-mode bug-reference pulse vc-dispatcher vc-svn pcmpl-unix
sh-script smie executable paredit edmacro icomplete time battery
exwm-randr xcb-randr exwm-config exwm exwm-input xcb-keysyms xcb-xkb
exwm-manage exwm-floating xcb-cursor xcb-render exwm-layout
exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types
xcb-debug kmacro server stimmung-themes modus-operandi-theme
modus-themes ytdious osm mingus libmpdee reporter edebug debug backtrace
transmission diary-lib diary-loaddefs color calc-bin calc-ext calc
calc-loaddefs rect calc-macs w3m-load mu4e mu4e-org mu4e-main mu4e-view
mu4e-headers mu4e-compose mu4e-draft mu4e-actions smtpmail mu4e-search
mu4e-lists mu4e-bookmarks mu4e-mark mu4e-message flow-fill mule-util
hl-line mu4e-contacts mu4e-update mu4e-folders mu4e-server mu4e-context
mu4e-vars mu4e-helpers mu4e-config bookmark ido supercite regi
ebdb-message ebdb-gnus gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime
smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom
gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail
mail-source utf7 nnoo gnus-spec gnus-int gnus-range message sendmail
yank-media puny rfc822 mml mml-sec epa epg rfc6068 epg-config mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
gmm-utils mailheader gnus-win gnus nnheader gnus-util mail-utils range
mm-util mail-prsvr ebdb-mua ebdb-com crm ebdb-format ebdb mailabbrev
eieio-opt speedbar ezimage dframe eieio-base pcase timezone org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src
ob-comint org-pcomplete org-list org-faces org-entities org-version
ob-emacs-lisp ob-core ob-eval org-table oc-basic bibtex ol org-keys oc
org-compat org-macs org-loaddefs find-func cal-menu calendar
cal-loaddefs visual-basic-mode cl web-mode disp-table erlang-start
smart-tabs-mode skeleton cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs slime-asdf grep slime-tramp
tramp tramp-loaddefs trampver tramp-integration cus-edit cus-load
wid-edit files-x tramp-compat rx shell pcomplete parse-time iso8601
time-date ls-lisp format-spec slime-fancy slime-indentation
slime-cl-indent cl-indent slime-trace-dialog slime-fontifying-fu
slime-package-fu slime-references slime-compiler-notes-tree
slime-scratch slime-presentations advice bridge slime-macrostep
macrostep slime-mdot-fu slime-enclosing-context slime-fuzzy
slime-fancy-trace slime-fancy-inspector slime-c-p-c
slime-editing-commands slime-autodoc slime-repl elp slime-parse slime
derived cl-extra help-mode lisp-mnt gud apropos compile
text-property-search etags fileloop generator xref project arc-mode
archive-mode noutline outline icons pp comint osc ansi-color ring
hyperspec thingatpt slime-autoloads dired-aux dired-x dired
dired-loaddefs so-long notifications dbus xml repeat easy-mmode
auctex-autoloads tex-site debbugs-autoloads hyperbole-autoloads
magit-autoloads git-commit-autoloads magit-section-autoloads
dash-autoloads paredit-autoloads rust-mode-autoloads
stimmung-themes-autoloads transient-autoloads with-editor-autoloads info
compat-autoloads ytdious-autoloads package browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x
map byte-opt gv bytecomp byte-compile cconv url-vars cl-loaddefs cl-lib
rmc iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq
simple cl-generic indonesian philippine cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs faces cus-face macroexp files window text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind kqueue lcms2
dynamic-setting system-font-setting font-render-setting cairo xinput2 x
multi-tty make-network-process emacs)

Memory information:
((conses 16 3026488 254443)
 (symbols 48 77071 8)
 (strings 32 521068 23385)
 (string-bytes 1 16133683)
 (vectors 16 224942)
 (vector-slots 8 3660420 266611)
 (floats 8 765 650)
 (intervals 56 262421 5119)
 (buffers 1000 108))

-- 
Manuel Giraud