From: Michael Heerdegen <michael_heerdegen@web.de>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 17524@debbugs.gnu.org
Subject: bug#17524: 24.4.50; emacs_backtrace.txt
Date: Fri, 23 May 2014 00:46:45 +0200 [thread overview]
Message-ID: <87r43l5t4a.fsf@web.de> (raw)
In-Reply-To: <87lhtvceww.fsf@web.de> (Michael Heerdegen's message of "Wed, 21 May 2014 17:47:11 +0200")
[-- Attachment #1: Type: text/plain, Size: 59 bytes --]
Hello,
Hope I did what you meant. This is what I tried:
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: xfns.c.patch --]
[-- Type: text/x-diff, Size: 1674 bytes --]
*** /tmp/ediff3444YHS 2014-05-23 00:42:39.365203371 +0200
--- /home/micha/software/emacs/src/xfns.c 2014-05-23 00:17:59.787938756 +0200
***************
*** 2694,2699 ****
--- 2694,2710 ----
{
#if defined GLYPH_DEBUG && defined ENABLE_CHECKING
struct x_display_info *dpyinfo = FRAME_DISPLAY_INFO (f);
+
+ /* If the frame's image cache refcount is still the same as our
+ private shadow variable, it means we are unwinding a frame
+ for which we didn't yet call init_frame_faces, where the
+ refcount is incremented. Therefore, we increment it here, so
+ that free_frame_faces, called in x_free_frame_resources
+ below, will not mistakenly decrement the counter that was not
+ incremented yet to account for this new frame. */
+ if (FRAME_IMAGE_CACHE (f) != NULL
+ && FRAME_IMAGE_CACHE (f)->refcount == image_cache_refcount)
+ FRAME_IMAGE_CACHE (f)->refcount++;
#endif
x_free_frame_resources (f);
***************
*** 2702,2708 ****
#if defined GLYPH_DEBUG && defined ENABLE_CHECKING
/* Check that reference counts are indeed correct. */
eassert (dpyinfo->reference_count == dpyinfo_refcount);
! eassert (dpyinfo->terminal->image_cache->refcount == image_cache_refcount);
#endif
return Qt;
}
--- 2713,2720 ----
#if defined GLYPH_DEBUG && defined ENABLE_CHECKING
/* Check that reference counts are indeed correct. */
eassert (dpyinfo->reference_count == dpyinfo_refcount);
! eassert (dpyinfo->terminal->image_cache != NULL
! && dpyinfo->terminal->image_cache->refcount == image_cache_refcount);
#endif
return Qt;
}
[-- Attachment #3: Type: text/plain, Size: 52 bytes --]
Was that correct? In any case, it crashed again:
[-- Attachment #4: bt --]
[-- Type: application/octet-stream, Size: 8400 bytes --]
#0 cache_image (f=0x1127088, img=0x170fc00) at image.c:1782
#1 lookup_image (f=f@entry=0x1127088, spec=spec@entry=15464054) at image.c:1693
#2 0x00000000005bd9b0 in Fimage_mask_p (spec=15464054, frame=<optimized out>) at image.c:922
#3 0x0000000000551898 in Ffuncall (nargs=<optimized out>, args=<optimized out>) at eval.c:2818
#4 0x0000000000585385 in exec_byte_code (bytestr=16204144, vector=12233266, maxdepth=12311458,
args_template=12065010, nargs=140737488338352, args=0x2) at bytecode.c:916
#5 0x000000000055136f in funcall_lambda (fun=10284757, nargs=nargs@entry=1,
arg_vector=arg_vector@entry=0x7fffffffbf48) at eval.c:3049
#6 0x00000000005516cb in Ffuncall (nargs=nargs@entry=2, args=args@entry=0x7fffffffbf40)
at eval.c:2876
#7 0x00000000005519ea in call1 (fn=fn@entry=10284757, arg1=<optimized out>) at eval.c:2614
#8 0x0000000000558292 in mapcar1 (leni=leni@entry=14, vals=vals@entry=0x7fffffffbfb0,
fn=fn@entry=10284757, seq=seq@entry=19265750) at fns.c:2329
#9 0x0000000000558769 in Fmapcar (function=10284757, sequence=19265750) at fns.c:2399
#10 0x0000000000551898 in Ffuncall (nargs=<optimized out>, args=<optimized out>) at eval.c:2818
#11 0x0000000000585385 in exec_byte_code (bytestr=16204144, vector=12233266, maxdepth=12311458,
args_template=12065010, nargs=0, args=0x3) at bytecode.c:916
#12 0x000000000055136f in funcall_lambda (fun=10284677, nargs=nargs@entry=0,
arg_vector=arg_vector@entry=0x7fffffffc280) at eval.c:3049
#13 0x00000000005516cb in Ffuncall (nargs=1, args=0x7fffffffc278) at eval.c:2876
#14 0x0000000000585385 in exec_byte_code (bytestr=16204144, vector=12233266, maxdepth=12311458,
args_template=12065010, nargs=18, args=0x1) at bytecode.c:916
#15 0x000000000055136f in funcall_lambda (fun=fun@entry=10284469, nargs=nargs@entry=1,
arg_vector=arg_vector@entry=0x7fffffffc390) at eval.c:3049
#16 0x0000000000550864 in apply_lambda (fun=10284469, args=<optimized out>) at eval.c:2924
#17 0x0000000000550bbb in eval_sub (form=form@entry=15464726) at eval.c:2260
#18 0x0000000000554161 in Feval (form=15464726, lexical=<optimized out>) at eval.c:2003
#19 0x000000000054fe76 in internal_condition_case_1 (bfun=bfun@entry=0x4e1920 <eval_dyn>,
arg=arg@entry=15464726, handlers=<optimized out>,
hfun=hfun@entry=0x4e1800 <menu_item_eval_property_1>) at eval.c:1378
#20 0x00000000004e9f17 in menu_item_eval_property (sexpr=15464726) at keyboard.c:7602
#21 0x00000000004f3917 in get_keyelt (object=<optimized out>, object@entry=19280358,
autoload=autoload@entry=true) at keymap.c:758
#22 0x00000000004f3c3f in access_keymap_1 (map=<optimized out>, idx=<optimized out>,
t_ok=t_ok@entry=true, noinherit=noinherit@entry=false, autoload=autoload@entry=true)
at keymap.c:524
#23 0x00000000004f4ce3 in access_keymap (map=<optimized out>, idx=<optimized out>,
t_ok=t_ok@entry=true, noinherit=noinherit@entry=false, autoload=autoload@entry=true)
at keymap.c:557
#24 0x00000000004eb186 in tool_bar_items (reuse=<optimized out>, nitems=nitems@entry=0x7fffffffc6ac)
at keyboard.c:7993
#25 0x0000000000430c65 in update_tool_bar (f=f@entry=0x1127088,
save_match_data=save_match_data@entry=0) at xdisp.c:11875
#26 0x000000000044c385 in update_tool_bar (save_match_data=0, f=<optimized out>) at xdisp.c:11653
#27 prepare_menu_bars () at xdisp.c:11642
#28 redisplay_internal () at xdisp.c:13443
#29 0x000000000044da15 in redisplay () at xdisp.c:13062
#30 0x00000000004ebc51 in read_char (commandflag=1, map=map@entry=15385814, prev_event=12065010,
used_mouse_menu=used_mouse_menu@entry=0x7fffffffd7eb, end_time=end_time@entry=0x0)
at keyboard.c:2570
#31 0x00000000004ed5c3 in read_key_sequence (keybuf=keybuf@entry=0x7fffffffd8c0, prompt=12065010,
dont_downcase_last=dont_downcase_last@entry=false,
can_return_switch_frame=can_return_switch_frame@entry=true,
fix_current_buffer=fix_current_buffer@entry=true,
prevent_redisplay=prevent_redisplay@entry=false, bufsize=30) at keyboard.c:9087
#32 0x00000000004ef1e0 in command_loop_1 () at keyboard.c:1452
#33 0x000000000054fd4e in internal_condition_case (bfun=bfun@entry=0x4eeff0 <command_loop_1>,
handlers=<optimized out>, hfun=hfun@entry=0x4e60a0 <cmd_error>) at eval.c:1354
#34 0x00000000004e186e in command_loop_2 (ignore=ignore@entry=12065010) at keyboard.c:1177
#35 0x000000000054fc5b in internal_catch (tag=12188274, func=func@entry=0x4e1850 <command_loop_2>,
arg=12065010) at eval.c:1118
#36 0x00000000004e5c53 in command_loop () at keyboard.c:1148
#37 recursive_edit_1 () at keyboard.c:777
#38 0x000000000050dc27 in read_minibuf (map=map@entry=15967254, initial=initial@entry=12065010,
prompt=<optimized out>, prompt@entry=19897681, expflag=<optimized out>,
histvar=histvar@entry=12228866, histpos=0, defalt=defalt@entry=12081489, allow_props=false,
inherit_input_method=false) at minibuf.c:674
#39 0x000000000050e28e in Fread_from_minibuffer (prompt=19897681, initial_contents=12065010,
keymap=15967254, read=12065010, hist=<optimized out>, default_value=12081489,
inherit_input_method=12065010) at minibuf.c:957
#40 0x0000000000551820 in Ffuncall (nargs=<optimized out>, args=<optimized out>) at eval.c:2841
#41 0x0000000000585385 in exec_byte_code (bytestr=16204144, vector=12233266, maxdepth=12311458,
args_template=8200, nargs=140737488346104, args=0x8) at bytecode.c:916
#42 0x0000000000551407 in funcall_lambda (fun=9486809, nargs=nargs@entry=8,
arg_vector=0x90c200 <pure+882304>, arg_vector@entry=0x7fffffffdd48) at eval.c:2983
#43 0x00000000005516cb in Ffuncall (nargs=nargs@entry=9, args=args@entry=0x7fffffffdd40)
at eval.c:2876
#44 0x000000000050bcd0 in Fcompleting_read (prompt=prompt@entry=19897681, collection=12230290,
predicate=predicate@entry=12065010, require_match=require_match@entry=16179410,
initial_input=initial_input@entry=12065010, hist=hist@entry=12228866, def=def@entry=12081489,
inherit_input_method=inherit_input_method@entry=12065010) at minibuf.c:1674
#45 0x000000000050bf06 in Fread_buffer (prompt=19897681, def=<optimized out>, require_match=16179410)
at minibuf.c:1133
#46 0x0000000000551888 in Ffuncall (nargs=<optimized out>, args=<optimized out>) at eval.c:2822
#47 0x0000000000585385 in exec_byte_code (bytestr=16204144, vector=12233266, maxdepth=12311458,
args_template=12065010, nargs=140737488346816, args=0x4) at bytecode.c:916
#48 0x000000000055136f in funcall_lambda (fun=fun@entry=8969997, nargs=nargs@entry=1,
arg_vector=arg_vector@entry=0x7fffffffdfd0) at eval.c:3049
#49 0x0000000000550864 in apply_lambda (fun=8969997, args=<optimized out>) at eval.c:2924
#50 0x0000000000550bbb in eval_sub (form=<optimized out>) at eval.c:2260
#51 0x0000000000550f64 in eval_sub (form=form@entry=8971238) at eval.c:2149
#52 0x0000000000554161 in Feval (form=form@entry=8971238, lexical=<optimized out>) at eval.c:2003
#53 0x000000000054d7c9 in Fcall_interactively (function=12377778, record_flag=12065010, keys=12099997)
at callint.c:345
#54 0x0000000000551888 in Ffuncall (nargs=<optimized out>, args=<optimized out>) at eval.c:2822
#55 0x0000000000585385 in exec_byte_code (bytestr=16204144, vector=12233266, maxdepth=12311458,
args_template=4100, nargs=140737488348064, args=0x4) at bytecode.c:916
#56 0x0000000000551407 in funcall_lambda (fun=9521153, nargs=nargs@entry=1,
arg_vector=0x914828 <pure+916648>, arg_vector@entry=0x7fffffffe4d8) at eval.c:2983
#57 0x00000000005516cb in Ffuncall (nargs=nargs@entry=2, args=args@entry=0x7fffffffe4d0)
at eval.c:2876
#58 0x00000000005519ea in call1 (fn=<optimized out>, arg1=<optimized out>) at eval.c:2614
#59 0x00000000004ef37d in command_loop_1 () at keyboard.c:1559
#60 0x000000000054fd4e in internal_condition_case (bfun=bfun@entry=0x4eeff0 <command_loop_1>,
handlers=<optimized out>, hfun=hfun@entry=0x4e60a0 <cmd_error>) at eval.c:1354
#61 0x00000000004e186e in command_loop_2 (ignore=ignore@entry=12065010) at keyboard.c:1177
#62 0x000000000054fc5b in internal_catch (tag=12112514, func=func@entry=0x4e1850 <command_loop_2>,
arg=12065010) at eval.c:1118
#63 0x00000000004e5cc7 in command_loop () at keyboard.c:1156
#64 recursive_edit_1 () at keyboard.c:777
#65 0x00000000004e5fdd in Frecursive_edit () at keyboard.c:848
#66 0x0000000000415ec5 in main (argc=<optimized out>, argv=0x7fffffffe878) at emacs.c:1646
[-- Attachment #5: Type: text/plain, Size: 11 bytes --]
Michael.
next prev parent reply other threads:[~2014-05-22 22:46 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-18 21:50 bug#17524: 24.4.50; emacs_backtrace.txt Drew Adams
2014-05-18 21:54 ` Drew Adams
2014-05-18 22:58 ` Michael Heerdegen
2014-05-18 23:42 ` Drew Adams
2014-05-20 16:31 ` Eli Zaretskii
2014-05-20 17:22 ` Michael Heerdegen
2014-05-20 20:00 ` Eli Zaretskii
2014-05-21 15:47 ` Michael Heerdegen
2014-05-22 22:46 ` Michael Heerdegen [this message]
2014-05-23 6:01 ` Eli Zaretskii
2014-05-20 16:30 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87r43l5t4a.fsf@web.de \
--to=michael_heerdegen@web.de \
--cc=17524@debbugs.gnu.org \
--cc=eliz@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.