Skip to content

Commit a8d0927

Browse files
Daniel Ballayichoi
authored andcommitted
Add a more secure type validator to gpio module based on #911 (#981)
IoT.js-DCO-1.0-Signed-off-by: Daniel Balla [email protected]
1 parent 2cee4f5 commit a8d0927

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

src/modules/iotjs_module_gpio.c

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,14 @@
2323

2424
static void iotjs_gpio_destroy(iotjs_gpio_t* gpio);
2525
static iotjs_gpio_t* iotjs_gpio_instance_from_jval(const iotjs_jval_t* jgpio);
26-
IOTJS_DEFINE_NATIVE_HANDLE_INFO(gpio);
26+
IOTJS_DEFINE_NATIVE_HANDLE_INFO_THIS_MODULE(gpio);
2727

2828

2929
static iotjs_gpio_t* iotjs_gpio_create(const iotjs_jval_t* jgpio) {
3030
iotjs_gpio_t* gpio = IOTJS_ALLOC(iotjs_gpio_t);
3131
IOTJS_VALIDATED_STRUCT_CONSTRUCTOR(iotjs_gpio_t, gpio);
32-
iotjs_jobjectwrap_initialize(&_this->jobjectwrap, jgpio, &gpio_native_info);
32+
iotjs_jobjectwrap_initialize(&_this->jobjectwrap, jgpio,
33+
&this_module_native_info);
3334
#if defined(__linux__)
3435
_this->value_fd = -1;
3536
#endif
@@ -269,13 +270,12 @@ JHANDLER_FUNCTION(GpioConstructor) {
269270

270271

271272
JHANDLER_FUNCTION(Write) {
272-
DJHANDLER_CHECK_THIS(object);
273+
JHANDLER_DECLARE_THIS_PTR(gpio, gpio);
273274
DJHANDLER_CHECK_ARGS(1, boolean);
274275
DJHANDLER_CHECK_ARG_IF_EXIST(1, function);
275276

276277
const iotjs_jval_t* jcallback = JHANDLER_GET_ARG_IF_EXIST(1, function);
277278
const iotjs_jval_t* jgpio = JHANDLER_GET_THIS(object);
278-
iotjs_gpio_t* gpio = iotjs_gpio_instance_from_jval(jgpio);
279279

280280
bool value = JHANDLER_GET_ARG(0, boolean);
281281

@@ -292,13 +292,12 @@ JHANDLER_FUNCTION(Write) {
292292

293293

294294
JHANDLER_FUNCTION(Read) {
295-
DJHANDLER_CHECK_THIS(object);
295+
JHANDLER_DECLARE_THIS_PTR(gpio, gpio);
296296
DJHANDLER_CHECK_ARGS(0);
297297
DJHANDLER_CHECK_ARG_IF_EXIST(0, function);
298298

299299
const iotjs_jval_t* jcallback = JHANDLER_GET_ARG_IF_EXIST(0, function);
300300
const iotjs_jval_t* jgpio = JHANDLER_GET_THIS(object);
301-
iotjs_gpio_t* gpio = iotjs_gpio_instance_from_jval(jgpio);
302301

303302
if (jcallback) {
304303
GPIO_ASYNC(read, jgpio, jcallback, kGpioOpRead);
@@ -314,12 +313,11 @@ JHANDLER_FUNCTION(Read) {
314313

315314

316315
JHANDLER_FUNCTION(Close) {
317-
DJHANDLER_CHECK_THIS(object);
316+
JHANDLER_DECLARE_THIS_PTR(gpio, gpio)
318317
DJHANDLER_CHECK_ARG_IF_EXIST(0, function);
319318

320319
const iotjs_jval_t* jcallback = JHANDLER_GET_ARG_IF_EXIST(0, function);
321320
const iotjs_jval_t* jgpio = JHANDLER_GET_THIS(object);
322-
iotjs_gpio_t* gpio = iotjs_gpio_instance_from_jval(jgpio);
323321

324322
if (jcallback) {
325323
GPIO_ASYNC(close, jgpio, jcallback, kGpioOpClose);

0 commit comments

Comments
 (0)