[svn:parrot] r37665 - in trunk: include/parrot src src/ops src/pmc
cotto at svn.parrot.org
cotto at svn.parrot.org
Tue Mar 24 04:38:25 UTC 2009
Author: cotto
Date: Tue Mar 24 04:38:25 2009
New Revision: 37665
URL: https://trac.parrot.org/parrot/changeset/37665
Log:
[PMC] remove PMC_num_val and PMC_int_val2, switch some other macros to VTABLE function calls
Modified:
trunk/include/parrot/oo.h
trunk/include/parrot/pobj.h
trunk/src/key.c
trunk/src/ops/pic.ops
trunk/src/pmc/callsignature.pmc
trunk/src/pmc/default.pmc
trunk/src/trace.c
Modified: trunk/include/parrot/oo.h
==============================================================================
--- trunk/include/parrot/oo.h Tue Mar 24 02:57:59 2009 (r37664)
+++ trunk/include/parrot/oo.h Tue Mar 24 04:38:25 2009 (r37665)
@@ -50,7 +50,6 @@
* class macros
*/
-#define CLASS_ATTRIB_COUNT(cl) PMC_int_val2(cl)
#define GET_CLASS(obj) (obj)->vtable->pmc_class
/* HEADERIZER BEGIN: src/oo.c */
Modified: trunk/include/parrot/pobj.h
==============================================================================
--- trunk/include/parrot/pobj.h Tue Mar 24 02:57:59 2009 (r37664)
+++ trunk/include/parrot/pobj.h Tue Mar 24 04:38:25 2009 (r37665)
@@ -58,8 +58,6 @@
#define PMC_struct_val(pmc) (pmc)->cache._ptrs._struct_val
#define PMC_pmc_val(pmc) (pmc)->cache._ptrs._pmc_val
#define PMC_int_val(pmc) (pmc)->cache._i._int_val
-#define PMC_int_val2(pmc) (pmc)->cache._i._int_val2
-#define PMC_num_val(pmc) (pmc)->cache._num_val
#define PMC_str_val(pmc) (pmc)->cache._string_val
/* See src/gc/resources.c. the basic idea is that buffer memory is
Modified: trunk/src/key.c
==============================================================================
--- trunk/src/key.c Tue Mar 24 02:57:59 2009 (r37664)
+++ trunk/src/key.c Tue Mar 24 04:38:25 2009 (r37665)
@@ -92,7 +92,7 @@
PMC * const key = pmc_new(interp, enum_class_Key);
PObj_get_FLAGS(key) |= KEY_number_FLAG;
- PMC_num_val(key) = value;
+ SETATTR_Key_num_key(interp, key, value);
return key;
}
@@ -233,7 +233,7 @@
ASSERT_ARGS(key_set_number)
PObj_get_FLAGS(key) &= ~KEY_type_FLAGS;
PObj_get_FLAGS(key) |= KEY_number_FLAG;
- PMC_num_val(key) = value;
+ SETATTR_Key_num_key(interp, key, value);
return;
}
@@ -326,8 +326,9 @@
key_integer(PARROT_INTERP, ARGIN(PMC *key))
{
ASSERT_ARGS(key_integer)
- INTVAL int_key;
- STRING *str_key;
+ INTVAL int_key;
+ STRING *str_key;
+ FLOATVAL num_key;
if (VTABLE_isa(interp, key, CONST_STRING(interp, "Key"))) {
switch (PObj_get_FLAGS(key) & KEY_type_FLAGS) {
@@ -341,7 +342,8 @@
return REG_INT(interp, int_key);
case KEY_number_FLAG:
- return (INTVAL)PMC_num_val(key);
+ GETATTR_Key_num_key(interp, key, num_key);
+ return (INTVAL)num_key;
case KEY_number_FLAG | KEY_register_FLAG:
GETATTR_Key_int_key(interp, key, int_key);
return (INTVAL)REG_NUM(interp, int_key);
@@ -401,11 +403,13 @@
key_number(PARROT_INTERP, ARGIN(PMC *key))
{
ASSERT_ARGS(key_number)
- INTVAL int_key;
+ INTVAL int_key;
+ FLOATVAL num_key;
switch (PObj_get_FLAGS(key) & KEY_type_FLAGS) {
case KEY_number_FLAG:
- return PMC_num_val(key);
+ GETATTR_Key_num_key(interp, key, num_key);
+ return num_key;
case KEY_number_FLAG | KEY_register_FLAG:
GETATTR_Key_int_key(interp, key, int_key);
return REG_NUM(interp, int_key);
@@ -443,7 +447,8 @@
key_string(PARROT_INTERP, ARGIN(PMC *key))
{
ASSERT_ARGS(key_string)
- INTVAL int_key;
+ INTVAL int_key;
+ FLOATVAL num_key;
switch (PObj_get_FLAGS(key) & KEY_type_FLAGS) {
/* remember to COW strings instead of returning them directly */
@@ -480,7 +485,8 @@
return Parrot_str_from_int(interp, REG_INT(interp, int_key));
case KEY_number_FLAG:
- return Parrot_str_from_num(interp, PMC_num_val(key));
+ GETATTR_Key_num_key(interp, key, num_key);
+ return Parrot_str_from_num(interp, num_key);
case KEY_number_FLAG | KEY_register_FLAG:
GETATTR_Key_int_key(interp, key, int_key);
return Parrot_str_from_num(interp, REG_NUM(interp, int_key));
Modified: trunk/src/ops/pic.ops
==============================================================================
--- trunk/src/ops/pic.ops Tue Mar 24 02:57:59 2009 (r37664)
+++ trunk/src/ops/pic.ops Tue Mar 24 04:38:25 2009 (r37665)
@@ -90,16 +90,11 @@
rt = VTABLE_type(interp, right);
lr_types = (lt << 16) | rt;
if (lru->u.type == lr_types) {
- INTVAL a = lt == enum_class_Integer ? PMC_int_val(left) :
- VTABLE_get_integer(interp, left);
- INTVAL b = rt == enum_class_Integer ? PMC_int_val(right) :
- VTABLE_get_integer(interp, right);
+ INTVAL a = VTABLE_get_integer(interp, left);
+ INTVAL b = VTABLE_get_integer(interp, right);
INTVAL c = a - b;
if ((c^a) >= 0 || (c^~b) >= 0) {
- if (lt == enum_class_Integer)
- PMC_int_val(left) = c;
- else
- VTABLE_set_integer_native(interp, left, c);
+ VTABLE_set_integer_native(interp, left, c);
}
else {
if (PARROT_ERRORS_test(interp, PARROT_ERRORS_OVERFLOW_FLAG)) {
@@ -198,7 +193,7 @@
cc = PMC_cont(ccont);
if (!cc->address) {
interp->current_returns = CUR_OPCODE;
- n = PMC_int_val(mic->m.sig);
+ n = VTABLE_get_integer(interp, mic->m.sig);
goto OFFSET(n + 2);
}
caller_ctx = cc->to_ctx;
Modified: trunk/src/pmc/callsignature.pmc
==============================================================================
--- trunk/src/pmc/callsignature.pmc Tue Mar 24 02:57:59 2009 (r37664)
+++ trunk/src/pmc/callsignature.pmc Tue Mar 24 04:38:25 2009 (r37665)
@@ -33,6 +33,7 @@
ATTR PMC *returns; /* Result PMCs, if they were passed with the call */
ATTR PMC *type_tuple; /* Cached argument types for multiple dispatch */
ATTR STRING *short_sig; /* Simple string signature args & returns */
+ ATTR INTVAL data_size; /* ? */
/*
@@ -53,7 +54,7 @@
sig_struct->returns = PMCNULL;
sig_struct->array = NULL;
sig_struct->hash = NULL;
- PMC_int_val(SELF) = CAPTURE_DATA_SIZE;
+ sig_struct->data_size = CAPTURE_DATA_SIZE;
PObj_active_destroy_SET(SELF);
PObj_custom_mark_SET(SELF);
}
@@ -186,9 +187,9 @@
VTABLE void mark() {
PMC ** const data = PMC_data_typed(SELF, PMC **);
INTVAL i;
+ Parrot_CallSignature_attributes * const attrs = PARROT_CALLSIGNATURE(SELF);
- if (PARROT_CALLSIGNATURE(SELF)) {
- Parrot_CallSignature_attributes * const attrs = PARROT_CALLSIGNATURE(SELF);
+ if (attrs) {
if (attrs->array)
pobject_lives(interp, (PObj*)attrs->array);
@@ -205,7 +206,7 @@
if (!data)
return;
- for (i = PMC_int_val(SELF) - 1; i >= 0; --i)
+ for (i = attrs->data_size - 1; i >= 0; --i)
if (data[i])
pobject_lives(interp, (PObj *)data[i]);
}
Modified: trunk/src/pmc/default.pmc
==============================================================================
--- trunk/src/pmc/default.pmc Tue Mar 24 02:57:59 2009 (r37664)
+++ trunk/src/pmc/default.pmc Tue Mar 24 04:38:25 2009 (r37665)
@@ -142,7 +142,7 @@
propagate_std_props(PARROT_INTERP, PMC *self, PMC *prop_hash) {
if (self->vtable->flags & (VTABLE_IS_CONST_FLAG | VTABLE_IS_READONLY_FLAG)){
PMC * const pmc_true = pmc_new(interp, enum_class_Integer);
- PMC_int_val(pmc_true) = 1;
+ VTABLE_set_integer_native(interp, pmc_true, 1);
VTABLE_set_pmc_keyed_str(interp, prop_hash, CONST_STRING(interp, "_ro"), pmc_true);
}
}
@@ -183,7 +183,7 @@
if ((self->vtable->flags & (VTABLE_IS_CONST_FLAG | VTABLE_IS_READONLY_FLAG))
&&!Parrot_str_compare(interp, key, CONST_STRING(interp, "_ro"))) {
PMC * const ret_val = pmc_new(interp, enum_class_Integer);
- PMC_int_val(ret_val) = 1;
+ VTABLE_set_integer_native(interp, ret_val, 1);
return ret_val;
}
else
Modified: trunk/src/trace.c
==============================================================================
--- trunk/src/trace.c Tue Mar 24 02:57:59 2009 (r37664)
+++ trunk/src/trace.c Tue Mar 24 04:38:25 2009 (r37665)
@@ -188,7 +188,7 @@
break;
case KEY_string_FLAG:
{
- const STRING * const s = PMC_str_val(key);
+ const STRING * const s = key_string(interp, key);
STRING* const escaped = Parrot_str_escape_truncate(
interp, s, 20);
if (escaped)
More information about the parrot-commits
mailing list