[svn:parrot] r41227 - in trunk: src/pmc t/pmc

bacek at svn.parrot.org bacek at svn.parrot.org
Sat Sep 12 11:57:57 UTC 2009


Author: bacek
Date: Sat Sep 12 11:57:57 2009
New Revision: 41227
URL: https://trac.parrot.org/parrot/changeset/41227

Log:
[cage] Remove dead Boolean.instantiate. Add Boolean.init_pmc. Patch cortesy of flh++

Modified:
   trunk/src/pmc/boolean.pmc
   trunk/t/pmc/boolean.t

Modified: trunk/src/pmc/boolean.pmc
==============================================================================
--- trunk/src/pmc/boolean.pmc	Sat Sep 12 11:47:58 2009	(r41226)
+++ trunk/src/pmc/boolean.pmc	Sat Sep 12 11:57:57 2009	(r41227)
@@ -25,23 +25,20 @@
 
 /*
 
-=item C<PMC *instantiate(PMC *sig)>
+=item C<void init_pmc(PMC *value)>
 
-Object constructor. SELF is a Boolean Class object. Return a new
-C<bool> object according to the passed PMC value.
+Initialises SELF value according to the boolean value of the passed PMC.
 
 =cut
 
 */
-    VTABLE PMC *instantiate(PMC *sig) {
-        /* XXX other types */
-        const int argcP = REG_INT(interp, 3);
-        PMC * const res = pmc_new(interp, enum_class_Boolean);
-
-        if (argcP)
-            SELF.set_bool(VTABLE_get_bool(interp, REG_PMC(interp, 5)));
-
-        return PMCNULL; /* TODO */
+    VTABLE void init_pmc(PMC *value) {
+        if (!PMC_IS_NULL(value)) {
+            SELF.set_bool(VTABLE_get_bool(INTERP, value));
+        }
+        else {
+            SELF.set_bool(0);
+        }
     }
 /*
 

Modified: trunk/t/pmc/boolean.t
==============================================================================
--- trunk/t/pmc/boolean.t	Sat Sep 12 11:47:58 2009	(r41226)
+++ trunk/t/pmc/boolean.t	Sat Sep 12 11:57:57 2009	(r41227)
@@ -19,8 +19,9 @@
 
 .sub main :main
     .include 'test_more.pir'
-    plan(28)
+    plan(30)
     init_int_tests()
+    instantiate_tests()
     num_tests()
     string_tests()
     pmc_to_pmc_tests()
@@ -46,6 +47,21 @@
     is($I0, 1, "Boolean converts negative int to true")
 .end
 
+.sub instantiate_tests
+    $P0 = new ['Boolean']
+
+    $P0 = 1
+    $P2 = get_class ['Boolean']
+    $P1 = new $P2, $P0
+    $I0 = $P1
+    is($I0, 1, "Boolean instantiated to true")
+
+    $P0 = 0
+    $P1 = new ['Boolean'], $P0
+    $I0 = $P1
+    is($I0, 0, "Boolean instantiated to false")
+.end
+
 .sub num_tests
 
     $P0 = new ['Boolean']


More information about the parrot-commits mailing list