diff --git a/binding.gyp b/binding.gyp index f3a38a4..21943d5 100644 --- a/binding.gyp +++ b/binding.gyp @@ -16,6 +16,12 @@ "libraries" : [ "-lgpiod" ], + "cflags": [ + "-O3" + ], + "lflags": [ + "-flto" + ] }] ] } diff --git a/src/line.cc b/src/line.cc index b69c11d..0d32499 100644 --- a/src/line.cc +++ b/src/line.cc @@ -110,14 +110,12 @@ NAN_METHOD(Line::getValue) { } NAN_METHOD(Line::setValue) { - Line *obj = Nan::ObjectWrap::Unwrap(info.This()); - if (!obj->line) { - Nan::ThrowError("::setValue() for line==NULL"); - return; + Line *obj = ObjectWrap::Unwrap(info.Holder()); + v8::Local context = Nan::GetCurrentContext(); + uint32_t value = info[0]->Uint32Value(context).FromJust(); + if (gpiod_line_set_value(obj->line, value) == -1) { + return Nan::ThrowError("setValue() failed."); } - unsigned int value = Nan::To(info[0]).FromJust(); - if (-1 == gpiod_line_set_value(obj->getNativeLine(), value)) - Nan::ThrowError("::setValue() failed"); } NAN_METHOD(Line::requestInputMode) {