Stephen J. Turnbull wrote:
Mike Kupfer writes:
> Stephen J. Turnbull wrote:
> > This looks to me like somebody was trying to be too tricky.
> > Dynarr_length(db-runes) is presumably an invalid index.
>
> I figured that this is to ensure that the past_end case is handled.
Sure, but isn't this an exceptionally tricky way of doing that? The
code ends up testing for past_end several times, making the logic
quite convoluted.
Yeah, I see your point. I don't understand the code well enough to have
any opinions on a better way to structure it.
> I found a couple places on the stack that point at
0xa7c3148...
If you cast addresses to Lisp_Object, you can often get sense out of
them with pobj.
What's pobj? My gdb says
(gdb) help pobj
Undefined command: "pobj". Try "help".
I did do some more poking around on the stack, using gdb's "find"
command to find references to the instruction pointer for the various
frames, and focusing on the part of the stack that would have the local
variables for pixel_to_glyph_translation(). If I got it right, &db is
0xbfc176d8 and *db is
(gdb) print {struct display_block}0x0a8b03a0
$23 = {type = TEXT, start_pos = 4, end_pos = 4, runes = 0xa7c3148}
HTH.
> Okay. Is there any documentation about what
> pixel_to_glyph_translation() is supposed to do with all its OUT
> parameters (*closest, *modeline-closest, etc)?
I was hoping you would write it... :-)
Heh. If I get to the point where I understand the code enough, I will.
I'll take a look, I hope to have some free time myself.
Sounds good.
mike
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-beta