Author: chromatic
Date: Wed Feb 20 21:50:24 2008
New Revision: 25916

Modified:
   branches/pdd17pmc/src/pmc/capture.pmc

Log:
[PMC] Converted Capture PMC to PDD17 for PMC attributes.


Modified: branches/pdd17pmc/src/pmc/capture.pmc
==============================================================================
--- branches/pdd17pmc/src/pmc/capture.pmc       (original)
+++ branches/pdd17pmc/src/pmc/capture.pmc       Wed Feb 20 21:50:24 2008
@@ -20,21 +20,16 @@
 
 #include "parrot/parrot.h"
 
-typedef struct Capture_data {
-    PMC *array;                /* array component */
-    PMC *hash;                 /* hash component */
-} Capture_data;
 
 #define CAPTURE_DATA_SIZE   2
-#define CAPTURE_array(obj)  (((Capture_data*)PMC_data(obj))->array)
-#define CAPTURE_hash(obj)   (((Capture_data*)PMC_data(obj))->hash)
 #define CAPTURE_array_CREATE(i, obj) \
-    if (!CAPTURE_array(obj)) CAPTURE_array(obj) = pmc_new(i, 
enum_class_ResizablePMCArray);
+    if (!PARROT_CAPTURE(obj)->array) PARROT_CAPTURE(obj)->array = pmc_new(i, 
enum_class_ResizablePMCArray);
 #define CAPTURE_hash_CREATE(i, obj) \
-    if (!CAPTURE_hash(obj)) CAPTURE_hash(obj) = pmc_new(i, enum_class_Hash);
-
+    if (!PARROT_CAPTURE(obj)->hash) PARROT_CAPTURE(obj)->hash = pmc_new(i, 
enum_class_Hash);
 
 pmclass Capture need_ext provides array provides hash {
+    ATTR PMC *array;
+    ATTR PMC *hash;
 
 /*
 
@@ -51,17 +46,18 @@
 */
 
     VTABLE void init() {
-        PMC_data(SELF)      = mem_allocate_typed(Capture_data);
-        CAPTURE_array(SELF) = NULL;
-        CAPTURE_hash(SELF)  = NULL;
-        PMC_int_val(SELF)   = CAPTURE_DATA_SIZE;
+        Parrot_Capture *capture = mem_allocate_typed(Parrot_Capture);
+        PMC_data(SELF)          = capture;
+        capture->array          = NULL;
+        capture->hash           = NULL;
+        PMC_int_val(SELF)       = CAPTURE_DATA_SIZE;
         PObj_active_destroy_SET(SELF);
         PObj_data_is_PMC_array_SET(SELF);
     }
 
     VTABLE void destroy() {
-        if (PMC_data(SELF)) {
-            mem_sys_free(PMC_data(SELF));
+        if (PARROT_CAPTURE(SELF)) {
+            mem_sys_free(PARROT_CAPTURE(SELF));
             PMC_data(SELF) = NULL;
         }
 
@@ -86,22 +82,26 @@
 
     VTABLE void set_number_keyed_int(INTVAL key, FLOATVAL value) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        VTABLE_set_number_keyed_int(INTERP, CAPTURE_array(SELF), key, value);
+        VTABLE_set_number_keyed_int(INTERP, PARROT_CAPTURE(SELF)->array,
+                                    key, value);
     }
 
     VTABLE void set_integer_keyed_int(INTVAL key, INTVAL value) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        VTABLE_set_integer_keyed_int(INTERP, CAPTURE_array(SELF), key, value);
+        VTABLE_set_integer_keyed_int(INTERP, PARROT_CAPTURE(SELF)->array,
+                                     key, value);
     }
 
     VTABLE void set_pmc_keyed_int(INTVAL key, PMC *value) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        VTABLE_set_pmc_keyed_int(INTERP, CAPTURE_array(SELF), key, value);
+        VTABLE_set_pmc_keyed_int(INTERP, PARROT_CAPTURE(SELF)->array,
+                                 key, value);
     }
 
     VTABLE void set_string_keyed_int(INTVAL key, STRING *value) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        VTABLE_set_string_keyed_int(INTERP, CAPTURE_array(SELF), key, value);
