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

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

Re: Deleting supplementary characters leaves corruption


From: Alexander Winston
Subject: Re: Deleting supplementary characters leaves corruption
Date: Mon, 19 Apr 2004 17:24:57 -0400

On Mon, 2004-04-19 at 13:19 +0900, Kenichi Handa wrote:

> To fix this problem, I tried to put `modification-hooks'
> text-property that deletes the whole sequence when a part of
> the sequence is being deleted.  But, that revealed Emacs'
> bug.
> 
> Please try this:
> 
> % emacs -q --no-site-file
> ;; Load the attached file
> M-x load-file RET ..../atomic.el RET
> ;; Make "buffer" atomic.
> M-b C-SPC M-f M-x set-region-atomic RET
> ;; Move point to the head of "buffer"
> C-b
> ;; Delete "buffer"
> M-d
> ;; Yank it twice.
> C-y C-y
> 
> Then Emacs crashes as below:

The same thing appears to happen to me, too:

(gdb) backtrace full
#0  abort () at emacs.c:433
No locals.
#1  0x081de7a1 in Fremove_list_of_text_properties (start=189, end=195, 
list_of_properties=-1471505384, object=-2008803392) at textprop.c:1619
        i = 0x0
        unchanged = 0x284603d8
        s = 189
        len = 3
        modified = 1
        properties = -1471505384
#2  0x08188bae in Ffuncall (nargs=4, args=0xbfffe6c0) at eval.c:2737
        fun = -2009129320
        funcar = 2
        numargs = 3
        lisp_numargs = 195
        val = 135748575
        backtrace = {
  next = 0xbfffe830, 
  function = 0xbfffe6c0, 
  args = 0xbfffe6c4, 
  nargs = 3, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
        internal_args = (int *) 0xbfffe640
        i = 4
#3  0x081c1b72 in Fbyte_code (bytestr=1747067092, vector=-2011029152, 
maxdepth=5) at bytecode.c:689
        count = 12
        op = 3
        vectorp = (int *) 0x8222168
        bytestr_length = 120
        stack = {
  pc = 0x822215a ")\207", 
  top = 0xbfffe6cc, 
  bottom = 0xbfffe6c0, 
  byte_string = 1747067092, 
  byte_string_start = 0x82220e4 "\306\030\t\307>\204c", 
  constants = -2011029152, 
  next = 0xbfffe950
}
        top = (int *) 0xbfffe6c0
        result = -1073748072
#4  0x08189315 in funcall_lambda (fun=-2011029336, nargs=2, 
arg_vector=0xbfffe894) at eval.c:2913
        val = -2011029336
        syms_left = 675502944
        next = 675752872
        count = 10
        i = 2
        optional = 0
        rest = 0
#5  0x08188d4c in Ffuncall (nargs=3, args=0xbfffe890) at eval.c:2774
        fun = -2011029336
        funcar = 0
        numargs = 2
        lisp_numargs = 135485208
        val = 135780961
        backtrace = {
  next = 0xbfffea00, 
  function = 0xbfffe890, 
  args = 0xbfffe894, 
  nargs = 2, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
        internal_args = (int *) 0x0
        i = 0
#6  0x081c1b72 in Fbyte_code (bytestr=1747067692, vector=-2011028600, 
maxdepth=5) at bytecode.c:689
        count = 7
        op = 2
        vectorp = (int *) 0x8222390
        bytestr_length = 73
        stack = {
  pc = 0x822236d "\210\f\311=\203<", 
  top = 0xbfffe898, 
  bottom = 0xbfffe890, 
  byte_string = 1747067692, 
  byte_string_start = 0x822233c "\b;\205\n", 
  constants = -2011028600, 
  next = 0xbfffeb10
}
        top = (int *) 0xbfffe890
        result = -1073747608
#7  0x08189315 in funcall_lambda (fun=-2011028728, nargs=1, 
arg_vector=0xbfffea64) at eval.c:2913
        val = -2011028728
        syms_left = 675502944
        next = 675567952
        count = 6
        i = 1
        optional = 0
        rest = 0
#8  0x08188d4c in Ffuncall (nargs=2, args=0xbfffea60) at eval.c:2774
        fun = -2011028728
        funcar = -1073747356
        numargs = 1
        lisp_numargs = 1
        val = 675502944
        backtrace = {
  next = 0xbfffebc0, 
  function = 0xbfffea60, 
  args = 0xbfffea64, 
  nargs = 1, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
        internal_args = (int *) 0xbfffe9e0
        i = 4
#9  0x081c1b72 in Fbyte_code (bytestr=1747067484, vector=-2011028848, 
maxdepth=4) at bytecode.c:689
        count = 6
        op = 1
        vectorp = (int *) 0x8222298
        bytestr_length = 32
        stack = {
  pc = 0x822228b "\207", 
  top = 0xbfffea64, 
  bottom = 0xbfffea60, 
  byte_string = 1747067484, 
  byte_string_start = 0x822226c "\302\030\303\304\305\t#\211\020\203\033", 
  constants = -2011028848, 
  next = 0xbfffecd0
}
        top = (int *) 0xbfffea60
        result = 1752078304
#10 0x08189315 in funcall_lambda (fun=-2011028936, nargs=1, 
arg_vector=0xbfffec24) at eval.c:2913
        val = -2011028936
        syms_left = 675502944
        next = 675567952
        count = 5
        i = 1
        optional = 0
        rest = 0
#11 0x08188d4c in Ffuncall (nargs=2, args=0xbfffec20) at eval.c:2774
        fun = -2011028936
        funcar = 1212455268
        numargs = 1
        lisp_numargs = 1212421460
        val = 1752078304
        backtrace = {
  next = 0xbfffed80, 
  function = 0xbfffec20, 
  args = 0xbfffec24, 
  nargs = 1, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
        internal_args = (int *) 0xbfffeba0
        i = 1
#12 0x081c1b72 in Fbyte_code (bytestr=1747410960, vector=-2010685344, 
maxdepth=4) at bytecode.c:689
        count = 5
        op = 1
        vectorp = (int *) 0x8276068
        bytestr_length = 61
        stack = {
  pc = 0x8276042 "\210\n:\2033", 
  top = 0xbfffec24, 
  bottom = 0xbfffec20, 
  byte_string = 1747410960, 
  byte_string_start = 0x8276020 "\303 
\020\304\021\305`!\210\306\307\n<\203\024", 
  constants = -2010685344, 
  next = 0x0
}
        top = (int *) 0xbfffec20
        result = -1073746712
