[svn:parrot] r46272 - in trunk: include/parrot src src/pmc

petdance at svn.parrot.org petdance at svn.parrot.org
Tue May 4 04:50:17 UTC 2010


Author: petdance
Date: Tue May  4 04:50:16 2010
New Revision: 46272
URL: https://trac.parrot.org/parrot/changeset/46272

Log:
adding headerizer macros

Modified:
   trunk/include/parrot/pmc_freeze.h
   trunk/include/parrot/thread.h
   trunk/src/pmc/threadinterpreter.pmc
   trunk/src/pmc_freeze.c
   trunk/src/thread.c

Modified: trunk/include/parrot/pmc_freeze.h
==============================================================================
--- trunk/include/parrot/pmc_freeze.h	Tue May  4 04:32:30 2010	(r46271)
+++ trunk/include/parrot/pmc_freeze.h	Tue May  4 04:50:16 2010	(r46272)
@@ -122,6 +122,7 @@
 
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
 STRING * Parrot_freeze_pbc(PARROT_INTERP,
     ARGIN(PMC *pmc),
     ARGIN(const PackFile_ConstTable *pf))
@@ -147,8 +148,9 @@
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
-PMC * Parrot_freeze_strings(PARROT_INTERP, PMC *pmc)
-        __attribute__nonnull__(1);
+PMC * Parrot_freeze_strings(PARROT_INTERP, ARGIN(PMC *pmc))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
 
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
@@ -200,7 +202,8 @@
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(pmc))
 #define ASSERT_ARGS_Parrot_freeze_strings __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(pmc))
 #define ASSERT_ARGS_Parrot_thaw __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(image))

Modified: trunk/include/parrot/thread.h
==============================================================================
--- trunk/include/parrot/thread.h	Tue May  4 04:32:30 2010	(r46271)
+++ trunk/include/parrot/thread.h	Tue May  4 04:50:16 2010	(r46272)
@@ -164,6 +164,12 @@
 void Parrot_shared_gc_unblock(PARROT_INTERP)
         __attribute__nonnull__(1);
 
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PMC * pt_thread_create(PARROT_INTERP, INTVAL type, INTVAL clone_flags)
+        __attribute__nonnull__(1);
+
 void pt_add_to_interpreters(PARROT_INTERP,
     ARGIN_NULLOK(Parrot_Interp new_interp))
         __attribute__nonnull__(1);
@@ -194,9 +200,6 @@
 void pt_suspend_self_for_gc(PARROT_INTERP)
         __attribute__nonnull__(1);
 
-PMC * pt_thread_create(PARROT_INTERP, INTVAL type, INTVAL clone_flags)
-        __attribute__nonnull__(1);
-
 int pt_thread_create_run(PARROT_INTERP,
     INTVAL type,
     INTVAL clone_flags,
@@ -213,11 +216,13 @@
 void pt_thread_kill(UINTVAL tid);
 void pt_thread_prepare_for_run(Parrot_Interp d, NULLOK(Parrot_Interp s));
 int pt_thread_run(PARROT_INTERP,
-    PMC *thread_interp_pmc,
+    ARGMOD(PMC *thread_interp_pmc),
     ARGIN(PMC *sub),
     ARGIN_NULLOK(PMC *arg))
         __attribute__nonnull__(1)
-        __attribute__nonnull__(3);
+        __attribute__nonnull__(2)
+        __attribute__nonnull__(3)
+        FUNC_MODIFIES(*thread_interp_pmc);
 
 void pt_thread_wait_with(PARROT_INTERP, ARGMOD(Parrot_mutex *mutex))
         __attribute__nonnull__(1)
@@ -239,6 +244,8 @@
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_Parrot_shared_gc_unblock __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_pt_thread_create __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_pt_add_to_interpreters __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_pt_clone_code __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
@@ -258,8 +265,6 @@
     , PARROT_ASSERT_ARG(pmc))
 #define ASSERT_ARGS_pt_suspend_self_for_gc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp))
-#define ASSERT_ARGS_pt_thread_create __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
-       PARROT_ASSERT_ARG(interp))
 #define ASSERT_ARGS_pt_thread_create_run __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
     , PARROT_ASSERT_ARG(sub))
@@ -270,6 +275,7 @@
 #define ASSERT_ARGS_pt_thread_prepare_for_run __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
 #define ASSERT_ARGS_pt_thread_run __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(thread_interp_pmc) \
     , PARROT_ASSERT_ARG(sub))
 #define ASSERT_ARGS_pt_thread_wait_with __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
        PARROT_ASSERT_ARG(interp) \

