Python bindings: work around Python 3.5 behaviour change
[babeltrace.git] / bindings / python / reader.py
index 6758043599276d3c535708cd08054f034e22895f..354403362d534d363e9f2fb73b21c129bd466ad2 100644 (file)
@@ -145,14 +145,17 @@ class TraceCollection:
         they need *from* an event before accessing the next one.
         """
 
-        begin_pos_ptr = nbt._bt_iter_pos()
-        end_pos_ptr = nbt._bt_iter_pos()
+        begin_pos_ptr = nbt._bt_python_create_iter_pos()
+        end_pos_ptr = nbt._bt_python_create_iter_pos()
         begin_pos_ptr.type = nbt.SEEK_BEGIN
         end_pos_ptr.type = nbt.SEEK_LAST
 
         for event in self._events(begin_pos_ptr, end_pos_ptr):
             yield event
 
+        nbt._bt_iter_free_pos(begin_pos_ptr);
+        nbt._bt_iter_free_pos(end_pos_ptr);
+
     def events_timestamps(self, timestamp_begin, timestamp_end):
         """
         Generates the ordered :class:`Event` objects of all the opened
@@ -165,8 +168,8 @@ class TraceCollection:
         See :attr:`events` for notes and limitations.
         """
 
-        begin_pos_ptr = nbt._bt_iter_pos()
-        end_pos_ptr = nbt._bt_iter_pos()
+        begin_pos_ptr = nbt._bt_python_create_iter_pos()
+        end_pos_ptr = nbt._bt_python_create_iter_pos()
         begin_pos_ptr.type = end_pos_ptr.type = nbt.SEEK_TIME
         begin_pos_ptr.u.seek_time = timestamp_begin
         end_pos_ptr.u.seek_time = timestamp_end
@@ -174,6 +177,9 @@ class TraceCollection:
         for event in self._events(begin_pos_ptr, end_pos_ptr):
             yield event
 
+        nbt._bt_iter_free_pos(begin_pos_ptr);
+        nbt._bt_iter_free_pos(end_pos_ptr);
+
     @property
     def timestamp_begin(self):
         """
This page took 0.024476 seconds and 4 git commands to generate.