[svn:parrot] r36540 - branches/vtable_morph_change/src/pmc

whiteknight at svn.parrot.org whiteknight at svn.parrot.org
Tue Feb 10 16:02:38 UTC 2009


Author: whiteknight
Date: Tue Feb 10 16:02:37 2009
New Revision: 36540
URL: https://trac.parrot.org/parrot/changeset/36540

Log:
[vtable_morph_change] update bignum.pmc and bigint.pmc to use pmc_reuse for most cases where morph had been used. Some refactors still needed in both these two

Modified:
   branches/vtable_morph_change/src/pmc/bigint.pmc
   branches/vtable_morph_change/src/pmc/bignum.pmc

Modified: branches/vtable_morph_change/src/pmc/bigint.pmc
==============================================================================
--- branches/vtable_morph_change/src/pmc/bigint.pmc	Tue Feb 10 15:54:03 2009	(r36539)
+++ branches/vtable_morph_change/src/pmc/bigint.pmc	Tue Feb 10 16:02:37 2009	(r36540)
@@ -313,7 +313,7 @@
 static void
 bigint_abs(PARROT_INTERP, PMC *self, PMC *dest) {
     BIGINT *bi_self, *bi_dest;
-    VTABLE_morph(interp, dest, interp->vtables[enum_class_BigInt]->pmc_class);
+    pmc_reuse(interp, dest, enum_class_BigInt, 0);
     GETATTR_BigInt_bi(interp, self, bi_self);
     GETATTR_BigInt_bi(interp, dest, bi_dest);
     mpz_abs(bi_dest->b, bi_self->b);
@@ -322,7 +322,7 @@
 static void
 bigint_neg(PARROT_INTERP, PMC *self, PMC *dest) {
     BIGINT *bi_self, *bi_dest;
-    VTABLE_morph(interp, dest, interp->vtables[enum_class_BigInt]->pmc_class);
+    pmc_reuse(interp, dest, enum_class_BigInt, 0);
     GETATTR_BigInt_bi(interp, self, bi_self);
     GETATTR_BigInt_bi(interp, dest, bi_dest);
     mpz_neg(bi_dest->b, bi_self->b);

Modified: branches/vtable_morph_change/src/pmc/bignum.pmc
==============================================================================
--- branches/vtable_morph_change/src/pmc/bignum.pmc	Tue Feb 10 15:54:03 2009	(r36539)
+++ branches/vtable_morph_change/src/pmc/bignum.pmc	Tue Feb 10 16:02:37 2009	(r36540)
@@ -326,7 +326,7 @@
 static void
 bignum_abs(PARROT_INTERP, PMC *self, PMC *dest) {
     BIGNUM *bi_self, *bi_dest;
-    VTABLE_morph(interp, dest, enum_class_BigNum);
+    pmc_reuse(interp, dest, enum_class_BigNum, 0);
     GETATTR_BigNum_bi(interp, self, bi_self);
     GETATTR_BigNum_bi(interp, dest, bi_dest);
     mpf_abs(bi_dest->b, bi_self->b);
@@ -335,7 +335,7 @@
 static void
 bignum_neg(PARROT_INTERP, PMC *self, PMC *dest) {
     BIGNUM *bi_self, *bi_dest;
-    VTABLE_morph(interp, dest, enum_class_BigNum);
+    pmc_reuse(interp, dest, enum_class_BigNum, 0);
     GETATTR_BigNum_bi(interp, self, bi_self);
     GETATTR_BigNum_bi(interp, dest, bi_dest);
     mpf_neg(bi_dest->b, bi_self->b);
@@ -910,7 +910,7 @@
 
     MULTI PMC *subtract(BigNum value, PMC *dest) {
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 
@@ -920,7 +920,7 @@
 
     MULTI PMC *subtract(Integer value, PMC *dest) {
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 
@@ -937,7 +937,7 @@
 
     VTABLE PMC *subtract_int(INTVAL value, PMC *dest) {
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 
@@ -1024,7 +1024,7 @@
 
     VTABLE PMC *pow_int(INTVAL value, PMC *dest) {
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 
@@ -1044,7 +1044,7 @@
     MULTI PMC *divide(BigNum value, PMC *dest) {
         BIGNUM *bi;
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 
@@ -1063,7 +1063,7 @@
 
     MULTI PMC *divide(Integer value, PMC *dest) {
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 
@@ -1080,7 +1080,7 @@
 
     VTABLE PMC *divide_int(INTVAL value, PMC *dest) {
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 
@@ -1128,7 +1128,7 @@
 
     VTABLE PMC *floor_divide_int(INTVAL value, PMC *dest) {
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 
@@ -1157,7 +1157,7 @@
 
     MULTI PMC *modulus(BigNum value, PMC *dest) {
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 
@@ -1167,7 +1167,7 @@
 
     MULTI PMC *modulus(Integer value, PMC *dest) {
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 
@@ -1292,7 +1292,7 @@
 
     MULTI PMC *bitwise_shl(BigNum value, PMC *dest) {
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 
@@ -1304,7 +1304,7 @@
 
     MULTI PMC *bitwise_shl(Integer value, PMC *dest) {
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 
@@ -1321,7 +1321,7 @@
 
     VTABLE PMC *bitwise_shl_int(INTVAL value, PMC *dest) {
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 
@@ -1372,7 +1372,7 @@
 
     MULTI PMC *bitwise_shr(BigNum value, PMC *dest) {
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 
@@ -1384,7 +1384,7 @@
 
     MULTI PMC *bitwise_shr(Integer value, PMC *dest) {
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 
@@ -1402,7 +1402,7 @@
 
     VTABLE PMC *bitwise_shr_int(INTVAL value, PMC *dest) {
         if (dest)
-            VTABLE_morph(interp, dest, SELF->vtable->base_type);
+            pmc_reuse(interp, dest, SELF->vtable->base_type, 0);
         else
             dest = pmc_new(INTERP, SELF->vtable->base_type);
 


More information about the parrot-commits mailing list