From ec54de8592fd15b2f61145437080da6ccfe84473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20K=C3=B6ppe?= Date: Sun, 23 Nov 2003 20:29:07 +0000 Subject: [PATCH] Add a SWIG_contract_assert macro. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5379 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- SWIG/Lib/guile/guile_gh_run.swg | 6 ++++++ SWIG/Lib/guile/guile_scm_run.swg | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/SWIG/Lib/guile/guile_gh_run.swg b/SWIG/Lib/guile/guile_gh_run.swg index 699834d54..7a5f8fe3d 100644 --- a/SWIG/Lib/guile/guile_gh_run.swg +++ b/SWIG/Lib/guile/guile_gh_run.swg @@ -30,6 +30,12 @@ extern "C" { #define SWIG_Guile_MarkPointerNoncollectable(s) (s) #define SWIG_Guile_MarkPointerDestroyed(s) (s) +#define SWIG_contract_assert(expr, msg) \ + if (!(expr)) \ + scm_error(gh_symbol2scm("swig-contract-assertion-failed"), \ + (char *) FUNC_NAME, (char *) msg, \ + SCM_EOL, SCM_BOOL_F); else + #if defined(SWIG_NOINCLUDE) # define SWIGSTATIC #elif defined(SWIG_GLOBAL) diff --git a/SWIG/Lib/guile/guile_scm_run.swg b/SWIG/Lib/guile/guile_scm_run.swg index da9780ee5..0464d497c 100644 --- a/SWIG/Lib/guile/guile_scm_run.swg +++ b/SWIG/Lib/guile/guile_scm_run.swg @@ -36,7 +36,12 @@ typedef struct swig_guile_clientdata { SWIG_Guile_NewPointerObj((void*)ptr, type, owner) #define SWIG_PropagateClientData(type) \ SWIG_Guile_PropagateClientData(type) - +#define SWIG_contract_assert(expr, msg) \ + if (!(expr)) \ + scm_error(scm_str2symbol("swig-contract-assertion-failed"), \ + (char *) FUNC_NAME, (char *) msg, \ + SCM_EOL, SCM_BOOL_F); else + #ifdef SWIG_NOINCLUDE /* Interface helper function */