From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#28402: 25.2; shr.el uses shr-tag-img despite set shr-external-rendering-functions Date: Thu, 05 Oct 2017 14:01:33 +0300 Message-ID: <83vajtx3hu.fsf@gnu.org> References: <83poaxrzl1.fsf@gnu.org> <20170913172232.7jwwomyfmy567nrx@odonien.localdomain> <83lglio36q.fsf@gnu.org> <20170924131050.6erv6sshvz23dlbu@odonien.localdomain> <838tgy9d18.fsf@gnu.org> <877ew9vqwv.fsf@mouse.gnus.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1507201400 22746 195.159.176.226 (5 Oct 2017 11:03:20 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 5 Oct 2017 11:03:20 +0000 (UTC) Cc: v.schneidermann@gmail.com, 28402@debbugs.gnu.org To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Oct 05 13:03:09 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e03vm-0004X0-V9 for geb-bug-gnu-emacs@m.gmane.org; Thu, 05 Oct 2017 13:03:07 +0200 Original-Received: from localhost ([::1]:39074 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e03vu-00086x-Bz for geb-bug-gnu-emacs@m.gmane.org; Thu, 05 Oct 2017 07:03:14 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59335) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e03vm-00086p-B7 for bug-gnu-emacs@gnu.org; Thu, 05 Oct 2017 07:03:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e03vi-00055m-FI for bug-gnu-emacs@gnu.org; Thu, 05 Oct 2017 07:03:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:41122) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1e03vi-00055P-BR for bug-gnu-emacs@gnu.org; Thu, 05 Oct 2017 07:03:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1e03vh-0002IL-Ke for bug-gnu-emacs@gnu.org; Thu, 05 Oct 2017 07:03:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 05 Oct 2017 11:03:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28402 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 28402-submit@debbugs.gnu.org id=B28402.15072013248742 (code B ref 28402); Thu, 05 Oct 2017 11:03:01 +0000 Original-Received: (at 28402) by debbugs.gnu.org; 5 Oct 2017 11:02:04 +0000 Original-Received: from localhost ([127.0.0.1]:49803 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e03um-0002Gw-4v for submit@debbugs.gnu.org; Thu, 05 Oct 2017 07:02:04 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:39786) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e03ui-0002GO-Qm for 28402@debbugs.gnu.org; Thu, 05 Oct 2017 07:02:03 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e03uU-0003zb-5t for 28402@debbugs.gnu.org; Thu, 05 Oct 2017 07:01:55 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:46994) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e03uU-0003zU-2K; Thu, 05 Oct 2017 07:01:46 -0400 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2883 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1e03uT-0002Cj-98; Thu, 05 Oct 2017 07:01:45 -0400 In-reply-to: <877ew9vqwv.fsf@mouse.gnus.org> (message from Lars Ingebrigtsen on Thu, 05 Oct 2017 12:18:40 +0200) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:137958 Archived-At: > From: Lars Ingebrigtsen > Cc: Vasilij Schneidermann , 28402@debbugs.gnu.org > Date: Thu, 05 Oct 2017 12:18:40 +0200 > > (defun shr-descend (dom) > - (let ((function > - (intern (concat "shr-tag-" (symbol-name (dom-tag dom))) obarray)) > - ;; Allow other packages to override (or provide) rendering > - ;; of elements. > - (external (cdr (assq (dom-tag dom) shr-external-rendering-functions))) > + (let ((tag-name (dom-tag dom)) > (style (dom-attr dom 'style)) > (shr-stylesheet shr-stylesheet) > (shr-depth (1+ shr-depth)) > @@ -490,12 +498,7 @@ shr-descend > (setq style nil))) > ;; If we have a display:none, then just ignore this part of the DOM. > (unless (equal (cdr (assq 'display shr-stylesheet)) "none") > - (cond (external > - (funcall external dom)) > - ((fboundp function) > - (funcall function dom)) > - (t > - (shr-generic dom))) > + (shr-indirect-call tag-name dom) > > shr rendering of deep HTML structures uses a lot of stack, and we see > this in practice sometimes, where shr refuses to render HTML because > it's too deeply nested (and runs into the Emacs max-depth stack thing). > > This indirect call will make the stack 30% deeper, I think? As well as > slower, since it's an extra funcall for each and every HTML node. > > So this part should be reverted. Wouldn't reverting it make the entire change rather pointless? If the issue is with stack usage, we could increase the stack when shr-descend is called. As for speed, the old code had such an indirection as well, albeit via funcall, no? So I don't think I understand the nature of your objections.