utils._check_type(msg, bt2.message._Message)
- # Release the reference to the native part.
- ptr = msg._release()
- return int(ptr)
+ # The reference we return will be given to the message array.
+ # However, the `msg` Python object may stay alive, if the user has kept
+ # a reference to it. Acquire a new reference to account for that.
+ msg._get_ref(msg._ptr)
+ return int(msg._ptr)
def _create_event_message(self, event_class, packet, default_clock_snapshot=None):
utils._check_type(event_class, bt2.event_class._EventClass)
if packet.stream.cls.packets_have_beginning_default_clock_snapshot:
if default_clock_snapshot is None:
- raise ValueError("packet beginning messages in this stream must have a default clock snapshots")
+ raise ValueError("packet beginning messages in this stream must have a default clock snapshot")
utils._check_uint64(default_clock_snapshot)
ptr = native_bt.message_packet_beginning_create_with_default_clock_snapshot(
self._ptr, packet._ptr, default_clock_snapshot)
else:
if default_clock_snapshot is not None:
- raise ValueError("packet beginning messages in this stream must not have a default clock snapshots")
+ raise ValueError("packet beginning messages in this stream must not have a default clock snapshot")
ptr = native_bt.message_packet_beginning_create(self._ptr, packet._ptr)
if packet.stream.cls.packets_have_end_default_clock_snapshot:
if default_clock_snapshot is None:
- raise ValueError("packet end messages in this stream must have a default clock snapshots")
+ raise ValueError("packet end messages in this stream must have a default clock snapshot")
utils._check_uint64(default_clock_snapshot)
ptr = native_bt.message_packet_end_create_with_default_clock_snapshot(
self._ptr, packet._ptr, default_clock_snapshot)
else:
if default_clock_snapshot is not None:
- raise ValueError("packet end messages in this stream must not have a default clock snapshots")
+ raise ValueError("packet end messages in this stream must not have a default clock snapshot")
ptr = native_bt.message_packet_end_create(self._ptr, packet._ptr)