diff options
Diffstat (limited to 'ext/socket/option.c')
-rw-r--r-- | ext/socket/option.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/ext/socket/option.c b/ext/socket/option.c index 0b461f174a..3d7243e6e0 100644 --- a/ext/socket/option.c +++ b/ext/socket/option.c @@ -37,14 +37,13 @@ optname_to_sym(int level, int optname) static VALUE sockopt_initialize(VALUE self, VALUE vfamily, VALUE vlevel, VALUE voptname, VALUE data) { - int family; - int level; + int family = family_arg(vfamily); + int level = level_arg(vlevel); + int optname = optname_arg(level, voptname); StringValue(data); - level = level_arg(vlevel); - family = family_arg(vfamily); rb_ivar_set(self, rb_intern("family"), INT2NUM(family)); rb_ivar_set(self, rb_intern("level"), INT2NUM(level)); - rb_ivar_set(self, rb_intern("optname"), INT2NUM(optname_arg(level, voptname))); + rb_ivar_set(self, rb_intern("optname"), INT2NUM(optname)); rb_ivar_set(self, rb_intern("data"), data); return self; } |