+        VTABLE_set_string_keyed_int(INTERP, PARROT_CAPTURE(SELF)->array,
+                                    key, value);
     }
 
 /*
@@ -122,22 +122,26 @@
 
     VTABLE FLOATVAL get_number_keyed_int(INTVAL key) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        return VTABLE_get_number_keyed_int(INTERP, CAPTURE_array(SELF), key);
+        return VTABLE_get_number_keyed_int(INTERP, PARROT_CAPTURE(SELF)->array,
+                                           key);
     }
 
     VTABLE INTVAL get_integer_keyed_int(INTVAL key) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        return VTABLE_get_integer_keyed_int(INTERP, CAPTURE_array(SELF), key);
+        return VTABLE_get_integer_keyed_int(INTERP, 
PARROT_CAPTURE(SELF)->array,
+                                            key);
     }
 
     VTABLE PMC *get_pmc_keyed_int(INTVAL key) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        return VTABLE_get_pmc_keyed_int(INTERP, CAPTURE_array(SELF), key);
+        return VTABLE_get_pmc_keyed_int(INTERP, PARROT_CAPTURE(SELF)->array,
+                                        key);
     }
 
     VTABLE STRING *get_string_keyed_int(INTVAL key) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        return VTABLE_get_string_keyed_int(INTERP, CAPTURE_array(SELF), key);
+        return VTABLE_get_string_keyed_int(INTERP, PARROT_CAPTURE(SELF)->array,
+                                           key);
     }
 
 /*
@@ -168,42 +172,42 @@
 
     VTABLE void push_float(FLOATVAL value) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        VTABLE_push_float(INTERP, CAPTURE_array(SELF), value);
+        VTABLE_push_float(INTERP, PARROT_CAPTURE(SELF)->array, value);
     }
 
     VTABLE void push_integer(INTVAL value) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        VTABLE_push_integer(INTERP, CAPTURE_array(SELF), value);
+        VTABLE_push_integer(INTERP, PARROT_CAPTURE(SELF)->array, value);
     }
 
     void push_pmc(PMC *value) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        VTABLE_push_pmc(INTERP, CAPTURE_array(SELF), value);
+        VTABLE_push_pmc(INTERP, PARROT_CAPTURE(SELF)->array, value);
     }
 
     VTABLE void push_string(STRING *value) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        VTABLE_push_string(INTERP, CAPTURE_array(SELF), value);
+        VTABLE_push_string(INTERP, PARROT_CAPTURE(SELF)->array, value);
     }
 
     VTABLE void unshift_float(FLOATVAL value) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        VTABLE_unshift_float(INTERP, CAPTURE_array(SELF), value);
+        VTABLE_unshift_float(INTERP, PARROT_CAPTURE(SELF)->array, value);
     }
 
     VTABLE void unshift_integer(INTVAL value) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        VTABLE_unshift_integer(INTERP, CAPTURE_array(SELF), value);
+        VTABLE_unshift_integer(INTERP, PARROT_CAPTURE(SELF)->array, value);
     }
 
     void unshift_pmc(PMC *value) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        VTABLE_unshift_pmc(INTERP, CAPTURE_array(SELF), value);
+        VTABLE_unshift_pmc(INTERP, PARROT_CAPTURE(SELF)->array, value);
     }
 
     VTABLE void unshift_string(STRING *value) {
         CAPTURE_array_CREATE(INTERP, SELF);
-        VTABLE_unshift_string(INTERP, CAPTURE_array(SELF), value);
+        VTABLE_unshift_string(INTERP, PARROT_CAPTURE(SELF)->array, value);
     }
 
 /*
@@ -234,42 +238,42 @@
 
     VTABLE FLOATVAL pop_float() {
         CAPTURE_array_CREATE(INTERP, SELF);
-        return VTABLE_pop_float(INTERP, CAPTURE_array(SELF));
+        return VTABLE_pop_float(INTERP, PARROT_CAPTURE(SELF)->array);
     }
 
     VTABLE INTVAL pop_integer() {
         CAPTURE_array_CREATE(INTERP, SELF);
-        return VTABLE_pop_integer(INTERP, CAPTURE_array(SELF));
+        return VTABLE_pop_integer(INTERP, PARROT_CAPTURE(SELF)->array);
     }
 
     VTABLE PMC *pop_pmc() {
         CAPTURE_array_CREATE(INTERP, SELF);
-        return VTABLE_pop_pmc(INTERP, CAPTURE_array(SELF));
+        return VTABLE_pop_pmc(INTERP, PARROT_CAPTURE(SELF)->array);
     }
 
     VTABLE STRING *pop_string() {
         CAPTURE_array_CREATE(INTERP, SELF);
-        return VTABLE_pop_string(INTERP, CAPTURE_array(SELF));
+        return VTABLE_pop_string(INTERP, PARROT_CAPTURE(SELF)->array);
     }
 
     VTABLE FLOATVAL shift_float() {
         CAPTURE_array_CREATE(INTERP, SELF);
-        return VTABLE_shift_float(INTERP, CAPTURE_array(SELF));
+        return VTABLE_shift_float(INTERP, PARROT_CAPTURE(SELF)->array);
     }
 
     VTABLE INTVAL shift_integer() {
         CAPTURE_array_CREATE(INTERP, SELF);
-        return VTABLE_shift_integer(INTERP, CAPTURE_array(SELF));
+        return VTABLE_shift_integer(INTERP, PARROT_CAPTURE(SELF)->array);
     }
 
     VTABLE PMC *shift_pmc() {
         CAPTURE_array_CREATE(INTERP, SELF);
-        return VTABLE_shift_pmc(INTERP, CAPTURE_array(SELF));
+        return VTABLE_shift_pmc(INTERP, PARROT_CAPTURE(SELF)->array);
     }
 
     VTABLE STRING *shift_string() {
         CAPTURE_array_CREATE(INTERP, SELF);
-        return VTABLE_shift_string(INTERP, CAPTURE_array(SELF));
+        return VTABLE_shift_string(INTERP, PARROT_CAPTURE(SELF)->array);
     }
 
 /*
@@ -295,24 +299,29 @@
 */
 
     VTABLE INTVAL elements() {
-        if (!CAPTURE_array(SELF)) return 0;
-        return VTABLE_elements(INTERP, CAPTURE_array(SELF));
+        if (!PARROT_CAPTURE(SELF)->array) return 0;
+        return VTABLE_elements(INTERP, PARROT_CAPTURE(SELF)->array);
     }
 
     VTABLE INTVAL defined_keyed_int(INTVAL key) {
-        if (!CAPTURE_array(SELF)) return 0;
-        return VTABLE_defined_keyed_int(INTERP, CAPTURE_array(SELF), key);
+        if (!PARROT_CAPTURE(SELF)->array)
+            return 0;
+
+        return VTABLE_defined_keyed_int(INTERP, PARROT_CAPTURE(SELF)->array,
+                                        key);
     }
 
     VTABLE INTVAL exists_keyed_int(INTVAL key) {
-        if (!CAPTURE_array(SELF)) return 0;
-        return VTABLE_exists_keyed_int(INTERP, CAPTURE_array(SELF), key);
+        if (!PARROT_CAPTURE(SELF)->array)
+            return 0;
+
+        return VTABLE_exists_keyed_int(INTERP, PARROT_CAPTURE(SELF)->array,
+                                               key);
     }
 
     VTABLE void delete_keyed_int(INTVAL key) {
-        if (CAPTURE_array(SELF)) {
-            VTABLE_delete_keyed_int(INTERP, CAPTURE_array(SELF), key);
-        }
+        if (PARROT_CAPTURE(SELF)->array)
+            VTABLE_delete_keyed_int(INTERP, PARROT_CAPTURE(SELF)->array, key);
     }
 
 /*
@@ -333,22 +342,23 @@
 
     VTABLE void set_number_keyed(PMC *key, FLOATVAL value) {
         CAPTURE_hash_CREATE(INTERP, SELF);
-        VTABLE_set_number_keyed(INTERP, CAPTURE_hash(SELF), key, value);
+        VTABLE_set_number_keyed(INTERP, PARROT_CAPTURE(SELF)->hash, key, 
value);
     }
 
     VTABLE void set_integer_keyed(PMC *key, INTVAL value) {
         CAPTURE_hash_CREATE(INTERP, SELF);
-        VTABLE_set_integer_keyed(INTERP, CAPTURE_hash(SELF), key, value);
+        VTABLE_set_integer_keyed(INTERP, PARROT_CAPTURE(SELF)->hash,
+                                 key, value);
     }
 
     VTABLE void set_pmc_keyed(PMC *key, PMC *value) {
         CAPTURE_hash_CREATE(INTERP, SELF);
-        VTABLE_set_pmc_keyed(INTERP, CAPTURE_hash(SELF), key, value);
+        VTABLE_set_pmc_keyed(INTERP, PARROT_CAPTURE(SELF)->hash, key, value);
     }
 
     VTABLE void set_string_keyed(PMC *key, STRING *value) {
         CAPTURE_hash_CREATE(INTERP, SELF);
-        VTABLE_set_string_keyed(INTERP, CAPTURE_hash(SELF), key, value);
+        VTABLE_set_string_keyed(INTERP, PARROT_CAPTURE(SELF)->hash, key, 
value);
     }
 
 /*
@@ -369,22 +379,23 @@
 
     VTABLE FLOATVAL get_number_keyed(PMC *key) {
         CAPTURE_hash_CREATE(INTERP, SELF);
-        return VTABLE_get_number_keyed(INTERP, CAPTURE_hash(SELF), key);
+        return VTABLE_get_number_keyed(INTERP, PARROT_CAPTURE(SELF)->hash, 
key);
     }
 
     VTABLE INTVAL get_integer_keyed(PMC *key) {
         CAPTURE_hash_CREATE(INTERP, SELF);
-        return VTABLE_get_integer_keyed(INTERP, CAPTURE_hash(SELF), key);
+        return VTABLE_get_integer_keyed(INTERP, PARROT_CAPTURE(SELF)->hash,
+                                        key);
     }
 
     VTABLE PMC *get_pmc_keyed(PMC *key) {
         CAPTURE_hash_CREATE(INTERP, SELF);
-        return VTABLE_get_pmc_keyed(INTERP, CAPTURE_hash(SELF), key);
+        return VTABLE_get_pmc_keyed(INTERP, PARROT_CAPTURE(SELF)->hash, key);
     }
 
     VTABLE STRING *get_string_keyed(PMC *key) {
         CAPTURE_hash_CREATE(INTERP, SELF);
-        return VTABLE_get_string_keyed(INTERP, CAPTURE_hash(SELF), key);
+        return VTABLE_get_string_keyed(INTERP, PARROT_CAPTURE(SELF)->hash, 
key);
     }
 
 /*
@@ -406,18 +417,18 @@
 */
 
     VTABLE INTVAL defined_keyed(PMC *key) {
-        if (!CAPTURE_array(SELF)) return 0;
-        return VTABLE_defined_keyed(INTERP, CAPTURE_hash(SELF), key);
+        if (!PARROT_CAPTURE(SELF)->hash) return 0;
+        return VTABLE_defined_keyed(INTERP, PARROT_CAPTURE(SELF)->hash, key);
     }
 
     VTABLE INTVAL exists_keyed(PMC *key) {
-        if (!CAPTURE_array(SELF)) return 0;
-        return VTABLE_exists_keyed(INTERP, CAPTURE_hash(SELF), key);
+        if (!PARROT_CAPTURE(SELF)->hash) return 0;
+        return VTABLE_exists_keyed(INTERP, PARROT_CAPTURE(SELF)->hash, key);
     }
 
     VTABLE void delete_keyed(PMC *key) {
-        if (CAPTURE_array(SELF))
-            VTABLE_delete_keyed(INTERP, CAPTURE_hash(SELF), key);
+        if (PARROT_CAPTURE(SELF)->hash)
+            VTABLE_delete_keyed(INTERP, PARROT_CAPTURE(SELF)->hash, key);
     }
 
 /*
@@ -436,12 +447,14 @@
         /* XXX:  This workaround is for when we get here as
                  part of a subclass of Capture */
         if (PObj_is_object_TEST(SELF)) {
-            STRING * classname = CONST_STRING(INTERP, "Capture");
-            PMC * classobj = Parrot_oo_get_class_str(INTERP, classname);
-            capt = VTABLE_get_attr_keyed(interp, SELF, classobj, 
CONST_STRING(interp, "proxy"));
+            STRING *classname = CONST_STRING(INTERP, "Capture");
+            PMC    *classobj  = Parrot_oo_get_class_str(INTERP, classname);
+            capt              = VTABLE_get_attr_keyed(interp, SELF, classobj,
+                                    CONST_STRING(interp, "proxy"));
         }
