* Removed unused member "properties" from struct scm_subr_entry.
[bpt/guile.git] / libguile / procs.h
index 0258664..a843525 100644 (file)
@@ -62,8 +62,6 @@ typedef struct
   SCM *generic;                        /* 0 if no generic support
                                 * *generic == 0 until first method
                                 */
-  SCM properties;              /* procedure properties */
-  SCM documentation;
 } scm_subr_entry;
 
 #define SCM_SUBRNUM(subr) (SCM_CELL_WORD_0 (subr) >> 8)
@@ -72,12 +70,20 @@ typedef struct
 #define SCM_SUBR_ENTRY(x) (scm_subr_table[SCM_SUBRNUM (x)])
 #define SCM_SNAME(x) (SCM_SUBR_ENTRY (x).name)
 #define SCM_SUBRF(x) ((SCM (*)()) SCM_CELL_WORD_1 (x))
+#define SCM_SET_SUBRF(x, v) (SCM_SET_CELL_WORD_1 ((x), (v)))
 #define SCM_DSUBRF(x) ((double (*)()) SCM_CELL_WORD_1 (x))
-#define SCM_CCLO_SUBR(x) (SCM_VELTS(x)[0])
-
 #define SCM_SUBR_GENERIC(x) (SCM_SUBR_ENTRY (x).generic)
-#define SCM_SUBR_PROPS(x) (SCM_SUBR_ENTRY (x).properties)
-#define SCM_SUBR_DOC(x) (SCM_SUBR_ENTRY (x).documentation)
+
+#define SCM_CCLO_LENGTH(x) (SCM_CELL_WORD_0 (x) >> 8)
+#define SCM_SET_CCLO_LENGTH(x, v) (SCM_SET_CELL_WORD_0 ((x), ((v) << 8) + scm_tc7_cclo))
+#define SCM_CCLO_BASE(x) ((scm_bits_t *) SCM_CELL_WORD_1 (x))
+#define SCM_SET_CCLO_BASE(x, v) (SCM_SET_CELL_WORD_1 ((x), (v)))
+
+#define SCM_CCLO_REF(x, i) (SCM_PACK (SCM_CCLO_BASE (x) [i]))
+#define SCM_CCLO_SET(x, i, v) (SCM_CCLO_BASE (x) [i] = SCM_UNPACK (v))
+
+#define SCM_CCLO_SUBR(x) (SCM_CCLO_REF ((x), 0))
+#define SCM_SET_CCLO_SUBR(x, v) (SCM_CCLO_SET ((x), 0, (v)))
 
 /* Closures
  */
@@ -91,7 +97,7 @@ typedef struct
                            + scm_tc3_closure))
 #define SCM_ENV(x) SCM_CDR(x)
 #define SCM_SETENV(x, e) SCM_SETCDR (x, e)
-#define SCM_TOP_LEVEL(SCM_ENV)  (SCM_NULLP (SCM_ENV) || (SCM_TRUE_P (scm_procedure_p (SCM_CAR (SCM_ENV)))))
+#define SCM_TOP_LEVEL(ENV)  (SCM_NULLP (ENV) || (SCM_EQ_P (scm_procedure_p (SCM_CAR (ENV)), SCM_BOOL_T)))
 
 /* Procedure-with-setter
 
@@ -179,6 +185,14 @@ extern SCM scm_make_cclo (SCM proc, SCM len);
 #endif /*GUILE_DEBUG*/
 
 \f
+
+#if (SCM_DEBUG_DEPRECATED == 0)
+
+#define SCM_SUBR_PROPS(x) SCM_EOL
+#define SCM_SUBR_DOC(x) SCM_BOOL_F
+
+#endif  /* SCM_DEBUG_DEPRECATED == 0 */
+
 #endif  /* PROCSH */
 
 /*