Skip to content

0.5.3 Release

Choose a tag to compare

@grzesl grzesl released this 08 Apr 17:46

0.5.3

Dart layer

  • Fixed critical race condition in dispose() — close() is now Future<void> and properly awaited before freeing native resources
  • Fixed potential memory leak in write() — native buffer is now always freed via try/finally
  • Fixed RangeError crash when receiving unknown event type from C++ — fromInt() now returns null for out-of-range values
  • Removed unnecessary async from getModemStatus() — it was synchronous all along
  • Improved native library load error message with platform context
  • Fixed missing braces on single-statement if blocks in setDTR()/setRTS()

Native library (C++)

  • Fixed incomplete termios configuration on POSIX — added cfmakeraw(), VMIN=0, VTIME=0 to prevent inherited terminal settings from corrupting communication
  • Fixed data race on last_modem_status and send_port_id — both are now std::atomic
  • Fixed partial write on POSIX — write() now loops until all bytes are sent
  • Fixed missing guard in write(), set_dtr(), set_rts() when port is closed
  • Expanded POSIX baud rate support: added 57600, 230400, 460800, 921600 (platform-conditional)
  • Fixed redundant double close() call in serial_free() — destructor already handles it
  • Added Windows COM port path fix — ports above COM9 now automatically use \\.\COMx prefix required by CreateFileA