+
         CAPTURE_array_CREATE(INTERP, capt);
-        capt_array = CAPTURE_array(capt);
+        capt_array = PARROT_CAPTURE(capt)->array;
 
         PCCRETURN(PMC *capt_array);
     }
@@ -452,12 +465,13 @@
         /* XXX:  This workaround is for when we get here as
                  part of a subclass of Capture */
         if (PObj_is_object_TEST(SELF)) {
-            STRING * classname = CONST_STRING(INTERP, "Capture");
-            PMC * classobj = Parrot_oo_get_class_str(INTERP, classname);
-            capt = VTABLE_get_attr_keyed(interp, SELF, classobj, 
CONST_STRING(interp, "proxy"));
+            STRING *classname = CONST_STRING(INTERP, "Capture");
+            PMC    *classobj  = Parrot_oo_get_class_str(INTERP, classname);
+            capt              = VTABLE_get_attr_keyed(interp, SELF, classobj,
+                                    CONST_STRING(interp, "proxy"));
         }
         CAPTURE_hash_CREATE(INTERP, capt);
-        capt_hash = CAPTURE_hash(capt);
+        capt_hash = PARROT_CAPTURE(capt)->hash;
         PCCRETURN(PMC *capt_hash);
     }
 
@@ -481,4 +495,3 @@
  * End:
  * vim: expandtab shiftwidth=4:
  */
-

Reply via email to