static iotjs_spi_t* iotjs_spi_create(const iotjs_jval_t* jspi) { iotjs_spi_t* spi = IOTJS_ALLOC(iotjs_spi_t); IOTJS_VALIDATED_STRUCT_CONSTRUCTOR(iotjs_spi_t, spi); iotjs_jobjectwrap_initialize(&_this->jobjectwrap, jspi, &this_module_native_info); #if defined(__linux__) _this->device = iotjs_string_create(""); #endif return spi; }
iotjs_string_t iotjs_jval_as_string(const iotjs_jval_t* jval) { const IOTJS_VALIDATED_STRUCT_METHOD(iotjs_jval_t, jval); IOTJS_ASSERT(iotjs_jval_is_string(jval)); jerry_size_t size = jerry_get_string_size(_this->value); if (size == 0) return iotjs_string_create(""); char* buffer = iotjs_buffer_allocate(size + 1); jerry_char_t* jerry_buffer = (jerry_char_t*)(buffer); size_t check = jerry_string_to_char_buffer(_this->value, jerry_buffer, size); IOTJS_ASSERT(check == size); buffer[size] = '\0'; iotjs_string_t res = iotjs_string_create_with_buffer(buffer, size); return res; }