Skip to content

Commit

Permalink
Style cleanups. See below.
Browse files Browse the repository at this point in the history
* In the C-API, all VALUEs are handles, so appending _handle to
  variable names helps nothing and just clutters the code.
* The function declaration is a user-interface element. So variable
  names in the function declaration should be clear and simple and spelled
  correctly. Opt for 'string', 'array', or 'object' over 'str', 'ary', 'obj',
  or 'val'.
* Since Ruby is an object- oriented language (despite its C beginnings),
  many of the rb_xxx_yyy functions take the equivalent of 'self' as the first
  parameter, so it makes sense to name this self.
* Inside the function, the C++ object is not 'self', so name it what it is,
  like 'string' or 'array'. If one of the parameters is string and another C++
  variable is needed, use str or something else simple and descriptive.
  • Loading branch information
Brian Ford committed Jan 14, 2011
1 parent 7c77fe2 commit 6b10999
Show file tree
Hide file tree
Showing 3 changed files with 232 additions and 235 deletions.
117 changes: 57 additions & 60 deletions vm/capi/array.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,10 @@ namespace rubinius {
return array;
}

void capi_update_array(NativeMethodEnvironment* env, VALUE ary_handle) {
void capi_update_array(NativeMethodEnvironment* env, VALUE array) {
if(!env) env = NativeMethodEnvironment::get();

Handle* handle = Handle::from(ary_handle);
handle->update(env);
Handle::from(array)->update(env);
}

/* We were in C-land and now we are returning to Ruby-land. Since the C
Expand Down Expand Up @@ -172,13 +171,13 @@ extern "C" {
return h->as_rarray(env);
}

VALUE rb_Array(VALUE obj_handle) {
VALUE rb_Array(VALUE object) {
NativeMethodEnvironment* env = NativeMethodEnvironment::get();

Object* obj = env->get_object(obj_handle);
Object* obj = env->get_object(object);

if (kind_of<Array>(obj)) {
return obj_handle;
return object;
}

Array* array = Array::create(env->state(), 1);
Expand All @@ -187,51 +186,51 @@ extern "C" {
return env->get_handle(array);
}

VALUE rb_ary_clear(VALUE self_handle) {
return rb_funcall2(self_handle, rb_intern("clear"), 0, NULL);
VALUE rb_ary_clear(VALUE self) {
return rb_funcall2(self, rb_intern("clear"), 0, NULL);
}

VALUE rb_ary_delete(VALUE self_handle, VALUE item) {
return rb_funcall(self_handle, rb_intern("delete"), 1, item);
VALUE rb_ary_delete(VALUE self, VALUE item) {
return rb_funcall(self, rb_intern("delete"), 1, item);
}

VALUE rb_ary_delete_at(VALUE self_handle, long idx) {
return rb_funcall(self_handle, rb_intern("delete_at"), 1, INT2FIX(idx));
VALUE rb_ary_delete_at(VALUE self, long idx) {
return rb_funcall(self, rb_intern("delete_at"), 1, INT2FIX(idx));
}

VALUE rb_ary_dup(VALUE self_handle) {
return rb_funcall2(self_handle, rb_intern("dup"), 0, NULL);
VALUE rb_ary_dup(VALUE self) {
return rb_funcall2(self, rb_intern("dup"), 0, NULL);
}

/* @todo Check 64-bit? */
VALUE rb_ary_entry(VALUE self_handle, int index) {
VALUE rb_ary_entry(VALUE self, int index) {
NativeMethodEnvironment* env = NativeMethodEnvironment::get();

Array* self = capi_get_array(env, self_handle);
return env->get_handle(self->aref(env->state(), Fixnum::from(index)));
Array* array = capi_get_array(env, self);
return env->get_handle(array->aref(env->state(), Fixnum::from(index)));
}

VALUE rb_ary_each(VALUE self_handle) {
VALUE rb_ary_each(VALUE self) {
NativeMethodEnvironment* env = NativeMethodEnvironment::get();

Array* self = capi_get_array(env, self_handle);
for(size_t i = 0; i < self->size(); i++) {
rb_yield(env->get_handle(self->get(env->state(), i)));
Array* array = capi_get_array(env, self);
for(size_t i = 0; i < array->size(); i++) {
rb_yield(env->get_handle(array->get(env->state(), i)));
}

return self_handle;
return self;
}

VALUE rb_ary_includes(VALUE self, VALUE obj) {
return rb_funcall(self, rb_intern("include?"), 1, obj);
}

VALUE rb_ary_join(VALUE self_handle, VALUE separator_handle) {
return rb_funcall(self_handle, rb_intern("join"), 1, separator_handle);
VALUE rb_ary_join(VALUE self, VALUE separator) {
return rb_funcall(self, rb_intern("join"), 1, separator);
}

VALUE rb_ary_to_s(VALUE self_handle) {
return rb_funcall(self_handle, rb_intern("to_s"), 0);
VALUE rb_ary_to_s(VALUE self) {
return rb_funcall(self, rb_intern("to_s"), 0);
}

/** By default, Arrays have space for 16 elements. */
Expand Down Expand Up @@ -274,72 +273,70 @@ extern "C" {
return env->get_handle(array);
}

VALUE rb_ary_new4(unsigned long length, const VALUE* object_handles) {
VALUE rb_ary_new4(unsigned long length, const VALUE* objects) {
NativeMethodEnvironment* env = NativeMethodEnvironment::get();

Array* array = Array::create(env->state(), length);
array->start(env->state(), Fixnum::from(0));
array->total(env->state(), Fixnum::from(length));

if (object_handles) {
if (objects) {
for(std::size_t i = 0; i < length; ++i) {
// @todo determine if we need to check these objects for whether
// they are arrays and flush any caches
Object* object = env->get_object(object_handles[i]);
Object* object = env->get_object(objects[i]);
array->set(env->state(), i, object);
}
}

return env->get_handle(array);
}

VALUE rb_ary_pop(VALUE self_handle) {
VALUE rb_ary_pop(VALUE self) {
NativeMethodEnvironment* env = NativeMethodEnvironment::get();

Array* self = capi_get_array(env, self_handle);
Object* obj = self->pop(env->state());
capi_update_array(env, self_handle);
Array* array = capi_get_array(env, self);
Object* obj = array->pop(env->state());
capi_update_array(env, self);

return env->get_handle(obj);
}

VALUE rb_ary_push(VALUE self_handle, VALUE object_handle) {
VALUE rb_ary_push(VALUE self, VALUE object) {
NativeMethodEnvironment* env = NativeMethodEnvironment::get();

Array* self = capi_get_array(env, self_handle);
self->append(env->state(), env->get_object(object_handle));
capi_update_array(env, self_handle);
Array* array = capi_get_array(env, self);
array->append(env->state(), env->get_object(object));
capi_update_array(env, self);

return self_handle;
return self;
}

VALUE rb_ary_reverse(VALUE self_handle) {
return rb_funcall2(self_handle, rb_intern("reverse"), 0, NULL);
VALUE rb_ary_reverse(VALUE self) {
return rb_funcall2(self, rb_intern("reverse"), 0, NULL);
}

VALUE rb_ary_shift(VALUE self_handle) {
VALUE rb_ary_shift(VALUE self) {
NativeMethodEnvironment* env = NativeMethodEnvironment::get();

Array* self = capi_get_array(env, self_handle);
Object* obj = self->shift(env->state());
capi_update_array(env, self_handle);
Array* array = capi_get_array(env, self);
Object* obj = array->shift(env->state());
capi_update_array(env, self);

return env->get_handle(obj);
}

size_t rb_ary_size(VALUE self_handle) {
size_t rb_ary_size(VALUE self) {
NativeMethodEnvironment* env = NativeMethodEnvironment::get();

Array* self = capi_get_array(env, self_handle);

return self->size();
return capi_get_array(env, self)->size();
}

void rb_ary_store(VALUE self_handle, long int index, VALUE object_handle) {
void rb_ary_store(VALUE self, long int index, VALUE object) {
NativeMethodEnvironment* env = NativeMethodEnvironment::get();

Array* self = capi_get_array(env, self_handle);
size_t total = self->size();
Array* array = capi_get_array(env, self);
size_t total = array->size();

if(index < 0) {
index += total;
Expand All @@ -351,26 +348,26 @@ extern "C" {
rb_raise(rb_eIndexError, error.str().c_str());
}

self->set(env->state(), index, env->get_object(object_handle));
capi_update_array(env, self_handle);
array->set(env->state(), index, env->get_object(object));
capi_update_array(env, self);
}

VALUE rb_ary_unshift(VALUE self_handle, VALUE object_handle) {
VALUE rb_ary_unshift(VALUE self, VALUE object) {
NativeMethodEnvironment* env = NativeMethodEnvironment::get();

Array* self = capi_get_array(env, self_handle);
self->unshift(env->state(), env->get_object(object_handle));
capi_update_array(env, self_handle);
Array* array = capi_get_array(env, self);
array->unshift(env->state(), env->get_object(object));
capi_update_array(env, self);

return self_handle;
return self;
}

VALUE rb_assoc_new(VALUE first, VALUE second) {
return rb_funcall(rb_cArray, rb_intern("[]"), 2, first, second);
}

VALUE rb_ary_aref(int argc, VALUE *argv, VALUE self_handle) {
return rb_funcall2(self_handle, rb_intern("[]"), argc, argv);
VALUE rb_ary_aref(int argc, VALUE *argv, VALUE self) {
return rb_funcall2(self, rb_intern("[]"), argc, argv);
}

VALUE rb_each(VALUE ary) {
Expand Down
Loading

0 comments on commit 6b10999

Please sign in to comment.