X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fbindings%2Fpython%2Fbt2%2Fbt2%2Fnative_bt_trace_class.i;fp=src%2Fbindings%2Fpython%2Fbt2%2Fbt2%2Fnative_bt_trace_class.i;h=60c3e7d82ce085d350ed1e4e455ef0db825cb731;hb=ee2cad25d5c65cd781169c897a53310cee9948fe;hp=fd48deebdb32b38562a2d247d1514c604db1e6c1;hpb=5ae9f1bf3332a2dff16e6e811b982f0b5602dc47;p=babeltrace.git diff --git a/src/bindings/python/bt2/bt2/native_bt_trace_class.i b/src/bindings/python/bt2/bt2/native_bt_trace_class.i index fd48deeb..60c3e7d8 100644 --- a/src/bindings/python/bt2/bt2/native_bt_trace_class.i +++ b/src/bindings/python/bt2/bt2/native_bt_trace_class.i @@ -51,25 +51,24 @@ trace_class_destroyed_listener(const bt_trace_class *trace_class, void *py_calla Py_XDECREF(py_res); } -uint64_t bt_bt2_trace_class_add_destruction_listener(bt_trace_class *trace_class, - PyObject *py_callable) +int bt_bt2_trace_class_add_destruction_listener( + bt_trace_class *trace_class, PyObject *py_callable, + uint64_t *id) { - uint64_t id = UINT64_C(-1); bt_trace_class_add_listener_status status; BT_ASSERT(trace_class); BT_ASSERT(py_callable); status = bt_trace_class_add_destruction_listener( - trace_class, trace_class_destroyed_listener, py_callable, &id); - if (status != __BT_FUNC_STATUS_OK) { - BT_LOGF_STR("Failed to add trace class destruction listener."); - abort(); + trace_class, trace_class_destroyed_listener, py_callable, id); + if (status == __BT_FUNC_STATUS_OK) { + Py_INCREF(py_callable); } - Py_INCREF(py_callable); - return id; + return status; } %} -uint64_t bt_bt2_trace_class_add_destruction_listener(bt_trace_class *trace_class, - PyObject *py_callable); +int bt_bt2_trace_class_add_destruction_listener( + bt_trace_class *trace_class, PyObject *py_callable, + uint64_t *id);