unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Failed assertion on make-frame-on-display
@ 2006-11-19 12:48 Richard Stallman
  2006-11-20 20:16 ` Chong Yidong
  0 siblings, 1 reply; 4+ messages in thread
From: Richard Stallman @ 2006-11-19 12:48 UTC (permalink / raw


Would someone please DTRT and ack?

From: Andreas Seltenreich <seltenreich@gmx.de>
To: emacs-pretest-bug@gnu.org
Date: Sun, 19 Nov 2006 01:30:51 +0100
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Subject: Failed assertion on make-frame-on-display
X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=failed 
	version=3.0.4

I can trigger the following assertion by running

    emacs -Q -fn "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-1"

and M-x make-frame-on-display to a display that doesn't have that font
installed.  When compiled without assertions, emacs dies when
dereferencing the NULL returned by choose_face_font.

--8<---------------cut here---------------start------------->8---
Breakpoint 1, abort () at emacs.c:464
(gdb) up
#1  0x080e99e2 in choose_face_font (f=0x873a3f8, attrs=0x874c2f8, fontset=19, c=0, needs_overstrike=0xbfa7c518) at xfaces.c:6890
(gdb) list
6885	  /* Get (foundry and) family name and registry (and encoding) name of
6886	     a font for C.  */
6887	  pattern = fontset_font_pattern (f, fontset, c);
6888	  if (NILP (pattern))
6889	    {
6890	      xassert (!SINGLE_BYTE_CHAR_P (c));
6891	      return NULL;
6892	    }
6893	
6894	  /* If what we got is a name pattern, return it.  */
(gdb) bt
#0  abort () at emacs.c:464
#1  0x080e99e2 in choose_face_font (f=0x873a3f8, attrs=0x874c2f8, fontset=19, c=0, needs_overstrike=0xbfa7c518) at xfaces.c:6890
#2  0x080e077a in load_face_font (f=0x873a3f8, face=0x874c2b0, c=0) at xfaces.c:1242
#3  0x080ea5b5 in realize_face (cache=0x873a878, attrs=0xbfa7c584, c=0, base_face=0x0, former_face_id=0) at xfaces.c:7162
#4  0x080ea317 in realize_default_face (f=0x873a3f8) at xfaces.c:7069
#5  0x080e9d11 in realize_basic_faces (f=0x873a3f8) at xfaces.c:6935
#6  0x080e88bf in Fdisplay_supports_face_attributes_p (attributes=138486229, display=141796348) at xfaces.c:6223
#7  0x081aaba5 in Ffuncall (nargs=3, args=0xbfa7c750) at eval.c:3000
#8  0x081e2a2f in Fbyte_code (bytestr=136697651, vector=136697668, maxdepth=40) at bytecode.c:679
#9  0x081ab34f in funcall_lambda (fun=136697604, nargs=2, arg_vector=0xbfa7ca64) at eval.c:3184
#10 0x081aae0d in Ffuncall (nargs=3, args=0xbfa7ca60) at eval.c:3043
#11 0x081e2a2f in Fbyte_code (bytestr=136697907, vector=136697924, maxdepth=32) at bytecode.c:679
#12 0x081ab34f in funcall_lambda (fun=136697852, nargs=2, arg_vector=0xbfa7cd64) at eval.c:3184
#13 0x081aae0d in Ffuncall (nargs=3, args=0xbfa7cd60) at eval.c:3043
#14 0x081e2a2f in Fbyte_code (bytestr=136698195, vector=136698212, maxdepth=48) at bytecode.c:679
#15 0x081ab34f in funcall_lambda (fun=136698132, nargs=3, arg_vector=0xbfa7d074) at eval.c:3184
#16 0x081aae0d in Ffuncall (nargs=4, args=0xbfa7d070) at eval.c:3043
#17 0x081e2a2f in Fbyte_code (bytestr=136700259, vector=136700276, maxdepth=48) at bytecode.c:679
#18 0x081ab34f in funcall_lambda (fun=136700220, nargs=1, arg_vector=0xbfa7d384) at eval.c:3184
#19 0x081aae0d in Ffuncall (nargs=2, args=0xbfa7d380) at eval.c:3043
#20 0x081e2a2f in Fbyte_code (bytestr=136701131, vector=136701148, maxdepth=40) at bytecode.c:679
#21 0x081ab34f in funcall_lambda (fun=136701084, nargs=1, arg_vector=0xbfa7d694) at eval.c:3184
#22 0x081aae0d in Ffuncall (nargs=2, args=0xbfa7d690) at eval.c:3043
#23 0x081e2a2f in Fbyte_code (bytestr=136945715, vector=136945732, maxdepth=24) at bytecode.c:679
#24 0x081ab34f in funcall_lambda (fun=136945668, nargs=1, arg_vector=0xbfa7d994) at eval.c:3184
#25 0x081aae0d in Ffuncall (nargs=2, args=0xbfa7d990) at eval.c:3043
#26 0x081e2a2f in Fbyte_code (bytestr=136945427, vector=136945444, maxdepth=24) at bytecode.c:679
#27 0x081ab34f in funcall_lambda (fun=136945372, nargs=1, arg_vector=0xbfa7dce4) at eval.c:3184
#28 0x081aae0d in Ffuncall (nargs=2, args=0xbfa7dce0) at eval.c:3043
#29 0x081a66bc in Fcall_interactively (function=139630145, record_flag=137939193, keys=137979660) at callint.c:860
#30 0x0813421e in Fcommand_execute (cmd=139630145, record_flag=137939193, keys=137939145, special=137939145) at keyboard.c:9867
#31 0x08134591 in Fexecute_extended_command (prefixarg=137939145) at keyboard.c:9983
#32 0x081aab7e in Ffuncall (nargs=2, args=0xbfa7e140) at eval.c:2997
#33 0x081a66bc in Fcall_interactively (function=137980177, record_flag=137939145, keys=137979660) at callint.c:860
#34 0x0813421e in Fcommand_execute (cmd=137980177, record_flag=137939145, keys=137939145, special=137939145) at keyboard.c:9867
#35 0x08126497 in command_loop_1 () at keyboard.c:1858
#36 0x081a87a2 in internal_condition_case (bfun=0x81250a1 <command_loop_1>, handlers=137983849, hfun=0x8124a63 <cmd_error>) at eval.c:1481
#37 0x08124e0e in command_loop_2 () at keyboard.c:1326
#38 0x081a825d in internal_catch (tag=137980057, func=0x8124deb <command_loop_2>, arg=137939145) at eval.c:1222
#39 0x08124dc4 in command_loop () at keyboard.c:1305
#40 0x081247e0 in recursive_edit_1 () at keyboard.c:1003
#41 0x08124923 in Frecursive_edit () at keyboard.c:1064
#42 0x0812321d in main (argc=4, argv=0xbfa7ec04) at emacs.c:1794

Lisp Backtrace:
  "display-supports-face-attributes-p" (0x84121d5)
  "face-spec-set-match-display" (0x84121e5)
  "face-spec-choose" (0x8412205)
  "face-spec-set" (0x83b3b69)
  "frame-set-background-mode" (0x873a3fc)
  "x-create-frame-with-faces" (0x84fd15d)
  "make-frame" (0x84fd15d)
  "make-frame-on-display" (0x869fed3)
  "call-interactively" (0x8529641)
  "execute-extended-command" (0x838c8c9)
  "call-interactively" (0x8396911)
(gdb) bt full
#0  abort () at emacs.c:464
No locals.
#1  0x080e99e2 in choose_face_font (f=0x873a3f8, attrs=0x874c2f8, fontset=19, c=0, needs_overstrike=0xbfa7c518) at xfaces.c:6890
	pattern = 137939145
	font_name = 0x0
	fonts = (struct font_name *) 0xbfa7c45f
	nfonts = 0
	width_ratio = -1213597237
#2  0x080e077a in load_face_font (f=0x873a3f8, face=0x874c2b0, c=0) at xfaces.c:1242
	font_info = (struct font_info *) 0x0
	font_name = 0x86afedb ""
	needs_overstrike = 0
#3  0x080ea5b5 in realize_face (cache=0x873a878, attrs=0xbfa7c584, c=0, base_face=0x0, former_face_id=0) at xfaces.c:7162
	face = (struct face *) 0x874c2b0
#4  0x080ea317 in realize_default_face (f=0x873a3f8) at xfaces.c:7069
	c = (struct face_cache *) 0x873a878
	lface = 141876500
	attrs =   {137939529,
  141239299,
  137971585,
  1216,
  137971585,
  137971585,
  137939145,
  137939145,
  141229851,
  141229787,
  137939145,
  137939145,
  137939145,
  137939145,
  141230043,
  137972137,
  800}
	frame_font = 141230043
	face = (struct face *) 0x83941ba
#5  0x080e9d11 in realize_basic_faces (f=0x873a3f8) at xfaces.c:6935
	success_p = 0
	count = 43
#6  0x080e88bf in Fdisplay_supports_face_attributes_p (attributes=138486229, display=141796348) at xfaces.c:6223
	supports = 138121841
	i = 17
	frame = 141796348
	f = (struct frame *) 0x873a3f8
	def_face = (struct face *) 0x0
	attrs =   {137972137,
  137972137,
  137972137,
  137972137,
  137972137,
  137972137,
  137939193,
  137972137,
  137972137,
  137972137,
  137972137,
  137972137,
  137972137,
  137972137,
  137972137,
  137972137,
  137972137}
#7  0x081aaba5 in Ffuncall (nargs=3, args=0xbfa7c750) at eval.c:3000
	fun = 136489564
	original_fun = 137974089
	funcar = -1079523528
	numargs = 2
	lisp_numargs = 141164387
	val = 137939169
	backtrace = {
  next = 0xbfa7ca0c, 
  function = 0xbfa7c750, 
  args = 0xbfa7c754, 
  nargs = 2, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
	internal_args = (Lisp_Object *) 0xbfa7c754
	i = 137939169
#8  0x081e2a2f in Fbyte_code (bytestr=136697651, vector=136697668, maxdepth=40) at bytecode.c:679
	count = 38
	op = 2
	vectorp = (Lisp_Object *) 0x825d748
	bytestr_length = 197
	stack = {
  pc = 0x8322409 "\202\276", 
  top = 0xbfa7c758, 
  bottom = 0xbfa7c750, 
  byte_string = 136697651, 
  byte_string_start = 0x8322353 "\b\031\306\211\032\033\306\034\307\035\t\307=\203\022", 
  constants = 136697668, 
  next = 0xbfa7caf8
}
	top = (Lisp_Object *) 0xbfa7c750
	result = 137939193
#9  0x081ab34f in funcall_lambda (fun=136697604, nargs=2, arg_vector=0xbfa7ca64) at eval.c:3184
	val = 4
	syms_left = 137939145
	next = 137997593
	count = 36
	i = 2
	optional = 0
	rest = 0
#10 0x081aae0d in Ffuncall (nargs=3, args=0xbfa7ca60) at eval.c:3043
	fun = 136697604
	original_fun = 138456385
	funcar = -1079522744
	numargs = 2
	lisp_numargs = 141164387
	val = 137939169
	backtrace = {
  next = 0xbfa7cd0c, 
  function = 0xbfa7ca60, 
  args = 0xbfa7ca64, 
  nargs = 2, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
	internal_args = (Lisp_Object *) 0x8408da1
	i = 137939169
#11 0x081e2a2f in Fbyte_code (bytestr=136697907, vector=136697924, maxdepth=32) at bytecode.c:679
	count = 29
	op = 2
	vectorp = (Lisp_Object *) 0x825d848
	bytestr_length = 94
	stack = {
  pc = 0x83222fc "\203L", 
  top = 0xbfa7ca68, 
  bottom = 0xbfa7ca60, 
  byte_string = 136697907, 
  byte_string_start = 0x83222b8 "\b\204\a", 
  constants = 136697924, 
  next = 0xbfa7ce08
}
	top = (Lisp_Object *) 0xbfa7ca60
	result = 137939145
#12 0x081ab34f in funcall_lambda (fun=136697852, nargs=2, arg_vector=0xbfa7cd64) at eval.c:3184
	val = 137939145
	syms_left = 137939145
	next = 137997593
	count = 27
	i = 2
	optional = 1
	rest = 0
#13 0x081aae0d in Ffuncall (nargs=3, args=0xbfa7cd60) at eval.c:3043
	fun = 136697852
	original_fun = 138469609
	funcar = 2
	numargs = 2
	lisp_numargs = 137637908
	val = 137939145
	backtrace = {
  next = 0xbfa7d01c, 
  function = 0xbfa7cd60, 
  args = 0xbfa7cd64, 
  nargs = 2, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
	internal_args = (Lisp_Object *) 0x1a7cd64
	i = -1079522008
#14 0x081e2a2f in Fbyte_code (bytestr=136698195, vector=136698212, maxdepth=48) at bytecode.c:679
	count = 27
	op = 2
	vectorp = (Lisp_Object *) 0x825d968
	bytestr_length = 130
	stack = {
  pc = 0x83221f9 "\032\b\203\016", 
  top = 0xbfa7cd68, 
  bottom = 0xbfa7cd60, 
  byte_string = 136698195, 
  byte_string_start = 0x83221f5 "\306\b\t\"\032\b\203\016", 
  constants = 136698212, 
  next = 0xbfa7d118
}
	top = (Lisp_Object *) 0xbfa7cd60
	result = 137939145
#15 0x081ab34f in funcall_lambda (fun=136698132, nargs=3, arg_vector=0xbfa7d074) at eval.c:3184
	val = 137939145
	syms_left = 137939145
	next = 137997593
	count = 24
	i = 3
	optional = 1
	rest = 0
#16 0x081aae0d in Ffuncall (nargs=4, args=0xbfa7d070) at eval.c:3043
	fun = 136698132
	original_fun = 138334185
	funcar = -1079521192
	numargs = 3
	lisp_numargs = 138478085
	val = 138477797
	backtrace = {
  next = 0xbfa7d32c, 
  function = 0xbfa7d070, 
  args = 0xbfa7d074, 
  nargs = 3, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
	internal_args = (Lisp_Object *) 0x1a7d074
	i = 138035338
#17 0x081e2a2f in Fbyte_code (bytestr=136700259, vector=136700276, maxdepth=48) at bytecode.c:679
	count = 15
	op = 3
	vectorp = (Lisp_Object *) 0x825e178
	bytestr_length = 327
	stack = {
  pc = 0x8321f5e "\210\016,A\211\026,\204\016\001+\335.\006\207", 
  top = 0xbfa7d07c, 
  bottom = 0xbfa7d070, 
  byte_string = 136700259, 
  byte_string_start = 0x8321e26 "\b\205\b", 
  constants = 136700276, 
  next = 0xbfa7d428
}
	top = (Lisp_Object *) 0xbfa7d070
	result = 137939145
#18 0x081ab34f in funcall_lambda (fun=136700220, nargs=1, arg_vector=0xbfa7d384) at eval.c:3184
	val = 137939145
	syms_left = 137939145
	next = 137997593
	count = 14
	i = 1
	optional = 0
	rest = 0
#19 0x081aae0d in Ffuncall (nargs=2, args=0xbfa7d380) at eval.c:3043
	fun = 136700220
	original_fun = 137939601
	funcar = -1079520424
	numargs = 1
	lisp_numargs = 141765040
	val = 137939145
	backtrace = {
  next = 0xbfa7d63c, 
  function = 0xbfa7d380, 
  args = 0xbfa7d384, 
  nargs = 1, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
	internal_args = (Lisp_Object *) 0xbfa7d38c
	i = 141765040
#20 0x081e2a2f in Fbyte_code (bytestr=136701131, vector=136701148, maxdepth=40) at bytecode.c:679
	count = 9
	op = 1
	vectorp = (Lisp_Object *) 0x825e4e0
	bytestr_length = 61
	stack = {
  pc = 0x8321cad "\210\315\n!\210\v\203*", 
  top = 0xbfa7d384, 
  bottom = 0xbfa7d380, 
  byte_string = 136701131, 
  byte_string_start = 0x8321c90 "\305\b!\020\306\b\236\303 \307\310\bB!\311\031\032\033\034\312\216\313\n\b\"\210\314\n!\210\315\n!\210\v\203*", 
  constants = 136701148, 
  next = 0xbfa7d728
}
	top = (Lisp_Object *) 0xbfa7d380
	result = 2
#21 0x081ab34f in funcall_lambda (fun=136701084, nargs=1, arg_vector=0xbfa7d694) at eval.c:3184
	val = 0
	syms_left = 137939145
	next = 138286457
	count = 8
	i = 1
	optional = 1
	rest = 0
#22 0x081aae0d in Ffuncall (nargs=2, args=0xbfa7d690) at eval.c:3043
	fun = 136701084
	original_fun = 138490289
	funcar = -1079519416
	numargs = 1
	lisp_numargs = 29
	val = 137939145
	backtrace = {
  next = 0xbfa7d93c, 
  function = 0xbfa7d690, 
  args = 0xbfa7d694, 
  nargs = 1, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
	internal_args = (Lisp_Object *) 0x863d704
	i = 137874512
#23 0x081e2a2f in Fbyte_code (bytestr=136945715, vector=136945732, maxdepth=24) at bytecode.c:679
	count = 8
	op = 1
	vectorp = (Lisp_Object *) 0x829a048
	bytestr_length = 16
	stack = {
  pc = 0x82fc432 "\032\305\306\n\"\210\n)\207", 
  top = 0xbfa7d694, 
  bottom = 0xbfa7d690, 
  byte_string = 136945715, 
  byte_string_start = 0x82fc42b "\303\304!\210\b\t!\032\305\306\n\"\210\n)\207", 
  constants = 136945732, 
  next = 0xbfa7da28
}
	top = (Lisp_Object *) 0xbfa7d690
	result = 3
#24 0x081ab34f in funcall_lambda (fun=136945668, nargs=1, arg_vector=0xbfa7d994) at eval.c:3184
	val = -1079518856
	syms_left = 137939145
	next = 138286457
	count = 7
	i = 1
	optional = 1
	rest = 0
#25 0x081aae0d in Ffuncall (nargs=2, args=0xbfa7d990) at eval.c:3043
	fun = 136945668
	original_fun = 138890833
	funcar = 621
	numargs = 1
	lisp_numargs = 141758800
	val = 0
	backtrace = {
  next = 0xbfa7dc3c, 
  function = 0xbfa7d990, 
  args = 0xbfa7d994, 
  nargs = 1, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
	internal_args = (Lisp_Object *) 0xbfa7d8f0
	i = 3
#26 0x081e2a2f in Fbyte_code (bytestr=136945427, vector=136945444, maxdepth=24) at bytecode.c:679
	count = 7
	op = 1
	vectorp = (Lisp_Object *) 0x8299f28
	bytestr_length = 19
	stack = {
  pc = 0x82fc52c "\207", 
  top = 0xbfa7d994, 
  bottom = 0xbfa7d990, 
  byte_string = 136945427, 
  byte_string_start = 0x82fc51a "\302\303\b\"\204\v", 
  constants = 136945444, 
  next = 0x0
}
	top = (Lisp_Object *) 0xbfa7d990
	result = 137971012
#27 0x081ab34f in funcall_lambda (fun=136945372, nargs=1, arg_vector=0xbfa7dce4) at eval.c:3184
	val = 139448813
	syms_left = 137939145
	next = 138286457
	count = 5
	i = 1
	optional = 1
	rest = 0
#28 0x081aae0d in Ffuncall (nargs=2, args=0xbfa7dce0) at eval.c:3043
	fun = 136945372
	original_fun = 139630145
	funcar = -1079518088
	numargs = 1
	lisp_numargs = 137939145
	val = 138034498
	backtrace = {
  next = 0xbfa7df3c, 
  function = 0xbfa7dce0, 
  args = 0xbfa7dce4, 
  nargs = 1, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
	internal_args = (Lisp_Object *) 0x83a3d42
	i = -1079518088
#29 0x081a66bc in Fcall_interactively (function=139630145, record_flag=137939193, keys=137979660) at callint.c:860
	val = -1079517448
	args = (Lisp_Object *) 0xbfa7dce0
	visargs = (Lisp_Object *) 0xbfa7dcc0
	fun = 136945372
	specs = 136945515
	filter_specs = 137939145
	teml = 137939145
	up_event = 137939145
	enable = 137939145
	speccount = 4
	next_event = 23
	prefix_arg = 137939145
	string = (unsigned char *) 0xbfa7dd00 "sMake frame on display: "
	tem = (unsigned char *) 0x82219bc ""
	varies = (int *) 0xbfa7dca0
	i = 2
	j = 1
	count = 1
	foo = 140312792
	prompt1 =   "Make frame on display: ", '\0' <repeats 76 times>
	tem1 = 0x0
	arg_from_tty = 1
	gcpro1 = {
  next = 0x838c8c9, 
  var = 0xbfa7de38, 
  nvars = 135900999
}
	gcpro2 = {
  next = 0x0, 
  var = 0x0, 
  nvars = 0
}
	gcpro3 = {
  next = 0x82006aa, 
  var = 0x8394540, 
  nvars = 2
}
	gcpro4 = {
  next = 0x0, 
  var = 0x838c8c9, 
  nvars = 2
}
	gcpro5 = {
  next = 0x0, 
  var = 0x0, 
  nvars = 0
}
	key_count = 23
	record_then_fail = 0
	save_this_command = 139630145
	save_last_command = 138085633
	save_this_original_command = 138085681
	save_real_this_command = 139630145
#30 0x0813421e in Fcommand_execute (cmd=139630145, record_flag=137939193, keys=137939145, special=137939145) at keyboard.c:9867
	final = 136945372
	tem = 137939145
	prefixarg = 137939145
	backtrace = {
  next = 0xbfa7e09c, 
  function = 0x837eeb0, 
  args = 0xbfa7df60, 
  nargs = 1, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
#31 0x08134591 in Fexecute_extended_command (prefixarg=137939145) at keyboard.c:9983
	function = 139630145
	buf =   "M-x \000B\017\000\240\237_E \206\v\000H\343\247\277;k\037\b", '\0' <repeats 15 times>
	saved_last_point_position = 1
	saved_keys = 141751540
	saved_last_point_position_buffer = 137971012
	bindings = 137939145
	value = 137939145
	gcpro1 = {
  next = 0x0, 
  var = 0x0, 
  nvars = 999991
}
	gcpro2 = {
  next = 0x1, 
  var = 0x0, 
  nvars = 0
}
	gcpro3 = {
  next = 0xbfa7dfc8, 
  var = 0x0, 
  nvars = -1213309515
}
	hstarted = 1
#32 0x081aab7e in Ffuncall (nargs=2, args=0xbfa7e140) at eval.c:2997
	fun = 136499092
	original_fun = 137980177
	funcar = -1079516968
	numargs = 1
	lisp_numargs = 137939145
	val = 138034498
	backtrace = {
  next = 0xbfa7e36c, 
  function = 0xbfa7e140, 
  args = 0xbfa7e144, 
  nargs = 1, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
	internal_args = (Lisp_Object *) 0xbfa7e144
	i = -1079516968
#33 0x081a66bc in Fcall_interactively (function=137980177, record_flag=137939145, keys=137979660) at callint.c:860
	val = -1079516376
	args = (Lisp_Object *) 0xbfa7e140
	visargs = (Lisp_Object *) 0xbfa7e120
	fun = 136499092
	specs = 137939145
	filter_specs = 137939145
	teml = 0
	up_event = 137939145
	enable = 137939145
	speccount = 3
	next_event = 1
	prefix_arg = 137939145
	string = (unsigned char *) 0x821b5e3 "P"
	tem = (unsigned char *) 0x82219bc ""
	varies = (int *) 0xbfa7e100
	i = 2
	j = 1
	count = 1
	foo = 0
	prompt1 =   '\0' <repeats 99 times>
	tem1 = 0x0
	arg_from_tty = 0
	gcpro1 = {
  next = 0x0, 
  var = 0x0, 
  nvars = 0
}
	gcpro2 = {
  next = 0x0, 
  var = 0x0, 
  nvars = 0
}
	gcpro3 = {
  next = 0x0, 
  var = 0x0, 
  nvars = 2
}
	gcpro4 = {
  next = 0x0, 
  var = 0x0, 
  nvars = 2
}
	gcpro5 = {
  next = 0x0, 
  var = 0x0, 
  nvars = 0
}
	key_count = 1
	record_then_fail = 0
	save_this_command = 137980177
	save_last_command = 137939145
	save_this_original_command = 137980177
	save_real_this_command = 137980177
#34 0x0813421e in Fcommand_execute (cmd=137980177, record_flag=137939145, keys=137939145, special=137939145) at keyboard.c:9867
	final = 136499092
	tem = 137939145
	prefixarg = 137939145
	backtrace = {
  next = 0x0, 
  function = 0x837eeb0, 
  args = 0xbfa7e390, 
  nargs = 1, 
  evalargs = 0 '\0', 
  debug_on_exit = 0 '\0'
}
#35 0x08126497 in command_loop_1 () at keyboard.c:1858
	scount = 2
	cmd = 137980177
	lose = -1079516240
	nonundocount = 0
	keybuf =   {1073742784,
  14178888,
  -1210557224,
  -1079515996,
  -1208537815,
  -1213670741,
  134534228,
  0,
  0,
  134522364,
  8144949,
  134533106,
  225011984,
  21,
  -1213725876,
  -1213691364,
  -1213670546,
  797,
  1845493760,
  -1210557304,
  -1079515988,
  -1208517874,
  134532533,
  -1210557292,
  -1208479756,
  14178888,
  -1210557224,
  -1079515900,
  -1208537815,
  0}
	i = 1
	no_direct = 0
	prev_modiff = 1
	prev_buffer = (struct buffer *) 0x8394540
	was_locked = 0
	already_adjusted = 0
#36 0x081a87a2 in internal_condition_case (bfun=0x81250a1 <command_loop_1>, handlers=137983849, hfun=0x8124a63 <cmd_error>) at eval.c:1481
	val = 137939145
	c = {
  tag = 137939145, 
  val = 137939145, 
  next = 0xbfa7e630, 
  gcpro = 0x0, 
  jmp =     {{
      __jmpbuf =         {-1212477452,
        0,
        -1208480576,
        -1079515656,
        -1079515888,
        135956279}, 
      __mask_was_saved = 0, 
      __saved_mask = {
        __val =           {110932256,
          16777216,
          0 <repeats 21 times>,
          3081271996,
          3084410072,
          3086487540,
          3086488824,
          1,
          3215451648,
          3086444232,
          3086489252,
          3081224992}
      }
    }}, 
  backlist = 0x0, 
  handlerlist = 0x0, 
  lisp_eval_depth = 0, 
  pdlcount = 2, 
  poll_suppress_count = 1, 
  interrupt_input_blocked = 0, 
  byte_stack = 0x0
}
	h = {
  handler = 137983849, 
  var = 137939145, 
  chosen_clause = 0, 
  tag = 0xbfa7e52c, 
  next = 0x0
}
#37 0x08124e0e in command_loop_2 () at keyboard.c:1326
	val = 0
#38 0x081a825d in internal_catch (tag=137980057, func=0x8124deb <command_loop_2>, arg=137939145) at eval.c:1222
	c = {
  tag = 137980057, 
  val = 137939145, 
  next = 0x0, 
  gcpro = 0x0, 
  jmp =     {{
      __jmpbuf =         {-1212477452,
        0,
        -1208480576,
        -1079515400,
        -1079515616,
        135955022}, 
      __mask_was_saved = 0, 
      __saved_mask = {
        __val =           {140333688,
          2,
          15,
          3215451424,
          1024,
          140333707,
          3082498164,
          3082489844,
          140333691,
          140333688,
          3215451464,
          136467394,
          136467394,
          1258291215,
          2382175626,
          3215451880,
          135869923,
          138121649,
          138123290,
          137939145,
          137971008,
          0,
          3215451860,
          3215451880,
          137939145,
          137925381,
          138123290,
          138123290,
          138123290,
          137925389,
          2,
          138123290}
      }
    }}, 
  backlist = 0x0, 
  handlerlist = 0x0, 
  lisp_eval_depth = 0, 
  pdlcount = 2, 
  poll_suppress_count = 1, 
  interrupt_input_blocked = 0, 
  byte_stack = 0x0
}
#39 0x08124dc4 in command_loop () at keyboard.c:1305
No locals.
#40 0x081247e0 in recursive_edit_1 () at keyboard.c:1003
	count = 1
	val = 138178917
#41 0x08124923 in Frecursive_edit () at keyboard.c:1064
	count = 0
	buffer = 137939145
#42 0x0812321d in main (argc=4, argv=0xbfa7ec04) at emacs.c:1794
	dummy = 0
	stack_bottom_variable = 0 '\0'
	do_initial_setlocale = 1
	skip_args = 0
	rlim = {
  rlim_cur = 8388608, 
  rlim_max = 18446744073709551615
}
	no_loadup = 0
	junk = 0x0
--8<---------------cut here---------------end--------------->8---

In GNU Emacs 22.0.90.3 (i686-pc-linux-gnu, X toolkit)
 of 2006-11-13 on tp
X server distributor `The XFree86 Project, Inc', version 11.0.40300001
configured using `configure '--enable-debug' '--with-png' '--with-gif' '--with-tiff' '--with-jpeg' '--with-xpm' '--with-x-toolkit=yes' '--enable-maintainer-mode''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: C
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: de_DE
  locale-coding-system: iso-latin-1
  default-enable-multibyte-characters: t


_______________________________________________
emacs-pretest-bug mailing list
emacs-pretest-bug@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Failed assertion on make-frame-on-display
  2006-11-19 12:48 Failed assertion on make-frame-on-display Richard Stallman
@ 2006-11-20 20:16 ` Chong Yidong
  2006-11-21  7:48   ` Richard Stallman
  2006-11-21 17:27   ` Chong Yidong
  0 siblings, 2 replies; 4+ messages in thread
