Re: Error compiling webkitmm



Hello Gavin,

I had a look at the .ccg, .hg and .defs and it seems that enough parameters have been passed in between them. However I am having a hard time understanding the WebKit-Gtk code. Here is the appropriate section of it.

    webkit_web_inspector_signals[INSPECT_WEB_VIEW] = g_signal_new("inspect-web-view",
            G_TYPE_FROM_CLASS(klass),
            (GSignalFlags)G_SIGNAL_RUN_LAST,
            0,
            webkit_inspect_web_view_request_handled,
            NULL,
            webkit_marshal_OBJECT__OBJECT,
            WEBKIT_TYPE_WEB_VIEW , 1,
            WEBKIT_TYPE_WEB_VIEW);

Here is the signal wrapper in webinspector.hg:

  _WRAP_SIGNAL(WebView& inspect_web_view(WebView& web_view), "inspect-web-view", no_default_handler)

Thanks for your time.

On 03/17/2013 10:54 PM, Gavin Lambert wrote:

Hi Dannick,

 

These sorts of errors typically mean that there is some disagreement on the number or types of parameters between the C signal and its C++ wrapper (in this case “inspect_web_view” on WebKitWebInspector), or in your parameter conversion definitions.  Check the definition of this signal in the actual WebKit-GTK C code, in the .defs files (I assume that you have regenerated these as needed), and in your .hg and .ccg files.

 

Regards,

Gavin Lambert

 

From: gtkmm-list [mailto:gtkmm-list-bounces gnome org] On Behalf Of Dannick Pomerleau
Sent: Monday, 18 March 2013 17:12
To: Kjell Ahlstedt
Cc: Gtkmm
Subject: Re: Error compiling webkitmm

 

On 03/11/2013 03:41 AM, Kjell Ahlstedt wrote:

2013-03-11 05:57, Dannick Pomerleau skrev:

The error is comming from this function.

  inline T_return operator()(arg1_type_ _A_a1) const
    {
      if (!empty() && !blocked())
        return (reinterpret_cast<call_type>(slot_base::rep_->call_))(slot_base::rep_, _A_a1);
      return T_return();
    }


/home/dannick/Documents/programming/webkitmm/mainline/webkit/webkitmm/webinspector.cc:249:1:   required from here
/usr/include/sigc++-2.0/sigc++/functors/slot.h:516:23: error: value-initialization of reference type 'WebKit::WebView&'

 

Compilation error messages from libsigc++'s many C++ template functions and template classes can be very difficult to interpret.
The compiler says the error is in slot.h, but don't take that for granted. It can be somewhere else. To start with, it's interesting to know what's in webinspector.cc, around line 249.

Kjell

Sorry I did not get back sooner here is the function from webinspector.cc at around line 249. It starts at  235.

static WebKitWebView* WebInspector_signal_inspect_web_view_callback(WebKitWebInspector* self, WebKitWebView* p0,void* data)
{
  using namespace WebKit;
  typedef sigc::slot< WebView&,WebView& > SlotType;

  // Do not try to call a signal on a disassociated wrapper.
  if(Glib::ObjectBase::_get_current_wrapper((GObject*) self))
  {
    #ifdef GLIBMM_EXCEPTIONS_ENABLED
    try
    {
    #endif //GLIBMM_EXCEPTIONS_ENABLED
      if(sigc::slot_base *const slot = Glib::SignalProxyNormal::data_to_slot(data))
        return ((*static_cast<SlotType*>(slot))(*Glib::wrap(p0)
)).gobj();
    #ifdef GLIBMM_EXCEPTIONS_ENABLED
    }
    catch(...)
    {
      Glib::exception_handlers_invoke();
    }
    #endif //GLIBMM_EXCEPTIONS_ENABLED
  }

  typedef WebKitWebView* RType;
  return RType();
}

Here is a link to the github repository I created with the changes I have made until now.




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