Commit 54d60c27 authored by Giovanni Campagna's avatar Giovanni Campagna
Browse files

Do not call priv_from_js from the GObject tracer

priv_from_js calls JS_BeginRequest when it refers to a dynamic JSClass
(such as that used by GObjects), and that causes a deadlock when
called from the GC thread

https://bugzilla.gnome.org/show_bug.cgi?id=678908
parent e0421208
......@@ -1044,7 +1044,11 @@ object_instance_trace(JSTracer *tracer,
ObjectInstance *priv;
GList *iter;
priv = priv_from_js(tracer->context, obj);
/* DO NOT use priv_from_js here: that uses JS_BeginRequest,
but this is called from the GC thread, and deadlocks
We know we're of the right JSClass anyway.
*/
priv = JS_GetPrivate(tracer->context, obj);
for (iter = priv->signals; iter; iter = iter->next) {
ConnectData *cd = iter->data;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment