Stephen J. Turnbull wrote:
Mike Kupfer writes:
> I am a little puzzled by this code in pixel_to_glyph_translation():
>
> for (*col = 0; *col <= Dynarr_length (db->runes); (*col)++)
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.
I guess you can't determine what the type of the display block
that
caused the fault is?
Alas, no. I tried "frame 0x0821a5b9", but gdb says it can't find symbol
table information. It does tell me the local variables address, so I
tried printing out nearby memory locations, but I couldn't find anything
that made sense.
OTOH, I was able to confirm that db->runes is zero length.
gdb) print {Dynarr}0xa7c3148
$12 = {header = {type = 0, mark = 0, c_readonly = 0, lisp_readonly = 0,
free = 0, uid = 0}, base = 0xba9b550, locked = 0, elsize_ = 48, len_ = 0,
largest_ = 62, max_ = 81}
I found a couple places on the stack that point at 0xa7c3148...
(gdb) find 0xbfc16ee4, 0xbfffffff, 0xa7c3148
0xbfc1767c
0xbfc17690
...but I wasn't able figure out what they were.
I would suggest testing for Dynarr_length(db->runes) &&
*col <=
Dynarr_length(db-runes), but what do I know? :-)
Okay. Is there any documentation about what
pixel_to_glyph_translation() is supposed to do with all its OUT
parameters (*closest, *modeline-closest, etc)?
mike
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-beta