Exemple #1
0
 Arguments(Symbol* name, Array* ary)
   : name_(name)
   , recv_(Qnil)
   , block_(Qnil)
 {
   use_array(ary);
 }
void* thread(void *dummy)
{
    int a[ARRAY_SIZE];

    use_array(a);

    return 0;
}
Exemple #3
0
  void Message::unshift_argument(STATE, Object* val) {
    if(arguments_array) {
      arguments_array->unshift(state, val);

      // Repoint internal things since we manipulated the array
      use_array(arguments_array);
      return;
    }

    Array* ary = Array::create(state, args() + 1);

    ary->set(state, 0, val);

    for(size_t i = 0; i < args(); i++) {
      ary->set(state, i + 1, get_argument(i));
    }

    use_array(ary);
  }
Exemple #4
0
  void Message::unshift_argument2(STATE, Object* one, Object* two) {
    if(arguments_array) {
      arguments_array->unshift(state, two);
      arguments_array->unshift(state, one);

      use_array(arguments_array);
      return;
    }

    Array* ary = Array::create(state, args() + 2);

    ary->set(state, 0, one);
    ary->set(state, 1, two);

    for(size_t i = 0; i < args(); i++) {
      ary->set(state, i + 2, get_argument(i));
    }

    use_array(ary);
  }
Exemple #5
0
  Object* Message::shift_argument(STATE) {
    total_args--;
    if(arguments_array) {
      Object* first = arguments_array->shift(state);

      use_array(arguments_array);

      return first;
    } else {
      return shift_stack_args();
    }
  }
Exemple #6
0
  void Message::append_splat(STATE, Array* splat) {
    Array* args = Array::create(state, splat->size() + total_args);

    for(size_t i = 0; i < total_args; i++) {
      args->set(state, i, get_argument(i));
    }

    for(size_t i = 0, n = total_args; i < splat->size(); i++, n++) {
      args->set(state, n, splat->get(state, i));
    }

    use_array(args);
  }
Exemple #7
0
 Message::Message(STATE, Array* ary):
   state(state),
   total_args(0),
   send_site(NULL),
   name(NULL),
   recv(Qnil),
   block(Qnil),
   stack(0),
   priv(false),
   lookup_from(NULL),
   method(NULL),
   module(NULL),
   method_missing(false),
   caller_(NULL) {
     use_array(ary);
   }
Exemple #8
0
 void Message::set_arguments(STATE, Array* args) {
   use_array(args);
 }
Exemple #9
0
 Arguments(Array* ary) {
   use_array(ary);
 }