summaryrefslogtreecommitdiff
path: root/libguile/debug.h
diff options
context:
space:
mode:
authorGreg J. Badros <gjb@cs.washington.edu>1999-12-16 03:46:42 +0000
committerGreg J. Badros <gjb@cs.washington.edu>1999-12-16 03:46:42 +0000
commitd3a6bc94840464e1af8109de5dddd5859560c679 (patch)
tree87475ee6d125df4493b89e5e6a9a13933c8ab356 /libguile/debug.h
parentf353a9e2323b3957cd8475bcf10f7b489a8ce000 (diff)
downloadguile-d3a6bc94840464e1af8109de5dddd5859560c679.tar.gz
* *.h: Use SCM_NIMP(X) && in all the FOOP macros.
* *.[ch]: Use do { ... } while (0) idiom in macros that expanded to a bare block.
Diffstat (limited to 'libguile/debug.h')
-rw-r--r--libguile/debug.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/libguile/debug.h b/libguile/debug.h
index 87161488a..a3e69bfd1 100644
--- a/libguile/debug.h
+++ b/libguile/debug.h
@@ -45,6 +45,9 @@
*
* The author can be reached at djurfeldt@nada.kth.se
* Mikael Djurfeldt, SANS/NADA KTH, 10044 STOCKHOLM, SWEDEN */
+
+/* Software engineering face-lift by Greg J. Badros, 11-Dec-1999,
+ gjb@cs.washington.edu, http://www.cs.washington.edu/homes/gjb */
#include "libguile/__scm.h"
@@ -93,13 +96,13 @@ extern int scm_check_entry_p, scm_check_apply_p, scm_check_exit_p;
#define CHECK_EXIT scm_check_exit_p
#define SCM_RESET_DEBUG_MODE \
-{\
+do {\
CHECK_ENTRY = SCM_ENTER_FRAME_P || SCM_BREAKPOINTS_P;\
CHECK_APPLY = SCM_APPLY_FRAME_P || SCM_TRACE_P;\
CHECK_EXIT = SCM_EXIT_FRAME_P || SCM_TRACE_P;\
scm_debug_mode = SCM_DEVAL_P || CHECK_ENTRY || CHECK_APPLY || CHECK_EXIT;\
scm_ceval_ptr = scm_debug_mode ? scm_deval : scm_ceval;\
-}
+} while (0)
/* {Evaluator}
@@ -163,7 +166,7 @@ extern scm_debug_frame *scm_last_debug_frame;
extern long scm_tc16_debugobj;
-#define SCM_DEBUGOBJP(x) (scm_tc16_debugobj == SCM_TYP16 (x))
+#define SCM_DEBUGOBJP(x) (SCM_NIMP(x) && (scm_tc16_debugobj == SCM_TYP16 (x)))
#define SCM_DEBUGOBJ_FRAME(x) SCM_CDR (x)
#define SCM_SET_DEBUGOBJ_FRAME(x, f) SCM_SETCDR (x, f)
@@ -172,7 +175,7 @@ extern long scm_tc16_debugobj;
extern long scm_tc16_memoized;
-#define SCM_MEMOIZEDP(x) (scm_tc16_memoized == SCM_TYP16 (x))
+#define SCM_MEMOIZEDP(x) (SCM_NIMP(x) && (scm_tc16_memoized == SCM_TYP16 (x)))
#define SCM_MEMOIZED_EXP(x) SCM_CAR (SCM_CDR (x))
#define SCM_MEMOIZED_ENV(x) SCM_CDR (SCM_CDR (x))