From: Kenichi Handa <handa@m17n.org>
To: Chong Yidong <cyd@stupidchicken.com>
Cc: 2435@emacsbugs.donarmstrong.com
Subject: bug#2435: Bug 2435
Date: Wed, 04 Mar 2009 11:16:53 +0900 [thread overview]
Message-ID: <E1LegfF-0006kQ-1v@etlken> (raw)
In-Reply-To: <87zlg2a7b9.fsf@cyd.mit.edu> (message from Chong Yidong on Tue, 03 Mar 2009 11:40:26 -0500)
In article <87zlg2a7b9.fsf@cyd.mit.edu>, Chong Yidong <cyd@stupidchicken.com> writes:
>>> emacs -Q
>>> M-x customize-group RET whitespace RET
>>> C-v C-v
> >
> > I can't reproduce the crash with that.
> It doesn't happen all the time---about once every three or four
> attempts. Quite strange.
I tried more than 10 times without crash.
> > 2846 if (many_times_ok)
> > 2847 {
> > 2848 boolean simple = skip_one_char (laststart) == b;
> > 2849 unsigned int startoffset = 0;
> > 2850 re_opcode_t ofj =
> > 2851 /* Check if the loop can match the empty string. */
> > 2852 (simple || !analyse_first (laststart, b, NULL, 0))
> > 2853 ? on_failure_jump : on_failure_jump_loop;
> >
> > Here, "simple" is always set to 1, so analyse_first is not
> > called.
> When I get the crash, simple is set to 0.
> (gdb) p b
> $4 = (unsigned char *) 0x8b927b7 ""
> (gdb) p laststart
> $5 = (unsigned char *) 0x8b92786 "\a\201\f"
That is different in my case. When the execution reaches
the above code (three or four times while displaying that
Tibetan char), laststart is always "\004\200". Here the
first byte \004 means `charset' OP, and that is reasonable
because we are now handling '*' after "[...]".
But '\a' (== 7 == stop_memory) is very strange. Please show
me these values when simple is set to 0.
(gdb) p bufp->buffer
$58 = (unsigned char *) 0xa905aa0 "\004\200"
(gdb) p laststart
$59 = (unsigned char *) 0xa905ab2 "\004\200"
(gdb) p bufp->buffer[0]@(b - bufp->buffer)
$60 = "\004\200\000\000\002\000@\017\000i\017\000j\017\000j\017\000\004\200\000\000\004\000\220\017\000\271\017\000\272\017\000\272\017\000\273\017\000\273\017\000\274\017\000\274\017"
(gdb) p laststart[0]@(b-laststart)
$61 = "\004\200\000\000\004\000\220\017\000\271\017\000\272\017\000\272\017\000\273\017\000\273\017\000\274\017\000\274\017"
Here,
"\220\017\000" => 0xF90
"\271\017\000" => 0xFB9
"\272\017\000" => 0xFBA
"\273\017\000" => 0xFBB
"\274\017\000" => 0xFBC
So, we are now processing the '*' just after the second
[...] of tibetan-composable-pattern.
---
Kenichi Handa
handa@m17n.org
next prev parent reply other threads:[~2009-03-04 2:16 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <87fxhvcmvf.fsf@cyd.mit.edu>
[not found] ` <E1LePPk-0002zE-RW@etlken>
2009-03-03 16:40 ` bug#2435: Bug 2435 Chong Yidong
2009-03-04 2:16 ` Kenichi Handa [this message]
2009-03-04 4:41 ` Chong Yidong
2009-03-04 7:47 ` Kenichi Handa
2009-03-05 4:09 ` Chong Yidong
2009-03-05 6:39 ` Kenichi Handa
2009-03-05 4:42 ` Chong Yidong
2009-03-05 11:23 ` Kenichi Handa
2009-03-05 16:46 ` Stefan Monnier
2009-03-06 3:38 ` Kenichi Handa
2009-03-06 4:11 ` Chong Yidong
2009-03-06 4:48 ` Kenichi Handa
2009-03-06 5:07 ` Stefan Monnier
2009-03-06 5:21 ` Kenichi Handa
2009-03-07 4:00 ` Chong Yidong
2009-03-07 23:07 ` Stefan Monnier
2009-03-09 1:12 ` Kenichi Handa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=E1LegfF-0006kQ-1v@etlken \
--to=handa@m17n.org \
--cc=2435@emacsbugs.donarmstrong.com \
--cc=cyd@stupidchicken.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.