[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#3174: NS: greek glyph rendering incoherent
From: |
David Reitter |
Subject: |
bug#3174: NS: greek glyph rendering incoherent |
Date: |
Sun, 31 May 2009 10:05:57 -0400 |
On May 31, 2009, at 1:32 AM, Adrian Robert wrote:
I'm including a patch (*) here that redoes the font selection
process in nsfont.m and removes some NS-specific code elsewhere.
Although it's a big change, I would say it is still under the bug-
fix category because it causes the NS port to follow the others in
this area, and it works a little better judging by the HELLO
screen. However it would be good to have some testing before
checking it in.
With your patch, Emacs -Q crashes when doing M-x view-hello-file.
I've printed some probably relevant status info, see below.
- David
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000080
0x0020d208 in ns_charset_covers (set1=0x0, set2=0x16982a0,
pct=0.899999976) at nsfont.m:271
271 if (*bytes1 == 0) // *bytes1 & *bytes2 != *bytes2
(gdb) bt
#0 0x0020d208 in ns_charset_covers (set1=0x0, set2=0x16982a0,
pct=0.899999976) at nsfont.m:271
#1 0x0020d953 in ns_get_covering_families (script=0x1676050,
pct=0.899999976) at nsfont.m:427
#2 0x0020dae3 in ns_findfonts (font_spec=6320332, isMatch=0 '\000')
at nsfont.m:476
#3 0x0020dddc in nsfont_list (frame=9293316, font_spec=6320332) at
nsfont.m:591
#4 0x001802e1 in font_list_entities (frame=9293316, spec=23552020) at
font.c:2823
#5 0x00181ecf in font_find_for_lface (f=0x8dce00, attrs=0x16737d0,
spec=7235580, c=-1) at font.c:3374
#6 0x002111d0 in fontset_find_font (fontset=23711172, c=1047,
face=0x1673790, id=15, fallback=0) at fontset.c:602
#7 0x0021163b in fontset_font (fontset=23735636, c=1047,
face=0x1673790, id=15) at fontset.c:703
#8 0x00211cdf in face_for_char (f=0x8dce00, face=0x1673790, c=1047,
pos=171, object=25165833) at fontset.c:921
#9 0x000291f4 in get_next_display_element (it=0xbfffd518) at xdisp.c:
5954
#10 0x00042445 in display_line (it=0xbfffd518) at xdisp.c:16606
#11 0x0003bd2c in try_window (window=9292964, pos={charpos = 1,
bytepos = 1}, check_margins=1) at xdisp.c:14057
#12 0x0003aa57 in redisplay_window (window=9292964, just_this_one_p=0)
at xdisp.c:13680
#13 0x00036884 in redisplay_window_0 (window=9292964) at xdisp.c:12275
#14 0x00166146 in internal_condition_case_1 (bfun=0x36840
<redisplay_window_0>, arg=9292964, handlers=4785701, hfun=0x36808
<redisplay_window_error>) at eval.c:1560
#15 0x000367e6 in redisplay_windows (window=9292964) at xdisp.c:12254
#16 0x00035aa5 in redisplay_internal (preserve_echo_area=1) at xdisp.c:
11830
#17 0x000361cf in redisplay_preserve_echo_area (from_where=2) at
xdisp.c:12074
#18 0x0000eaf6 in sit_for (timeout=16, reading=0, do_display=2) at
dispnew.c:6616
#19 0x000da64e in Fexecute_extended_command (prefixarg=25165833) at
keyboard.c:10577
#20 0x00168b96 in Ffuncall (nargs=2, args=0xbfffe8b0) at eval.c:3045
#21 0x001634da in Fcall_interactively (function=25201761,
record_flag=25165833, keys=6299772) at callint.c:868
#22 0x00168bf0 in Ffuncall (nargs=4, args=0xbfffebb0) at eval.c:3051
#23 0x001686ac in call3 (fn=25280129, arg1=25201761, arg2=25165833,
arg3=25165833) at eval.c:2875
#24 0x000da134 in Fcommand_execute (cmd=25201761,
record_flag=25165833, keys=25165833, special=25165833) at keyboard.c:
10447
#25 0x000c9549 in command_loop_1 () at keyboard.c:1901
#26 0x00165fd8 in internal_condition_case (bfun=0xc778a
<command_loop_1>, handlers=25205425, hfun=0xc6e93 <cmd_error>) at
eval.c:1512
#27 0x000c73ba in command_loop_2 () at keyboard.c:1359
#28 0x00165969 in internal_catch (tag=25201545, func=0xc7385
<command_loop_2>, arg=25165833) at eval.c:1248
#29 0x000c7343 in command_loop () at keyboard.c:1338
#30 0x000c6917 in recursive_edit_1 () at keyboard.c:953
#31 0x000c6b20 in Frecursive_edit () at keyboard.c:1015
#32 0x000c4e25 in main (argc=2, argv=0xbffff1bc) at emacs.c:1852
Current language: auto; currently objective-c
(gdb) print bytes1
$1 = (const short unsigned int *) 0x80
(gdb) bt full
#0 0x0020d208 in ns_charset_covers (set1=0x0, set2=0x16982a0,
pct=0.899999976) at nsfont.m:271
bytes1 = (const short unsigned int *) 0x80
bytes2 = (const short unsigned int *) 0x2408ea0
i = 64
off = 0
tot = 1
#1 0x0020d953 in ns_get_covering_families (script=0x1676050,
pct=0.899999976) at nsfont.m:427
fset = (NSCharacterSet *) 0x0
allFamiliesEnum = (NSEnumerator *) 0x1674950
charset = (NSCharacterSet *) 0x16982a0
family = (NSString *) 0x8f6f40
fontMgr = (NSFontManager *) 0x8df6a0
allFamilies = (NSArray *) 0x2059800
scriptToFamilies = (NSMutableDictionary *) 0x8df3f0
families = (NSMutableSet *) 0x16748d0
#2 0x0020dae3 in ns_findfonts (font_spec=6320332, isMatch=0 '\000')
at nsfont.m:476
tem = 25366633
list = 25165833
fdesc = (NSFontDescriptor *) 0x0
desc = (NSFontDescriptor *) 0x1
fkeys = (NSMutableSet *) 0x16d65c
matchingDescs = (NSArray *) 0xbfffcb48
dEnum = (NSEnumerator *) 0x1800009
family = (NSString *) 0x189b67b
cFamilies = (NSSet *) 0x171381
foundItal = 0 '\000'
#3 0x0020dddc in nsfont_list (frame=9293316, font_spec=6320332) at
nsfont.m:591
No locals.
#4 0x001802e1 in font_list_entities (frame=9293316, spec=23552020) at
font.c:2823
copy = 6
cache = 8211797
f = (FRAME_PTR) 0x8dce00
driver_list = (struct font_driver_list *) 0x8dcdd0
ftype = 25165833
val = 25165833
vec = (Lisp_Object *) 0xbfffcb10
size = 0
need_filtering = 0
i = 0
#5 0x00181ecf in font_find_for_lface (f=0x8dce00, attrs=0x16737d0,
spec=7235580, c=-1) at font.c:3374
work = 23552020
frame = 9293316
entities = 6291532
val = 33840713
props = {23674776, 23735632, 25165881, -1073754984, 2165913}
size = 25165833
foundry = {25369521, 25165833, 6291532}
family = (Lisp_Object *) 0xbfffcbb0
registry = {25366633, 6291532, 23674784}
adstyle = {25165833, 6291532, 82904304}
pixel_size = 12
i = 0
j = 0
k = 0
l = 0
result = 7181484
#6 0x002111d0 in fontset_find_font (fontset=23711172, c=1047,
face=0x1673790, id=15, fallback=0) at fontset.c:602
rfont_def = 23551876
font_def = 7147340
font_entity = 25165833
font_object = 25165833
vec = 23674772
font_group = 8191605
i = 0
charset_matched = -1
f = (FRAME_PTR) 0x8dce00
#7 0x0021163b in fontset_font (fontset=23735636, c=1047,
face=0x1673790, id=15) at fontset.c:703
rfont_def = 25165833
base_fontset = 23324980
#8 0x00211cdf in face_for_char (f=0x8dce00, face=0x1673790, c=1047,
pos=171, object=25165833) at fontset.c:921
fontset = 23735636
rfont_def = 23747876
charset = 25484649
face_id = 15
id = 15
#9 0x000291f4 in get_next_display_element (it=0xbfffd518) at xdisp.c:
5954
pos = 171
face = (struct face *) 0x1673790
success_p = 1
#
frame 9
(gdb) print *face
$5 = {
id = 0,
gc = 0x16a4c00,
stipple = 0,
foreground = 2,
background = 1,
underline_color = 0,
overline_color = 0,
strike_through_color = 0,
box_color = 0,
font = 0x163d640,
fontset = 3,
pixmap_w = 0,
pixmap_h = 0,
box_line_width = 0,
box = FACE_NO_BOX,
use_box_color_for_shadows_p = 0,
underline_p = 0,
overline_p = 0,
strike_through_p = 0,
foreground_defaulted_p = 0,
background_defaulted_p = 0,
underline_defaulted_p = 0,
overline_color_defaulted_p = 0,
strike_through_color_defaulted_p = 0,
box_color_defaulted_p = 0,
tty_bold_p = 0,
tty_dim_p = 0,
tty_underline_p = 0,
tty_alt_charset_p = 0,
tty_reverse_p = 0,
tty_blinking_p = 0,
colors_copied_bitwise_p = 0,
overstrike = 0,
synth_ital = 0,
lface = {25166169, 25802363, 2377955, 25190409, 960, 25190409,
25190409, 25165833, 25165833, 25863083, 25863035, 25165833, 25165833,
25165833, 25165833, 23320132, 25165833, 25802235},
hash = 25194329,
next = 0x1674170,
prev = 0x16a3910,
ascii_face = 0x1673790,
extra = 0x0
}
smime.p7s
Description: S/MIME cryptographic signature