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

zlib: use common owner symbol to access JS wrapper #23189

Closed
wants to merge 1 commit into from

Conversation

addaleax
Copy link
Member

@addaleax addaleax commented Oct 1, 2018

Use the same symbol that other AsyncWrap instances also use
for accessing the JS wrapper.

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • commit message follows commit guidelines

Use the same symbol that other `AsyncWrap` instances also use
for accessing the JS wrapper.
@nodejs-github-bot nodejs-github-bot added the zlib Issues and PRs related to the zlib subsystem. label Oct 1, 2018
@danbev
Copy link
Contributor

danbev commented Oct 1, 2018

@@ -300,7 +301,8 @@ function Zlib(opts, mode) {
Transform.call(this, opts);
this.bytesWritten = 0;
this._handle = new binding.Zlib(mode);
this._handle.jsref = this; // Used by processCallback() and zlibOnError()
// Used by processCallback() and zlibOnError()
this._handle[owner_symbol] = this;
Copy link
Member

Choose a reason for hiding this comment

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

Maybe use a non-enumerable property here? Or would this not show up when inspecting the object?

Copy link
Member Author

Choose a reason for hiding this comment

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

It would, but it would show up only when inspecting the handle object. In that case, I think pointing to the JS wrapper is a good idea.

When inspecting the JS wrapper, this shows up as [Circular], which seems okay to me.

Copy link
Member

Choose a reason for hiding this comment

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

I personally would rather hide it since the property itself is probably not useful for the regular user. I also prefer to hide such things so less users would try to abuse any internals. If someone wants to see these properties it's always possible by explicitly requesting that.

Copy link
Member Author

Choose a reason for hiding this comment

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

In that case _handle is probably the thing to hide, not the owner on the handle.

One thing I know I’ve thought about a while ago is a custom inspection function for all native handles – not something that blends them out completely, but rather gives a useful overview over the current state in some way.

@addaleax
Copy link
Member Author

addaleax commented Oct 4, 2018

@addaleax
Copy link
Member Author

addaleax commented Oct 6, 2018

@addaleax addaleax added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Oct 6, 2018
@addaleax
Copy link
Member Author

addaleax commented Oct 6, 2018

@addaleax
Copy link
Member Author

addaleax commented Oct 7, 2018

Landed in a9bb653

@addaleax addaleax closed this Oct 7, 2018
@addaleax addaleax deleted the zlib-owner branch October 7, 2018 22:30
addaleax added a commit that referenced this pull request Oct 7, 2018
Use the same symbol that other `AsyncWrap` instances also use
for accessing the JS wrapper.

PR-URL: #23189
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
targos pushed a commit that referenced this pull request Oct 10, 2018
Use the same symbol that other `AsyncWrap` instances also use
for accessing the JS wrapper.

PR-URL: #23189
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
jasnell pushed a commit that referenced this pull request Oct 17, 2018
Use the same symbol that other `AsyncWrap` instances also use
for accessing the JS wrapper.

PR-URL: #23189
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. zlib Issues and PRs related to the zlib subsystem.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants