wasmer-napi 0.702.0

NAPI library for Wasmer WebAssembly runtime
#include "internal/napi_ref_tracker.h"

void napi_ref_tracker__::Link(RefList* list) {
  prev_ = list;
  next_ = list->next_;
  if (next_ != nullptr) {
    next_->prev_ = this;
  }
  list->next_ = this;
}

void napi_ref_tracker__::Unlink() {
  if (prev_ != nullptr) {
    prev_->next_ = next_;
  }
  if (next_ != nullptr) {
    next_->prev_ = prev_;
  }
  prev_ = nullptr;
  next_ = nullptr;
}

void napi_ref_tracker__::FinalizeAll(RefList* list) {
  while (list->next_ != nullptr) {
    list->next_->Finalize();
  }
}