totem-gstreamer and amd64
Pascal Hofstee
caelian at gmail.com
Tue Apr 18 08:28:32 UTC 2006
Yuri pointed out totem-gstreamer dumps core upon startup for him. I
checked for myself and yes sir ... you've guessed it .. more 64bit
pointer truncation.
As can be seen in the backtrace below ... the pointer truncation takes
place between stack-frame #4 [data->user_data=0x80634c770]
and stack-frame #1 where it is passed truncated to the compare_interface
function [interface=0x634c770].
#0 IA__g_type_check_instance_is_a (type_instance=0x806e01bd0,
iface_type=104122224) at gtype.c:2692
node = (TypeNode *) 0x806091660
#1 0x0000000801b132e4 in compare_interface (element=0x806e01bd0,
interface=0x634c770) at gstbin.c:2409
__inst = (GTypeInstance *) 0x806e01bd0
__t = 104122224
__r = 1
ret = 1
#2 0x0000000801b2b79a in find_custom_fold_func (item=0x806e01bd0,
ret=0x7fffffffe6f0, data=0x1) at gstiterator.c:567
No locals.
#3 0x0000000801b2b716 in gst_iterator_fold (it=0x8063e6040,
func=0x801b2b780 <find_custom_fold_func>, ret=0x7fffffffe6f0,
user_data=0x7fffffffe6e0) at gstiterator.c:503
item = 0x806e01bd0
result = GST_ITERATOR_OK
#4 0x0000000801b2b834 in gst_iterator_find_custom (it=0x8063e6040,
func=0x801b132c0 <compare_interface>,
user_data=0x80634c770) at gstiterator.c:608
ret = {g_type = 68, data = {{v_int = 0, v_uint = 0, v_long = 0,
v_ulong = 0, v_int64 = 0, v_uint64 = 0,
v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint =
0, v_long = 0, v_ulong = 0, v_int64 = 0,
v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
data = {func = 0x801b132c0 <compare_interface>, user_data =
0x80634c770}
#5 0x0000000801b1339d in gst_bin_get_by_interface (bin=0x806ef82e0,
interface=34463860592) at gstbin.c:2444
children = (GstIterator *) 0x8063e6040
result = (GstIterator *) 0x806ef82e0
__PRETTY_FUNCTION__ = "gst_bin_get_by_interface"
#6 0x000000000043c3d5 in bvw_update_interface_implementations
(bvw=0x806f371d0) at bacon-video-widget-gst-0.10.c:4004
old_balance = (GstColorBalance *) 0x0
old_xoverlay = (GstXOverlay *) 0x0
confvalue = (GConfValue *) 0x80634c770
video_sink = (GstElement *) 0x806ef82e0
element = (GstElement *) 0x0
iter = (GstIterator *) 0x80634c770
i = 116617680
__PRETTY_FUNCTION__ = "bvw_update_interface_implementations"
#7 0x000000000043d14d in bacon_video_widget_new (width=115350480,
height=104122224, type=BVW_USE_TYPE_VIDEO,
err=0x7fffffffe810) at bacon-video-widget-gst-0.10.c:4326
ret = GST_STATE_CHANGE_SUCCESS
confvalue = (GConfValue *) 0x806e01e70
bvw = (BaconVideoWidget *) 0x806f371d0
audio_sink = (GstElement *) 0x806ef8000
video_sink = (GstElement *) 0x806ef82e0
__PRETTY_FUNCTION__ = "bacon_video_widget_new"
#8 0x0000000000421dcc in video_widget_create (totem=0x806170790) at
totem.c:3356
err = (GError *) 0x0
container = (GtkWidget *) 0xffffffff
w = -1
h = -1
#9 0x00000000004227e8 in main (argc=1, argv=0x7fffffffe8c8) at
totem.c:3629
totem = (Totem *) 0x806170790
filename = 0x8063f23d0 ""
gc = (GConfClient *) 0x80626b0d0
Hopefully this backtrace will provide enough information to resolve the
issue .. considering the nature of the other 64bit truncation issues
resolved earlier today i would not be surprised at yet another missing
function prototype, but i am not entirely sure where to start looking
for it.
--
Pascal Hofstee
More information about the freebsd-gnome
mailing list