[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#11082: 24.0.94; u.glyphless member in struct glyph does not fit in 3
From: |
YAMAMOTO Mitsuharu |
Subject: |
bug#11082: 24.0.94; u.glyphless member in struct glyph does not fit in 32 bits |
Date: |
Sat, 24 Mar 2012 14:23:28 +0900 |
User-agent: |
Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (Shijō) APEL/10.6 Emacs/22.3 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) |
In dispextern.h:
316 struct glyph
317 {
(snip)
418 /* A union of sub-structures for different glyph types. */
419 union
420 {
(snip)
447 /* Sub-stretch for type == GLYPHLESS_GLYPH. */
448 struct
449 {
450 /* Value is an enum of the type glyphless_display_method. */
451 unsigned method : 2;
452 /* 1 iff this glyph is for a character of no font. */
453 unsigned for_no_font : 1;
454 /* Length of acronym or hexadecimal code string (at most 8). */
455 unsigned len : 4;
456 /* Character to display. Actually we need only 22 bits. */
457 unsigned ch : 26;
458 } glyphless;
459
460 /* Used to compare all bit-fields above in one step. */
461 unsigned val;
462 } u;
463 };
The member `u.glyphless' above requires at least 33 bits and does not
fit in the size (32 bits) of `u.val' on many environments. As a
result, equality with respect to the `u.val' member (e.g., used in
GLYPH_EQUAL_P) does not necessarily mean the equality of glyphless
glyphs.
According to the comment above, it seems to be OK to shorten the
length of `u.glyphless.ch' member from 26 to 25. Could someone
confirm this?
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
- bug#11082: 24.0.94; u.glyphless member in struct glyph does not fit in 32 bits,
YAMAMOTO Mitsuharu <=