Method: Containers::CDeque#initialize

Defined in:
ext/containers/deque/deque.c

#initialize(*args) ⇒ Object



201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
# File 'ext/containers/deque/deque.c', line 201

static VALUE deque_init(int argc, VALUE *argv, VALUE self)
{
  long len, i;
  VALUE ary;
  
  if(argc == 0) {
    return self;
  }
  else if(argc > 1) {
    rb_raise(rb_eArgError, "wrong number of arguments");
  }
  else {
    ary = rb_check_array_type(argv[0]);
    if(!NIL_P(ary)) {
      len = RARRAY_LEN(ary);
      for (i = 0; i < len; i++) {
        deque_push_back(self, RARRAY_PTR(ary)[i]);
      }
    }
  }
  return self;
}