#13 0x08189315 in funcall_lambda (fun=-2010685472, nargs=1, 
arg_vector=0xbfffee24) at eval.c:2913
        val = -2010685472
        syms_left = 675502944
        next = 675748448
        count = 4
        i = 1
        optional = 1
        rest = 0
#14 0x08188d4c in Ffuncall (nargs=2, args=0xbfffee20) at eval.c:2774
        fun = -2010685472
        funcar = 1212480044
        numargs = 1
        lisp_numargs = -1073746176
        val = 1212480044
        backtrace = {
  next = 0xbffff010, 
  function = 0xbfffee20, 
  args = 0xbfffee24, 
  nargs = 1, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
        internal_args = (int *) 0x2
        i = 675502944
#15 0x08184aee in Fcall_interactively (function=675883840, 
record_flag=675502944, keys=-2008794768) at callint.c:862
        val = 0
        args = (int *) 0xbfffee20
        visargs = (int *) 0xbfffee10
        argstrings = (unsigned char **) 0xbfffee00
        fun = -2010685472
        funcar = 135743549
        specs = 1747411108
        filter_specs = 675502944
        teml = -2010685472
        enable = 675502944
        speccount = 3
        next_event = 1
        prefix_arg = 675502944
        string = (unsigned char *) 0xbfffee31 "P"
        tem = (unsigned char *) 0x81fe22c ""
        varies = (int *) 0xbfffedf0
        i = 2
        j = 1
        count = 1
        foo = 498578
        prompt1 = '\0' <repeats 99 times>
        tem1 = 0x0
        arg_from_tty = 0
        gcpro1 = {
  next = 0x2000, 
  var = 0x0, 
  nvars = 0
}
        gcpro2 = {
  next = 0x0, 
  var = 0x0, 
  nvars = -1073746080
}
        gcpro3 = {
  next = 0x0, 
  var = 0x0, 
  nvars = 2
}
        gcpro4 = {
  next = 0x28435b60, 
  var = 0x28435b60, 
  nvars = 2
}
        key_count = 1
        record_then_fail = 0
        save_this_command = 675883840
        save_last_command = 675883840
        save_this_original_command = 675883840
        save_real_this_command = 675883840
