[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