Skip to content
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

doc: update examples for context sensitivity #1013

Closed

Conversation

KevinEady
Copy link
Contributor

Closes: #1011

constructor.SuppressDestruct();
Napi::FunctionReference *constructor = new Napi::FunctionReference();
*constructor = Napi::Persistent(func);
env.SetInstanceData(constructor);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A finalizer is required for this FunctionReference pointer right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @legendecas ,

Good question... I was under the impression that the instance data would be deleted, so there would be no need for a Finalizer.

Is my understanding correct?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eh, IIUC, it's node-addon-api's default finalizer deleted the data pointer: https://github.com/nodejs/node-addon-api/blob/main/napi.h#L208. Not quite intuitive tho... So no finalizer is required here.

Copy link
Member

@legendecas legendecas Jun 22, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Delete you point out only deleting the RefBase structure allocated in Node.js core, which would invoke the finalizer provided by node-addon-api. (Update: no, the lines don't invoke finalizers as they are replacing existing instance data)

Copy link
Member

@mhdawson mhdawson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

mhdawson pushed a commit that referenced this pull request Jul 9, 2021
Fixes: #1011

PR-URL: #1013
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
@mhdawson
Copy link
Member

mhdawson commented Jul 9, 2021

Landed as 627dbf3

@mhdawson mhdawson closed this Jul 9, 2021
deepakrkris pushed a commit to deepakrkris/node-addon-api that referenced this pull request Sep 23, 2021
Fixes: nodejs#1011

PR-URL: nodejs#1013
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
deepakrkris pushed a commit to deepakrkris/node-addon-api that referenced this pull request Oct 15, 2021
Fixes: nodejs#1011

PR-URL: nodejs#1013
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
kevindavies8 added a commit to kevindavies8/node-addon-api-Develop that referenced this pull request Aug 24, 2022
Marlyfleitas added a commit to Marlyfleitas/node-api-addon-Development that referenced this pull request Aug 26, 2022
wroy7860 added a commit to wroy7860/addon-api-benchmark-node that referenced this pull request Sep 19, 2022
johnfrench3 pushed a commit to johnfrench3/node-addon-api-git that referenced this pull request Aug 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

"Class property and descriptor" example crashes in Electron render process on reload
3 participants