Re: [Windows] Trash in sigc::trackable::callback_list_ when class is derived from Glib::Object



On 03/09/2014 10:17, Marcin Kolny wrote:
Hi,
Recently I've used glibmm on Windows, and I've met very strange problem. Assume simple class:

class Test : public Glib::Object
{
public:
    Test()
    {
    }
};

When I instantiate this class, I see in debugger, that callback_list_ of this object is not null (exactly, 0xfffffffc), but should be null. It disallows me to use e.g. sigc::mem_fun. I saw in trackable constructor, that this field is set to zero, but when I used debugger, and step by step through code, I noticed, that callback_list_ changes at the beginning of Glib::Object constructor.


Hi Marcin. I don't have any explanation but I can confirm that the same thing happens if I build your test sample with MSVC 8. In fact AFAICT it happens with any glibmm object that's derived from ObjectBase. For example, Glib::Interface and Gio::Icon both exhibit the same behaviour. However, if I derive my own classes from Glib::ObjectBase, they show 'callback_list_' as being zero (immediately after construction). Unfortunately I'm not familiar enough with glibmm to know if what we're seeing is indicative of a problem (e.g. should you have called some initialization function before using GObject??) Maybe sigc++ needs some initialization - or even glibmm itself?

John


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]