Subject: Re: bug#7044: 24.0.50; Emacs crashes after calling ediff-regions-linewise

From: Juanma Barranquero <[email-masked]>
Date: Sun, 26 Sep 2010 01:41:39 +0200

> 1. emacs -Q
> 2. M-x ediff-regions-linewise, type RET twice to use *scratch* for both
>   Ediff buffers (it doesn't matter which buffers are used).
> 3. Any attempt to mark a region, indeed it seems any further input at
>   all, makes Emacs abort.  This is completely reproducible. Full
>   backtrace attached.

On keyboard.c:command_loop, line 1789,

  current_buffer->mark_active => t
  Vtransient_mark_mode => t
  Vdeactivate_mark => nil
  Vselect_active_regions => t

When line 1814 is reached, current_buffer->mark contains a marker that
points to no buffer

  (gdb) p current_buffer->mark
  $8 = 48498715
  (gdb) pr
  #<marker in no buffer>

so

  Fmarker_position (current_buffer->mark)

returns nil, and so beg is assigned XINT (nil), which is a bug.

Now, shouldn't current_buffer->mark_active be nil if the mark points nowhere?

    Juanma