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