SCM_ARR macro for easy list-as-array access.
authorTom Balzer <niebieskitrociny@gmail.com>
Tue, 26 Jun 2018 11:31:58 +0000 (06:31 -0500)
committerTom Balzer <niebieskitrociny@gmail.com>
Tue, 26 Jun 2018 11:31:58 +0000 (06:31 -0500)
include/macros.h
src/common/guile_helpers.c

index 073768d..9c9fa4e 100644 (file)
@@ -2,5 +2,5 @@
 #define _MACROS_H
 
 #define tomd_p(...) {printf("[tomd] "); printf(__VA_ARGS__); printf("\n");}
-
+#define SCM_ARR(arr, index) (scm_list_ref(arr, scm_from_int(index)))
 #endif
index 0984fdd..0f2b4d1 100644 (file)
@@ -79,7 +79,7 @@ static void *load_manifest(void *args)
     SCM scm_i =
       scm_from_signed_integer(i);
     SCM scm_cur_job =
-      scm_list_ref(scm_job_list, scm_i);
+      SCM_ARR(scm_job_list, i);
 
     /* scm_cur_job should be a job */    
     if(scm_is_false(scm_call(scm_job_predicate, scm_cur_job, SCM_UNDEFINED))){
@@ -113,7 +113,7 @@ static void *load_manifest(void *args)
         j < jlen;
         j++){
       real_args[j] =
-        scm_to_locale_string(scm_list_ref(scm_args, scm_from_int(j)));
+        scm_to_locale_string(SCM_ARR(scm_args, j));
     }
 
     tomd_p("JOB <%d>:", i);