#16 0x0811d1cc in Fcommand_execute (cmd=675883840, record_flag=675502944, 
keys=675502944, special=675502944) at keyboard.c:9670
        final = -2010685472
        tem = 675502944
        prefixarg = 675502944
        backtrace = {
  next = 0x0, 
  function = 0x842d2ac, 
  args = 0xbffff050, 
  nargs = 1, 
  evalargs = 0 '\0'
}
#17 0x0810ff68 in command_loop_1 () at keyboard.c:1727
        scount = 2
        cmd = 675883840
        lose = 98
        nonundocount = 0
        keybuf = {25, 100, 2, 0, 0, -1073745576, -1073745572, 1073833128, 0, 0, 
0, 1077264804, 0, 1078064688, 1078064688, 141132040, 0, -1073745532, 
-1073745844, 0, 1048576, 1076860384, -1073745480, 1073773116, 1076892634, 
1074806028, 0, 936, 675502944, 677535568}
        i = 1
        no_direct = 0
        prev_modiff = 8
        prev_buffer = (struct buffer *) 0x84417c0
        was_locked = 0
        already_adjusted = 0
#18 0x081868d8 in internal_condition_case (bfun=0x810ebd6 <command_loop_1>, 
handlers=675563808, hfun=0x810e76b <cmd_error>) at eval.c:1333
        val = 675502944
        c = {
  tag = 675502944, 
  val = 675502944, 
  next = 0xbffff320, 
  gcpro = 0x0, 
  jmp = {{
      __jmpbuf = {-1073744464, -1073744464, -1073744652, -1073745176, 
-1073745488, 135817325}, 
      __mask_was_saved = 0, 
      __saved_mask = {
        __val = {141132040, 1078064688, 141132040, 141132040, 3221222028, 
135704840, 141132040, 141130968, 5, 429496729, 0, 1077262673, 0, 136106530, 
335544320, 1076991144, 0 <repeats 16 times>}
      }
    }}, 
  backlist = 0x0, 
  handlerlist = 0x0, 
  lisp_eval_depth = 0, 
  pdlcount = 2, 
  poll_suppress_count = 1, 
  interrupt_input_blocked = 0, 
  byte_stack = 0x0
}
        h = {
  handler = 675563808, 
  var = 675502944, 
  chosen_clause = 141129560, 
  tag = 0xbffff1f0, 
  next = 0x0
}
#19 0x0810eaa3 in command_loop_2 () at keyboard.c:1264
        val = 0
#20 0x081863a5 in internal_catch (tag=675557872, func=0x810ea7f 
<command_loop_2>, arg=675502944) at eval.c:1094
        c = {
  tag = 675557872, 
  val = 675502944, 
  next = 0x0, 
  gcpro = 0x0, 
  jmp = {{
      __jmpbuf = {-1073744464, -1073744464, -1073744652, -1073744888, 
-1073745136, 135816086}, 
      __mask_was_saved = 0, 
      __saved_mask = {
        __val = {0, 3472, 141132400, 1078067360, 1078064688, 141132040, 
1078067360, 3221221932, 1077284783, 1078067360, 141132040, 1078064688, 
141132040, 141132040, 3221222028, 2, 141132040, 141130968, 5, 429496729, 0, 
1077262673, 0, 3221222376, 135737768, 675698464, 1212544872, 675502944, 
138680256, 0, 0, 0}
      }
    }}, 
  backlist = 0x0, 
  handlerlist = 0x0, 
  lisp_eval_depth = 0, 
  pdlcount = 2, 
  poll_suppress_count = 1, 
  interrupt_input_blocked = 0, 
  byte_stack = 0x0
}
#21 0x0810ea58 in command_loop () at keyboard.c:1243
No locals.
#22 0x0810e515 in recursive_edit_1 () at keyboard.c:959
        count = 1
        val = -1471344392
#23 0x0810e648 in Frecursive_edit () at keyboard.c:1015
        count = 0
        buffer = 675502944
#24 0x0810d05a in main (argc=4, argv=0xbffff7d4) at emacs.c:1692
        dummy = 136239371
        stack_bottom_variable = -65 '\277'
        do_initial_setlocale = 1
        skip_args = 1
        rlim = {
  rlim_cur = 18446744073709551615, 
  rlim_max = 18446744073709551615
}
        no_loadup = 0
        junk = 0x0
(gdb) xbacktrace
"remove-list-of-text-properties"
"remove-yank-excluded-properties"
"insert-for-yank-1"
"insert-for-yank"
"yank"
"call-interactively"

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

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