-
-
Notifications
You must be signed in to change notification settings - Fork 488
fix: missing node_api_nogc_env definition #1585
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
name: Node.js CI with node-api-headers | ||
|
||
on: [push, pull_request] | ||
|
||
env: | ||
PYTHON_VERSION: '3.11' | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
test: | ||
timeout-minutes: 30 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
api_version: | ||
- '9' | ||
node-version: | ||
- 22.x | ||
node-api-headers-version: | ||
- '1.1.0' | ||
- '1.2.0' | ||
- '1.3.0' | ||
os: | ||
- ubuntu-latest | ||
compiler: | ||
- gcc | ||
- clang | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- name: Harden Runner | ||
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1 | ||
with: | ||
egress-policy: audit | ||
|
||
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 | ||
- name: Set up Python ${{ env.PYTHON_VERSION }} | ||
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0 | ||
with: | ||
python-version: ${{ env.PYTHON_VERSION }} | ||
- name: Use Node.js ${{ matrix.node-version }} | ||
uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
- name: Check Node.js installation | ||
run: | | ||
node --version | ||
npm --version | ||
- name: Install dependencies | ||
run: | | ||
npm install | ||
npm install "node-api-headers@${{ matrix.node-api-headers-version }}" | ||
- name: npm test | ||
run: | | ||
export NAPI_VERSION=${{ matrix.api_version }} | ||
if [ "${{ matrix.compiler }}" = "gcc" ]; then | ||
export CC="gcc" CXX="g++" | ||
fi | ||
if [ "${{ matrix.compiler }}" = "clang" ]; then | ||
export CC="clang" CXX="clang++" | ||
fi | ||
echo "CC=\"$CC\" CXX=\"$CXX\"" | ||
echo "$CC --version" | ||
$CC --version | ||
echo "$CXX --version" | ||
$CXX --version | ||
export CFLAGS="$CFLAGS -O3 --coverage" LDFLAGS="$LDFLAGS --coverage" | ||
export use_node_api_headers=true | ||
echo "CFLAGS=\"$CFLAGS\" LDFLAGS=\"$LDFLAGS\"" | ||
npm run pretest -- --verbose |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -299,6 +299,14 @@ template <typename T> | |
using MaybeOrValue = T; | ||
#endif | ||
|
||
#ifdef NODE_API_EXPERIMENTAL_HAS_POST_FINALIZER | ||
using node_addon_api_basic_env = node_api_nogc_env; | ||
using node_addon_api_basic_finalize = node_api_nogc_finalize; | ||
#else | ||
using node_addon_api_basic_env = napi_env; | ||
using node_addon_api_basic_finalize = napi_finalize; | ||
#endif | ||
|
||
/// Environment for Node-API values and operations. | ||
/// | ||
/// All Node-API values and operations must be associated with an environment. | ||
|
@@ -314,16 +322,20 @@ using MaybeOrValue = T; | |
/// corresponds to an Isolate. | ||
class BasicEnv { | ||
private: | ||
node_api_nogc_env _env; | ||
node_addon_api_basic_env _env; | ||
#if NAPI_VERSION > 5 | ||
template <typename T> | ||
static void DefaultFini(Env, T* data); | ||
template <typename DataType, typename HintType> | ||
static void DefaultFiniWithHint(Env, DataType* data, HintType* hint); | ||
#endif // NAPI_VERSION > 5 | ||
public: | ||
BasicEnv(node_api_nogc_env env); | ||
BasicEnv(node_addon_api_basic_env env); | ||
#ifdef NODE_API_EXPERIMENTAL_HAS_POST_FINALIZER | ||
|
||
operator node_api_nogc_env() const; | ||
#else | ||
operator napi_env() const; | ||
#endif | ||
|
||
// Without these operator overloads, the error: | ||
// | ||
|
@@ -2470,7 +2482,9 @@ class ObjectWrap : public InstanceWrap<T>, public Reference<Object> { | |
napi_callback_info info); | ||
static napi_value StaticSetterCallbackWrapper(napi_env env, | ||
napi_callback_info info); | ||
static void FinalizeCallback(node_api_nogc_env env, void* data, void* hint); | ||
static void FinalizeCallback(node_addon_api_basic_env env, | ||
void* data, | ||
void* hint); | ||
|
||
static void PostFinalizeCallback(napi_env env, void* data, void* hint); | ||
|
||
|
Uh oh!
There was an error while loading. Please reload this page.