From xemacs-m  Thu Jan 30 21:35:16 1997
Received: from altair.xemacs.org (steve@xemacs.miranova.com [206.190.83.19])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id VAA01009
	for <xemacs-beta@xemacs.org>; Thu, 30 Jan 1997 21:35:15 -0600 (CST)
Received: (from steve@localhost)
	by altair.xemacs.org (8.8.5/8.8.5) id TAA03378;
	Thu, 30 Jan 1997 19:46:33 -0800
To: xemacs-beta@xemacs.org
Subject: Re: 19.15b90: crash in extent_changed_for_redisplay
References: <QQcaud28436.199701302247@crystal.WonderWorks.COM>
X-Url: http://www.miranova.com/%7Esteve/
Mail-Copies-To: never
X-Face: #!T9!#9s-3o8)*uHlX{Ug[xW7E7Wr!*L46-OxqMu\xz23v|R9q}lH?cRS{rCNe^'[`^sr5"
 f8*@r4ipO6Jl!:Ccq<xoV[Qz2u8<8-+Vwf2gzJ44lf_/y9OaQ`@#Q65{U4/TC)i2`~/M&QI$X>p:9I
 OSS'2{-)-4wBnVeg0S\O4Al@)uC[pD|+
X-Attribution: sb
From: Steven L Baur <steve@miranova.com>
In-Reply-To: Kyle Jones's message of Thu, 30 Jan 1997 17:47:12 -0500 (EST)
Mime-Version: 1.0 (generated by tm-edit 7.101)
Content-Type: text/plain; charset=US-ASCII
Date: 30 Jan 1997 19:46:32 -0800
Message-ID: <m2915amrqf.fsf@altair.xemacs.org>
Lines: 41
X-Mailer: Gnus v5.4.8/XEmacs 20.0

Kyle Jones writes:

> extent_changed_for_redisplay is apparently calling itself
> recursively until the stack overflows.  gdb had a rough time
> handling a core dump with nearly 60000 stack frames.

> (gdb) where 10
> #0  extent_changed_for_redisplay (extent=0x670954, descendants_too=1) at extents.c:1601

Note the comment above the recursive call :-(.

extent.c/19.15:

static void
extent_changed_for_redisplay (EXTENT extent, int descendants_too)
{
  Lisp_Object object;
  Lisp_Object rest;

  /* we could easily encounter a detached extent while traversing the
     children, but we should never be able to encounter a dead extent. */
  assert (EXTENT_LIVE_P (extent));

  if (descendants_too)
    {
      Lisp_Object children = extent_children (extent);

      if (!NILP (children))
        {
          /* first mark all of the extent's children.  We will lose big-time
             if there are any circularities here, so we sure as hell better
             ensure that there aren't. */
          LIST_LOOP (rest, XWEAK_LIST_LIST (children))
            extent_changed_for_redisplay (XEXTENT (XCAR (rest)), 1);
        }
    }
 ...

-- 
steve@miranova.com baur
Unsolicited commercial e-mail will be billed at $250/message.

