| 2507 | } |
| 2508 | |
| 2509 | void ObjectInstance::associate_js_gobject(JSContext* cx, |
| 2510 | JS::HandleObject object, |
| 2511 | GObject* gobj) { |
| 2512 | g_assert(!wrapper_is_rooted()); |
| 2513 | |
| 2514 | m_uses_toggle_ref = false; |
| 2515 | m_ptr = gobj; |
| 2516 | set_object_qdata(); |
| 2517 | m_wrapper = object; |
| 2518 | m_gobj_disposed = !!g_object_get_qdata(gobj, ObjectBase::disposed_quark()); |
| 2519 | |
| 2520 | ensure_weak_pointer_callback(cx); |
| 2521 | link(); |
| 2522 | |
| 2523 | if (!G_UNLIKELY(m_gobj_disposed)) |
| 2524 | g_object_weak_ref(gobj, wrapped_gobj_dispose_notify, this); |
| 2525 | } |
| 2526 | |
| 2527 | void ObjectInstance::ensure_uses_toggle_ref(JSContext* cx) { |
| 2528 | if (m_uses_toggle_ref) |