ID:2897961
 
Resolved
Breaking change: Byondapi has been overhauled significantly prior to 515 moving to the stable channel. The quick version of this is:
  • CByondValue is now a POD (plain old data) struct; it never contains a copy of string data and therefore doesn't need init/free/copy/move routines, which have been removed. This significantly simplifies working with data values to avoid a lot of problems, and also avoids costly conversions when they aren't needed.
  • Byond_GetStr() has been removed in favor of Byond_ToString(), since string data is no longer directly in CByondValue. ByondValue_SetStr() still works, although it's mostly an alias for the new Byond_AddGetStrId().
  • CByondValueList has been removed.
  • For reading list and string data, allocations for the copied data are handled by the end user. See the byondapi.h header for details.
  • A few new functions have been added, most notably ByondValue_IsTrue() and Byond_ThreadSync().
  • C++ wrappers have been similarly updated, and there's some support for using STL strings and vectors for ease of use.
  • The byondapi.h header has new Doxygen-style comments for all its functions and structures.
Byondapi projects that don't manipulate strings or lists might not actually need to change their code at all for the new API, but it's assumed most will be affected in some way.
Applies to:Dream Daemon
Status: Resolved (515.1620)

This issue has been resolved.
Byondapi is getting overhauled prior to 515 moving to the stable channel.
Lummox JR resolved issue with message:
Breaking change: Byondapi has been overhauled significantly prior to 515 moving to the stable channel. The quick version of this is:
  • CByondValue is now a POD (plain old data) struct; it never contains a copy of string data and therefore doesn't need init/free/copy/move routines, which have been removed. This significantly simplifies working with data values to avoid a lot of problems, and also avoids costly conversions when they aren't needed.
  • Byond_GetStr() has been removed in favor of Byond_ToString(), since string data is no longer directly in CByondValue. ByondValue_SetStr() still works, although it's mostly an alias for the new Byond_AddGetStrId().
  • CByondValueList has been removed.
  • For reading list and string data, allocations for the copied data are handled by the end user. See the byondapi.h header for details.
  • A few new functions have been added, most notably ByondValue_IsTrue() and Byond_ThreadSync().
  • C++ wrappers have been similarly updated, and there's some support for using STL strings and vectors for ease of use.
  • The byondapi.h header has new Doxygen-style comments for all its functions and structures.
Byondapi projects that don't manipulate strings or lists might not actually need to change their code at all for the new API, but it's assumed most will be affected in some way.