bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#716: Bug in buffer-swap-text


From: Jason Rumney
Subject: bug#716: Bug in buffer-swap-text
Date: Wed, 24 Dec 2008 07:15:26 +0800
User-agent: Thunderbird 2.0.0.18 (Windows/20081105)

Stefan Monnier wrote:
Your analysis sounds right, thank you.  I'd suggest to use another
r_alloc primitve, something like r_alloc_reset_variable, so you could do

  r_alloc_reset_variable(&current_buffer->own_text.beg);
  r_alloc_reset_variable(&other_buffer->own_text.beg);

after the swap.  It could use the untested patch below.  WDYT?


=== modified file 'src/ralloc.c'
--- src/ralloc.c        2008-11-21 19:14:07 +0000
+++ src/ralloc.c        2008-12-23 17:23:02 +0000
@@ -402,7 +402,7 @@
while (p != NIL_BLOC)
     {
-      if (p->variable == ptr && p->data == *ptr)
+      if (p->data == *ptr)
        return p;
p = p->next;
This removes the consistency check, without which we would have taken much longer to find this problem, as Emacs would not have aborted when no bloc could be found, and the problem would have been memory corruption later when that bloc of memory was moved and the wrong pointer updated.






reply via email to

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