Looks great Steve,

could (PMC *) get added to the NEED_CONTINUATION macro

Index: include/parrot/sub.h
===================================================================
--- include/parrot/sub.h        (revision 17785)
+++ include/parrot/sub.h        (working copy)
@@ -109,7 +109,7 @@
 * a flag to signal a Sub that a new RetContinuation should be created
 */

-#define NEED_CONTINUATION ((void*)1)
+#define NEED_CONTINUATION ((PMC*)(void*)1)

/*
 * Sub and Closure share a Parrot_sub structure.

Kevin

Steve Peters (via RT) wrote:
# New Ticket Created by Steve Peters # Please include the string: [perl #42151] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=42151 >


Index: src/ops/experimental.ops
===================================================================
--- src/ops/experimental.ops    (revision 17785)
+++ src/ops/experimental.ops    (working copy)
@@ -520,7 +520,7 @@
     Interp * const new_interp = (Interp *)PMC_data($1);
     opcode_t *pc;
     Interp_flags_SET(new_interp, PARROT_EXTERN_CODE_FLAG);
-    pc = VTABLE_invoke(new_interp, $2, NULL);
+    pc = (opcode_t *)VTABLE_invoke(new_interp, $2, NULL);
     Parrot_runops_fromc_args(new_interp, $2, "P");
     goto NEXT();
 }
Index: src/ops/object.ops
===================================================================
--- src/ops/object.ops  (revision 17785)
+++ src/ops/object.ops  (working copy)
@@ -60,7 +60,7 @@
         "Method '%Ss' not found", meth);
   }
   interp->current_object = object;
-  interp->current_cont = NEED_CONTINUATION;
+  interp->current_cont = (PMC *)NEED_CONTINUATION;
   dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
   goto ADDRESS(dest);
 }
@@ -76,7 +76,7 @@
next = expr NEXT();
   interp->current_object = object;
-  interp->current_cont = NEED_CONTINUATION;
+  interp->current_cont = (PMC *)NEED_CONTINUATION;
   dest = (opcode_t *)VTABLE_invoke(interp, method_pmc, next);
   goto ADDRESS(dest);
 }
Index: src/ops/io.ops
===================================================================
--- src/ops/io.ops      (revision 17785)
+++ src/ops/io.ops      (working copy)
@@ -372,7 +372,7 @@
     if (pio->vtable->base_type != enum_class_ParrotIO)
         real_exception(interp, NULL, PIO_ERROR,
                 "Cannot read line from empty filehandle");
-    io = PMC_data(pio);
+    io = (ParrotIO *)PMC_data(pio);
     if (!io)
         real_exception(interp, NULL, PIO_ERROR,
                 "Cannot read line from empty filehandle");
Index: src/ops/sys.ops
===================================================================
--- src/ops/sys.ops     (revision 17785)
+++ src/ops/sys.ops     (working copy)
@@ -297,7 +297,7 @@
       real_exception(interp, next, NEG_SLEEP,
         "Cannot go back in time");
   }
-  next = Parrot_sleep_on_event(interp, (FLOATVAL) $1, next);
+  next = (opcode_t *)Parrot_sleep_on_event(interp, (FLOATVAL) $1, next);
   goto ADDRESS(next);
 }
@@ -307,7 +307,7 @@
       real_exception(interp, next, NEG_SLEEP,
         "Cannot go back in time");
   }
-  next = Parrot_sleep_on_event(interp, $1, next);
+  next = (opcode_t *)Parrot_sleep_on_event(interp, $1, next);
   goto ADDRESS(next);
 }
Index: src/charset.c
===================================================================
--- src/charset.c       (revision 17785)
+++ src/charset.c       (working copy)
@@ -62,7 +62,7 @@
 CHARSET *
 Parrot_new_charset(Interp *interp)
 {
-    return mem_sys_allocate(sizeof (CHARSET));
+    return (CHARSET *)mem_sys_allocate(sizeof (CHARSET));
 }
void
@@ -184,9 +184,9 @@
      * loading of charsets from inside threads
      */
     if (!n)
-        all_charsets->set = mem_sys_allocate(sizeof (One_charset));
+        all_charsets->set = (One_charset *)mem_sys_allocate(sizeof 
(One_charset));
     else
-        all_charsets->set = mem_sys_realloc(all_charsets->set, (n + 1) *
+        all_charsets->set = (One_charset *)mem_sys_realloc(all_charsets->set, 
(n + 1) *
                 sizeof (One_charset));
     all_charsets->n_charsets++;
     all_charsets->set[n].charset = charset;
@@ -219,7 +219,7 @@
         CHARSET *charset)
 {
     if (!all_charsets) {
-        all_charsets = mem_sys_allocate(sizeof (All_charsets));
+        all_charsets = (All_charsets *)mem_sys_allocate(sizeof (All_charsets));   
      all_charsets->n_charsets = 0;
         all_charsets->set = NULL;
     }
@@ -320,11 +320,11 @@
nc = left->n_converters++;
             if (nc) {
-                left->to_converters = mem_sys_realloc(left->to_converters,
-                        sizeof (To_converter) * (nc + 1));
+                left->to_converters = (To_converter *)mem_sys_realloc(
+                        left->to_converters, sizeof (To_converter) * (nc + 
1));             }
             else
-                left->to_converters = mem_sys_allocate(sizeof (To_converter));
+                left->to_converters = (To_converter *)mem_sys_allocate(sizeof 
(To_converter));
             left->to_converters[nc].to = rhs;
             left->to_converters[nc].func = func;
         }
Index: src/exec.c
===================================================================
--- src/exec.c  (revision 17785)
+++ src/exec.c  (working copy)
@@ -69,7 +69,7 @@
     extern PARROT_API int Parrot_exec_rel_count;
Parrot_exec_objfile_t * const obj =
-        mem_sys_allocate_zeroed(sizeof (Parrot_exec_objfile_t));
+        (Parrot_exec_objfile_t *)mem_sys_allocate_zeroed(sizeof 
(Parrot_exec_objfile_t));
     exec_init(obj);
     Parrot_exec_rel_addr = (char **)mem_sys_allocate_zeroed(4 * sizeof (char 
*));
     obj->bytecode_header_size =
@@ -206,7 +206,7 @@
         Parrot_exec_symbol_t *new_symbol;
symbol_number = obj->symbol_count;
-        new_symbol = mem_sys_realloc(obj->symbol_table,
+        new_symbol = (Parrot_exec_symbol_t *)mem_sys_realloc(obj->symbol_table,   
          (size_t)(obj->symbol_count + 1) * sizeof (Parrot_exec_symbol_t));
         obj->symbol_table = new_symbol;
@@ -266,7 +266,7 @@
     extern PARROT_API char **Parrot_exec_rel_addr;
     extern PARROT_API int Parrot_exec_rel_count;
- new_relloc = mem_sys_realloc(obj->text_rellocation_table,
+    new_relloc = (Parrot_exec_rellocation_t 
*)mem_sys_realloc(obj->text_rellocation_table,
         (size_t)(obj->text_rellocation_count + 1)
             * sizeof (Parrot_exec_rellocation_t));
     obj->text_rellocation_table = new_relloc;

Reply via email to