diff --git a/gst/gstelement.override b/gst/gstelement.override index 7cc0d03843..e8dc0ab055 100644 --- a/gst/gstelement.override +++ b/gst/gstelement.override @@ -232,7 +232,10 @@ pad_name_from_object (PyObject *object, const gchar **name) *name = PyString_AsString (object); return TRUE; } else if (pygobject_check (object, &PyGstPad_Type)) { - *name = gst_object_get_name (GST_OBJECT (pygobject_get (object))); + GstObject *obj = GST_OBJECT (pygobject_get (object)); + pyg_begin_allow_threads; + *name = gst_object_get_name (obj); + pyg_end_allow_threads; return TRUE; } PyErr_SetString(PyExc_TypeError, "argument could not be converted to a pad"); diff --git a/gst/gstmessage.override b/gst/gstmessage.override index 7568522b9a..a383fd01f8 100644 --- a/gst/gstmessage.override +++ b/gst/gstmessage.override @@ -35,7 +35,13 @@ _wrap_gst_message_tp_repr (PyGstMiniObject *self) structure_str = msg->structure ? gst_structure_to_string (msg->structure) : g_strdup ("(none)"); - src_str = msg->src ? gst_object_get_name (msg->src) : g_strdup ("(no src)"); + if (msg->src) { + pyg_begin_allow_threads; + src_str = gst_object_get_name (msg->src); + pyg_end_allow_threads; + } else { + src_str = g_strdup ("(no src)"); + } repr = g_strdup_printf ("", structure_str, src_str, msg); diff --git a/gst/gstpad.override b/gst/gstpad.override index 930019f8f5..2e32f60011 100644 --- a/gst/gstpad.override +++ b/gst/gstpad.override @@ -656,24 +656,29 @@ _wrap_gst_pad_tp_repr (PyGObject *self) gchar *elementname = NULL; pad = GST_PAD(self->obj); - parent = GST_ELEMENT (gst_pad_get_parent (pad)); - + + pyg_begin_allow_threads; padname = gst_pad_get_name (pad); + + parent = GST_ELEMENT (gst_pad_get_parent (pad)); if (parent) - elementname = gst_element_get_name (parent); + elementname = gst_element_get_name (parent); buf = g_strdup_printf ("", parent ? elementname : "---", padname, (long) self->obj); + g_free(padname); + if (parent) { gst_object_unref (parent); - g_free(elementname); + g_free(elementname); } - g_free(padname); + pyg_end_allow_threads; retval = PyString_FromString(buf); g_free(buf); + return retval; }