X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=bindings%2Fpython%2Fbabeltrace.i.in;h=f07f2fb7af025f321e3664c39d0f424121f2a39c;hp=5142952ec5fdeac715a28e01510354b29ed68f07;hb=9132dc67804f7e868c21f759bf739ace4ce069b6;hpb=0e1b84aa80398d5573b73ae4d6ae79d6a930a2fd diff --git a/bindings/python/babeltrace.i.in b/bindings/python/babeltrace.i.in index 5142952e..f07f2fb7 100644 --- a/bindings/python/babeltrace.i.in +++ b/bindings/python/babeltrace.i.in @@ -99,6 +99,7 @@ const char *_bt_python_get_array_string(struct bt_definition *field); const char *_bt_python_get_sequence_string(struct bt_definition *field); int _bt_python_field_integer_get_signedness(const struct bt_ctf_field *field); enum ctf_type_id _bt_python_get_field_type(const struct bt_ctf_field *field); +struct bt_iter_pos *_bt_python_create_iter_pos(void); /* ================================================================= CONTEXT.H, CONTEXT-INTERNAL.H @@ -223,21 +224,24 @@ class TraceCollection: event after the the generator has gone out of scope may result in a crash or data corruption. """ - begin_pos_ptr = _bt_iter_pos() - end_pos_ptr = _bt_iter_pos() + begin_pos_ptr = _bt_python_create_iter_pos() + end_pos_ptr = _bt_python_create_iter_pos() begin_pos_ptr.type = SEEK_BEGIN end_pos_ptr.type = SEEK_LAST for event in self._events(begin_pos_ptr, end_pos_ptr): yield event + _bt_iter_free_pos(begin_pos_ptr) + _bt_iter_free_pos(end_pos_ptr) + def events_timestamps(self, timestamp_begin, timestamp_end): """ Generator function to iterate over the events of open in the current TraceCollection from timestamp_begin to timestamp_end. """ - begin_pos_ptr = _bt_iter_pos() - end_pos_ptr = _bt_iter_pos() + begin_pos_ptr = _bt_python_create_iter_pos() + end_pos_ptr = _bt_python_create_iter_pos() begin_pos_ptr.type = end_pos_ptr.type = SEEK_TIME begin_pos_ptr.u.seek_time = timestamp_begin end_pos_ptr.u.seek_time = timestamp_end @@ -245,6 +249,9 @@ class TraceCollection: for event in self._events(begin_pos_ptr, end_pos_ptr): yield event + _bt_iter_free_pos(begin_pos_ptr) + _bt_iter_free_pos(end_pos_ptr) + @property def timestamp_begin(self): pos_ptr = _bt_iter_pos()