[macruby-changes] [4364] MacRuby/trunk/gcd.c

source_changes at macosforge.org source_changes at macosforge.org
Thu Jul 15 14:23:06 PDT 2010


Revision: 4364
          http://trac.macosforge.org/projects/ruby/changeset/4364
Author:   ernest.prabhakar at gmail.com
Date:     2010-07-15 14:23:05 -0700 (Thu, 15 Jul 2010)
Log Message:
-----------
Streamlined gcd.c class checking

Modified Paths:
--------------
    MacRuby/trunk/gcd.c

Modified: MacRuby/trunk/gcd.c
===================================================================
--- MacRuby/trunk/gcd.c	2010-07-15 21:23:03 UTC (rev 4363)
+++ MacRuby/trunk/gcd.c	2010-07-15 21:23:05 UTC (rev 4364)
@@ -112,23 +112,17 @@
 static VALUE cSemaphore;
 
 static inline void
-Check_Queue(VALUE object)
+Check_Class(VALUE object, VALUE wants_klass)
 {
-    if (CLASS_OF(object) != cQueue) {
-	rb_raise(rb_eArgError, "expected Queue object, but got %s",
-		rb_class2name(CLASS_OF(object)));
+    VALUE has_klass = CLASS_OF(object);
+    if (has_klass != wants_klass) {
+	  rb_raise(rb_eArgError, "expected class of [%p] to be %s [%p], but got %s [%p]",
+	    (void*) object,
+	    rb_class2name(wants_klass), (void*) wants_klass,
+		rb_class2name(has_klass), (void*) has_klass);
     }
 }
 
-static inline void
-Check_Group(VALUE object)
-{
-    if (CLASS_OF(object) != cGroup) {
-	rb_raise(rb_eArgError, "expected Group object, but got %s",
-		rb_class2name(CLASS_OF(object)));
-    }
-}
-
 static VALUE 
 rb_raise_init(VALUE self, SEL sel)
 {
@@ -417,7 +411,7 @@
     rb_scan_args(argc, argv, "01", &group);
 
     if (group != Qnil) {
-	Check_Group(group);
+	Check_Class(group, cGroup);
 	dispatch_group_async_f(RGroup(group)->group, RQueue(self)->queue,
 		(void *)block, rb_block_dispatcher);
     }
@@ -681,7 +675,7 @@
 rb_group_notify(VALUE self, SEL sel, VALUE target)
 {
     rb_vm_block_t *block = get_prepared_block();
-    Check_Queue(target);
+    Check_Class(target, cQueue);
 
     dispatch_group_notify_f(RGroup(self)->group, RQueue(target)->queue,
 	    (void *)block, rb_block_dispatcher);
@@ -814,7 +808,7 @@
 rb_source_init(VALUE self, SEL sel,
     VALUE type, VALUE handle, VALUE mask, VALUE queue)
 {
-    Check_Queue(queue);
+    Check_Class(queue, cQueue);
     rb_source_t *src = RSource(self);
     src->source_enum = (source_enum_t) NUM2LONG(type);
     dispatch_source_type_t c_type = rb_source_enum2type(src->source_enum);
@@ -862,7 +856,7 @@
 static VALUE
 rb_source_timer(VALUE klass, VALUE sel, VALUE delay, VALUE interval, VALUE leeway, VALUE queue)
 {
-    Check_Queue(queue);
+    Check_Class(queue, cQueue);
     dispatch_time_t start_time;
     VALUE argv[4] = {INT2FIX(SOURCE_TYPE_TIMER),
         INT2FIX(0), INT2FIX(0), queue};
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100715/a78f68a1/attachment.html>


More information about the macruby-changes mailing list