refactor(node): switch oaknode to refcounted value handles, migrate consumers

- all 15 OakNode* handle types become neutral by-value structs
  {ctx, addref, release, abi_version}; shared box in
  src/node/c_api/nodehandle.h with owns flag (borrowed accessors
  return non-owning boxes; graph insertion flips owns off)
- oaktimeline/oaktask/oakrender call sites and their own public
  headers migrated to value handles; identity comparisons in
  timeline/task now compare native pointers
- regressions green: oaknode 96, oaktimeline 117, oaktask 106,
  oakrender 44, oakcommon 193, oakcodec 18, oakaudio 36
This commit is contained in:
2026-08-07 17:20:42 +08:00
parent 295ea1bfe5
commit 67176281d9
87 changed files with 4499 additions and 3431 deletions
+3 -3
View File
@@ -37,10 +37,10 @@ extern "C" {
typedef struct OakTimelineWorkArea OakTimelineWorkArea;
/**
* @brief Borrowed work area of a viewer node (sequence). NULL for NULL
* or when the node is not a viewer.
* @brief Borrowed work area of a viewer node (sequence). NULL for an
* empty handle or when the node is not a viewer.
*/
OakTimelineWorkArea *oaktimeline_workarea_of(OakNodeNode *owner);
OakTimelineWorkArea *oaktimeline_workarea_of(OakNodeNode owner);
/**
* @brief Read the work area state. Out params may individually be NULL.