Modified: trunk/src/pmc/threadinterpreter.pmc
==============================================================================
--- trunk/src/pmc/threadinterpreter.pmc	Tue May  4 04:32:30 2010	(r46271)
+++ trunk/src/pmc/threadinterpreter.pmc	Tue May  4 04:50:16 2010	(r46272)
@@ -26,8 +26,15 @@
 /* HEADERIZER BEGIN: static */
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 
-static void stop_GC(Interp *parent, Interp *thread);
-#define ASSERT_ARGS_stop_GC __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+static void stop_GC(ARGMOD(Interp *parent), ARGMOD(Interp *thread))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2)
+        FUNC_MODIFIES(*parent)
+        FUNC_MODIFIES(*thread);
+
+#define ASSERT_ARGS_stop_GC __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(parent) \
+    , PARROT_ASSERT_ARG(thread))
 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
 /* HEADERIZER END: static */
 
@@ -38,7 +45,7 @@
  * XXX a quick hack to pass the few tests
  */
 static void
-stop_GC(Interp *parent, Interp *thread)
+stop_GC(ARGMOD(Interp *parent), ARGMOD(Interp *thread))
 {
     ASSERT_ARGS(stop_GC)
     Parrot_block_GC_mark(parent);

Modified: trunk/src/pmc_freeze.c
==============================================================================
--- trunk/src/pmc_freeze.c	Tue May  4 04:32:30 2010	(r46271)
+++ trunk/src/pmc_freeze.c	Tue May  4 04:50:16 2010	(r46272)
@@ -72,12 +72,14 @@
 
 PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
 STRING *
-Parrot_freeze_pbc(PARROT_INTERP, ARGIN(PMC *pmc), ARGIN(const PackFile_ConstTable *pf)) {
+Parrot_freeze_pbc(PARROT_INTERP, ARGIN(PMC *pmc), ARGIN(const PackFile_ConstTable *pf))
+{
     ASSERT_ARGS(Parrot_freeze_pbc)
-    PMC *pf_pmc, *visitor;
+    PMC *visitor;
 
-    pf_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
+    PMC * const pf_pmc = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
     VTABLE_set_pointer(interp, pf_pmc, (void *)pf);
 
     visitor  = Parrot_pmc_new_init(interp, enum_class_ImageIO, pf_pmc);
@@ -156,10 +158,10 @@
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 PMC *
-Parrot_freeze_strings(PARROT_INTERP, PMC *pmc)
+Parrot_freeze_strings(PARROT_INTERP, ARGIN(PMC *pmc))
 {
     ASSERT_ARGS(Parrot_freeze_strings)
-    PMC *visitor = Parrot_pmc_new(interp, enum_class_ImageIOStrings);
+    PMC * const visitor = Parrot_pmc_new(interp, enum_class_ImageIOStrings);
     VTABLE_set_pmc(interp, visitor, pmc);
     return VTABLE_get_pmc(interp, visitor);
 }

Modified: trunk/src/thread.c
==============================================================================
--- trunk/src/thread.c	Tue May  4 04:32:30 2010	(r46271)
+++ trunk/src/thread.c	Tue May  4 04:50:16 2010	(r46272)
@@ -713,12 +713,15 @@
 
 */
 
+PARROT_EXPORT
+PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
 PMC *
 pt_thread_create(PARROT_INTERP, INTVAL type, INTVAL clone_flags)
 {
     ASSERT_ARGS(pt_thread_create)
-    PMC *new_interp_pmc = pmc_new(interp, type);
-    Interp *new_interp  = (Interp *)VTABLE_get_pointer(interp, new_interp_pmc);
+    PMC    * const new_interp_pmc = pmc_new(interp, type);
+    Interp * const new_interp     = (Interp *)VTABLE_get_pointer(interp, new_interp_pmc);
 
     clone_interpreter(new_interp, interp, clone_flags);
     pt_thread_prepare_for_run(new_interp, interp);
@@ -738,10 +741,11 @@
 */
 
 int
-pt_thread_run(PARROT_INTERP, PMC *thread_interp_pmc, ARGIN(PMC *sub), ARGIN_NULLOK(PMC *arg))
+pt_thread_run(PARROT_INTERP, ARGMOD(PMC *thread_interp_pmc), ARGIN(PMC *sub),
+        ARGIN_NULLOK(PMC *arg))
 {
     ASSERT_ARGS(pt_thread_run)
-    Interp *thread_interp = (Interp *)VTABLE_get_pointer(interp, thread_interp_pmc);
+    Interp * const thread_interp = (Interp *)VTABLE_get_pointer(interp, thread_interp_pmc);
 
     SETATTR_ParrotInterpreter_sub(interp,
                                   thread_interp_pmc, pt_transfer_sub(thread_interp, interp, sub));


More information about the parrot-commits mailing list