[svn:parrot] r49712 - branches/opmap_aware_pmcs/src/pmc

cotto at svn.parrot.org cotto at svn.parrot.org
Thu Oct 28 20:11:00 UTC 2010


Author: cotto
Date: Thu Oct 28 20:10:59 2010
New Revision: 49712
URL: https://trac.parrot.org/parrot/changeset/49712

Log:
[pmc] use one method to get version informtion instead of 3

Modified:
   branches/opmap_aware_pmcs/src/pmc/oplib.pmc

Modified: branches/opmap_aware_pmcs/src/pmc/oplib.pmc
==============================================================================
--- branches/opmap_aware_pmcs/src/pmc/oplib.pmc	Thu Oct 28 13:38:34 2010	(r49711)
+++ branches/opmap_aware_pmcs/src/pmc/oplib.pmc	Thu Oct 28 20:10:59 2010	(r49712)
@@ -91,7 +91,7 @@
     VTABLE PMC* get_pmc_keyed_int(INTVAL value) {
         op_lib_t *oplib;
         GET_ATTR_oplib(INTERP, SELF, oplib);
-        if ((UINTVAL)value >= oplib->op_count ||
+        if (value >= oplib->op_count ||
                      value <  0) {
             Parrot_ex_throw_from_c_args(INTERP, NULL, EXCEPTION_OUT_OF_BOUNDS,
                 "OpLib `%s': Opcode index %d out of bounds", oplib->name, value);
@@ -119,7 +119,7 @@
         op_lib_t  *oplib;
         op_info_t *table;
         PMC *result = PMCNULL;
-        UINTVAL i;
+        INTVAL i;
 
         GET_ATTR_oplib(INTERP, SELF, oplib);
         table = oplib->op_info_table;
@@ -134,24 +134,15 @@
         RETURN(PMC *result);
     }
 
-    METHOD major_version() {
+    METHOD version() {
         op_lib_t *oplib;
+        PMC *version_array = Parrot_pmc_new(INTERP, enum_class_ResizableIntegerArray);
         GET_ATTR_oplib(INTERP, SELF, oplib);
-        RETURN (INTVAL oplib->major_version);
+        VTABLE_push_integer(INTERP, version_array, oplib->major_version);
+        VTABLE_push_integer(INTERP, version_array, oplib->minor_version);
+        VTABLE_push_integer(INTERP, version_array, oplib->patch_version);
+        RETURN (PMC *version_array);
     }
-
-    METHOD minor_version() {
-        op_lib_t *oplib;
-        GET_ATTR_oplib(INTERP, SELF, oplib);
-        RETURN (INTVAL oplib->minor_version);
-    }
-
-    METHOD patch_version() {
-        op_lib_t *oplib;
-        GET_ATTR_oplib(INTERP, SELF, oplib);
-        RETURN (INTVAL oplib->patch_version);
-    }
-
 }
 
 /*


More information about the parrot-commits mailing list