From: Chong Yidong @ 2006-11-20 20:16 UTC (permalink / raw
  Cc: emacs-devel

Richard Stallman <rms@gnu.org> writes:

> I can trigger the following assertion by running
>
>     emacs -Q -fn "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-1"
>
> and M-x make-frame-on-display to a display that doesn't have that font
> installed.  When compiled without assertions, emacs dies when
> dereferencing the NULL returned by choose_face_font.

I can't test this, but probably the way to fix this is to make it an
error to try to make a frame on a display that doesn't support the
default font; i.e., x-create-frame should try to load the default font
on the new display if it is not already loaded, and do an Ferror if
the load fails.

WDYT?

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Failed assertion on make-frame-on-display
  2006-11-20 20:16 ` Chong Yidong
@ 2006-11-21  7:48   ` Richard Stallman
  2006-11-21 17:27   ` Chong Yidong
  1 sibling, 0 replies; 4+ messages in thread
From: Richard Stallman @ 2006-11-21  7:48 UTC (permalink / raw
  Cc: emacs-devel

    I can't test this, but probably the way to fix this is to make it an
    error to try to make a frame on a display that doesn't support the
    default font; i.e., x-create-frame should try to load the default font
    on the new display if it is not already loaded, and do an Ferror if
    the load fails.

    WDYT?

I can't think of anything better, and it is certainly better than
crashing.  So please do it.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Failed assertion on make-frame-on-display
  2006-11-20 20:16 ` Chong Yidong
  2006-11-21  7:48   ` Richard Stallman
@ 2006-11-21 17:27   ` Chong Yidong
  1 sibling, 0 replies; 4+ messages in thread
From: Chong Yidong @ 2006-11-21 17:27 UTC (permalink / raw
  Cc: emacs-devel, Andreas Seltenreich

>> I can trigger the following assertion by running
>>
>>     emacs -Q -fn "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-1"
>>
>> and M-x make-frame-on-display to a display that doesn't have that font
>> installed.  When compiled without assertions, emacs dies when
>> dereferencing the NULL returned by choose_face_font.

I've checked in a fix.  Emacs won't crash anymore (and trying to make
a frame on a display that doesn't support the default font raises a
Lisp error.)

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2006-11-21 17:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-19 12:48 Failed assertion on make-frame-on-display Richard Stallman
2006-11-20 20:16 ` Chong Yidong
2006-11-21  7:48   ` Richard Stallman
2006-11-21 17:27   ` Chong Yidong

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).