Skip to content

Commit e22abcb

Browse files
hs0225daeyeon
authored andcommitted
fix: call destructor of weak pointer explicitly
Signed-off-by: Hosung Kim [email protected]
1 parent f104d6a commit e22abcb

File tree

4 files changed

+38
-32
lines changed

4 files changed

+38
-32
lines changed

deps/node/lib/internal/fs/promises.js

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -75,16 +75,16 @@ const kCloseResolve = Symbol('kCloseResolve');
7575
const kCloseReject = Symbol('kCloseReject');
7676

7777
const { kUsePromises } = binding;
78-
const {
79-
JSTransferable, kDeserialize, kTransfer, kTransferList
80-
} = require('internal/worker/js_transferable');
78+
// const {
79+
// JSTransferable, kDeserialize, kTransfer, kTransferList
80+
// } = require('internal/worker/js_transferable');
8181

8282
const getDirectoryEntriesPromise = promisify(getDirents);
8383
const validateRmOptionsPromise = promisify(validateRmOptions);
8484

85-
class FileHandle extends JSTransferable {
85+
class FileHandle { // extends JSTransferable @lwnode
8686
constructor(filehandle) {
87-
super();
87+
// super(); // @lwnode
8888
this[kHandle] = filehandle;
8989
this[kFd] = filehandle ? filehandle.fd : -1;
9090

@@ -185,32 +185,33 @@ class FileHandle extends JSTransferable {
185185
return this[kClosePromise];
186186
}
187187

188-
[kTransfer]() {
189-
if (this[kClosePromise] || this[kRefs] > 1) {
190-
const DOMException = internalBinding('messaging').DOMException;
191-
throw new DOMException('Cannot transfer FileHandle while in use',
192-
'DataCloneError');
193-
}
194-
195-
const handle = this[kHandle];
196-
this[kFd] = -1;
197-
this[kHandle] = null;
198-
this[kRefs] = 0;
199-
200-
return {
201-
data: { handle },
202-
deserializeInfo: 'internal/fs/promises:FileHandle'
203-
};
204-
}
205-
206-
[kTransferList]() {
207-
return [ this[kHandle] ];
208-
}
209-
210-
[kDeserialize]({ handle }) {
211-
this[kHandle] = handle;
212-
this[kFd] = handle.fd;
213-
}
188+
// @lwnode
189+
// [kTransfer]() {
190+
// if (this[kClosePromise] || this[kRefs] > 1) {
191+
// const DOMException = internalBinding('messaging').DOMException;
192+
// throw new DOMException('Cannot transfer FileHandle while in use',
193+
// 'DataCloneError');
194+
// }
195+
196+
// const handle = this[kHandle];
197+
// this[kFd] = -1;
198+
// this[kHandle] = null;
199+
// this[kRefs] = 0;
200+
201+
// return {
202+
// data: { handle },
203+
// deserializeInfo: 'internal/fs/promises:FileHandle'
204+
// };
205+
// }
206+
207+
// [kTransferList]() {
208+
// return [ this[kHandle] ];
209+
// }
210+
211+
// [kDeserialize]({ handle }) {
212+
// this[kHandle] = handle;
213+
// this[kFd] = handle.fd;
214+
// }
214215
}
215216

216217
async function fsCall(fn, handle, ...args) {

deps/node/src/node_crypto.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1383,7 +1383,8 @@ void SecureContext::SetSessionTimeout(const FunctionCallbackInfo<Value>& args) {
13831383
void SecureContext::Close(const FunctionCallbackInfo<Value>& args) {
13841384
SecureContext* sc;
13851385
ASSIGN_OR_RETURN_UNWRAP(&sc, args.Holder());
1386-
sc->Reset();
1386+
// sc->Reset(); // @lwnode
1387+
delete sc; // @lwnode
13871388
}
13881389

13891390

deps/node/src/node_file.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,8 @@ MaybeLocal<Promise> FileHandle::ClosePromise() {
368368
} else {
369369
close->Resolve();
370370
}
371+
372+
delete close->file_handle(); // @lwnode
371373
}};
372374
int ret = req->Dispatch(uv_fs_close, fd_, AfterClose);
373375
if (ret < 0) {

deps/node/test/skip_tests.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,3 +212,5 @@ test/parallel/test-zlib-invalid-input-memory.js
212212
test/parallel/test-zlib-unused-weak.js
213213
test/parallel/test-repl-syntax-error-stack.js # timeout error occurs when debugger feature has been updated
214214
test/parallel/test-promises-unhandled-rejections.js # crash error occurs when debugger feature has been updated
215+
test/parallel/test-worker-message-port-transfer-fake-js-transferable.js # disable fs message port transfer
216+
test/parallel/test-worker-message-port-transfer-fake-js-transferable-internal.js # disable fs message port transfer

0 commit comments

Comments
 (0)