X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=bindings%2Fruby%2Fclasses.i;h=fbd7c36c95d9c57d008c3d128eb11be622269ac4;hb=HEAD;hp=96bd3770d28d76666330a8034b3c6d127814614c;hpb=27d44cf6e0eaaa75979510596d6148193a8434c0;p=libsigrok.git diff --git a/bindings/ruby/classes.i b/bindings/ruby/classes.i index 96bd3770..fbd7c36c 100644 --- a/bindings/ruby/classes.i +++ b/bindings/ruby/classes.i @@ -41,10 +41,10 @@ which provides access to the error code and description." %module(docstring=DOCSTRING) sigrok %{ +#include "config.h" + #include #include - -#include "config.h" %} %include "../swig/templates.i" @@ -113,6 +113,7 @@ static VALUE variant_to_ruby(Glib::VariantBase variant) } else { SWIG_exception(SWIG_TypeError, ("TODO: GVariant(" + variant.get_type().get_string() + ") -> Ruby").c_str()); } + return 0; /* Dummy, to avoid a compiler warning. */ } %} @@ -140,7 +141,7 @@ static VALUE variant_to_ruby(Glib::VariantBase variant) VALUE string_obj = rb_external_str_new_with_enc(message.c_str(), message.length(), rb_utf8_encoding()); - VALUE args = rb_ary_new_from_args(2, log_obj, string_obj); + VALUE args = rb_ary_new3(2, log_obj, string_obj); rb_proc_call(*proc.get(), args); }; } @@ -176,7 +177,7 @@ static VALUE variant_to_ruby(Glib::VariantBase variant) SWIG_as_voidptr(new std::shared_ptr(packet)), SWIGTYPE_p_std__shared_ptrT_sigrok__Packet_t, SWIG_POINTER_OWN); - VALUE args = rb_ary_new_from_args(2, device_obj, packet_obj); + VALUE args = rb_ary_new3(2, device_obj, packet_obj); rb_proc_call(*proc.get(), args); }; } @@ -235,6 +236,8 @@ Glib::VariantBase ruby_to_variant_by_key(VALUE input, const sigrok::ConfigKey *k return Glib::Variant::create(RFLOAT_VALUE(input)); else if (type == SR_T_INT32 && RB_TYPE_P(input, T_FIXNUM)) return Glib::Variant::create(NUM2INT(input)); + else if (type == SR_T_UINT32 && RB_TYPE_P(input, T_FIXNUM)) + return Glib::Variant::create(NUM2UINT(input)); else throw sigrok::Error(SR_ERR_ARG); } @@ -260,6 +263,8 @@ Glib::VariantBase ruby_to_variant_by_option(VALUE input, std::shared_ptr::create(RFLOAT_VALUE(input)); else if (variant.is_of_type(Glib::VARIANT_TYPE_INT32) && RB_TYPE_P(input, T_FIXNUM)) return Glib::Variant::create(NUM2INT(input)); + else if (variant.is_of_type(Glib::VARIANT_TYPE_UINT32) && RB_TYPE_P(input, T_FIXNUM)) + return Glib::Variant::create(NUM2UINT(input)); else throw sigrok::Error(SR_ERR_ARG); }