From 309be9522ba70fc1371ea50b3033b49f4428a01f Mon Sep 17 00:00:00 2001 From: Yilin Sun Date: Sat, 18 Mar 2023 10:16:33 +0800 Subject: [PATCH] Added allocation failure chcks, enabled sleep gem. Signed-off-by: Yilin Sun --- configs/lpc55s69.rb | 1 + mrbgems/machine-adc/src/adc.c | 3 +++ mrbgems/machine-gpio/src/gpio.c | 3 +++ 3 files changed, 7 insertions(+) diff --git a/configs/lpc55s69.rb b/configs/lpc55s69.rb index 3169e26..f070911 100644 --- a/configs/lpc55s69.rb +++ b/configs/lpc55s69.rb @@ -47,6 +47,7 @@ MRuby::CrossBuild.new("lpc55s69") do |conf| conf.gem :core => "mruby-math" conf.gem :core => "mruby-numeric-ext" conf.gem :core => "mruby-print" + conf.gem :core => "mruby-sleep" conf.gem :core => "mruby-sprintf" conf.gem :core => "mruby-string-ext" conf.gem :core => "mruby-time" diff --git a/mrbgems/machine-adc/src/adc.c b/mrbgems/machine-adc/src/adc.c index 85cad28..a2ca747 100644 --- a/mrbgems/machine-adc/src/adc.c +++ b/mrbgems/machine-adc/src/adc.c @@ -40,6 +40,9 @@ static mrb_value mrb_adc_initialize(mrb_state *mrb, mrb_value self) { } mrb_adc_t *adc_ch = mrb_malloc(mrb, sizeof(mrb_adc_t)); + if (adc_ch == NULL) { + mrb_raise(mrb, E_RUNTIME_ERROR, "Failed to allocate ADC struct"); + } adc_ch->channel = channel_id; adc_ch->avg = avg; diff --git a/mrbgems/machine-gpio/src/gpio.c b/mrbgems/machine-gpio/src/gpio.c index e2bd335..2ac74f7 100644 --- a/mrbgems/machine-gpio/src/gpio.c +++ b/mrbgems/machine-gpio/src/gpio.c @@ -66,6 +66,9 @@ static mrb_value mrb_gpio_initialize(mrb_state *mrb, mrb_value self) { } mrb_gpio_t *pin = mrb_malloc(mrb, sizeof(mrb_gpio_t)); + if (pin == NULL) { + mrb_raise(mrb, E_RUNTIME_ERROR, "Failed to allocate GPIO struct"); + } pin->pin = pin_num; pin->cfg.initial_value = init_value;