From 994f5bdb525ae29b3d2a1e9b728b3254f8ddf049 Mon Sep 17 00:00:00 2001 From: andrew morton Date: Fri, 13 Dec 2013 23:40:32 -0800 Subject: [PATCH] Remove unmatched uv_unref() causing segfault Also, properly close the async watcher when closing the port. Fixes https://github.com/justinlatimer/node-midi/issues/16 --- src/node-midi.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/node-midi.cpp b/src/node-midi.cpp index 7f6ad7f..bf3f59e 100644 --- a/src/node-midi.cpp +++ b/src/node-midi.cpp @@ -234,7 +234,6 @@ class NodeMidiInput : public ObjectWrap NodeMidiInput* input = new NodeMidiInput(); input->message_async.data = input; uv_async_init(uv_default_loop(), &input->message_async, NodeMidiInput::EmitMessage); - uv_unref((uv_handle_t*)uv_default_loop()); input->Wrap(args.This()); return args.This(); } @@ -300,6 +299,7 @@ class NodeMidiInput : public ObjectWrap NodeMidiInput* input = ObjectWrap::Unwrap(args.This()); input->Unref(); input->in->closePort(); + uv_close((uv_handle_t*)&input->message_async, NULL); return scope.Close(v8::Undefined()); }