安全说明


🌐 Safety notes

node:ffi 模块不跟踪指针有效性、内存所有权或本地对象的生命周期。

🌐 The node:ffi module does not track pointer validity, memory ownership, or native object lifetimes.

特别是:

🌐 In particular:

  • 不要从已释放的内存中读取或向其写入。
  • 在本地内存被释放后,不要使用零拷贝视图。
  • 不要为本地符号声明错误的签名。
  • 在本地代码可能仍会调用回调时,不要取消注册回调。
  • library.close()library.unregisterCallback(pointer) 之后不要调用回调指针。
  • 假设未定义的回调行为可能会导致进程崩溃、产生错误的输出或破坏内存。
  • 不要假设指针返回值意味着所有权;调用者是否必须释放返回的地址完全取决于本地 API。

一般来说,除非需要零拷贝访问,否则应优先使用复制的值,并在本地端显式保持回调和指针的生命周期。

🌐 As a general rule, prefer copied values unless zero-copy access is required, and keep callback and pointer lifetimes explicit on the native side.