私は正常に動作しているコードのこのビット、持っている:web
がスコープ内にまだあるが、スコープの外に落ちたsettings
いくつかの後の時点でGlib :: RefPtrがスコープの外に出た後のSIGSEGV?
WebKit::WebView web;
// later:
{
Glib::RefPtr<WebKit::WebSettings> settings = WebKit::WebSettings::create();
// do some stuff to the object
web.set_settings(settings);
}
を、私は次の操作を行います
Glib::RefPtr<WebKit::WebSettings> settings = web.get_settings();
このは、で作成した元の設定オブジェクトを復元する必要があります。しかし、実際に何が起こることは、私は次の出力で、(get_settings
から呼び出される)Glib::wrap_auto
でSIGSEGVを取得することです:
GLib-GObject-CRITICAL **: g_object_get_qdata: assertion `G_IS_OBJECT (object)' failed
私の仮定が最初settings
ポインタがスコープ外に落ちたとき何とかそれが基礎となるオブジェクトを破壊したということです、他のオブジェクトのプロパティに割り当てられているにもかかわらずなぜそれが起こっているのですか?おそらく、私は上記の何かを間違っているのですが、コードは私にとっては正気のようです。 (私は、プロパティにオブジェクトを割り当てるとCオブジェクトの参照カウントが増加すると推測しています)。
はい、そうです。私は最近、この問題を修正するためにバインディングを更新するだけでなく、欠けている新しいWebkitの機能を追加することを煩わしてきました。 – Miral