X-Git-Url: http://git.hcoop.net/bpt/guile.git/blobdiff_plain/d0f6ceb84f26b033d6f1ac8bbc2acf81efc29f22..81b80b9610798ea910daad78cf525dec211639f9:/libguile/stackchk.h diff --git a/libguile/stackchk.h b/libguile/stackchk.h index 44f5c7ce2..1ed170fef 100644 --- a/libguile/stackchk.h +++ b/libguile/stackchk.h @@ -3,21 +3,22 @@ #ifndef SCM_STACKCHK_H #define SCM_STACKCHK_H -/* Copyright (C) 1995,1996,1998,2000 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1998,2000, 2003, 2006, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 3 of + * the License, or (at your option) any later version. * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301 USA */ @@ -33,13 +34,14 @@ */ #define SCM_STACK_CHECKING_P SCM_STACK_LIMIT -#ifdef STACK_CHECKING +#if defined BUILDING_LIBGUILE +#include "libguile/private-options.h" # if SCM_STACK_GROWS_UP # define SCM_STACK_OVERFLOW_P(s)\ - (s > ((SCM_STACKITEM *) SCM_BASE (scm_rootcont) + SCM_STACK_LIMIT)) + ((SCM_STACK_PTR (s) - SCM_I_CURRENT_THREAD->base) > SCM_STACK_LIMIT) # else # define SCM_STACK_OVERFLOW_P(s)\ - (s < ((SCM_STACKITEM *) SCM_BASE (scm_rootcont) - SCM_STACK_LIMIT)) + ((SCM_I_CURRENT_THREAD->base - SCM_STACK_PTR (s)) > SCM_STACK_LIMIT) # endif # define SCM_CHECK_STACK\ {\ @@ -49,7 +51,7 @@ } #else # define SCM_CHECK_STACK /**/ -#endif /* STACK_CHECKING */ +#endif SCM_API int scm_stack_checking_enabled_p; @@ -58,7 +60,8 @@ SCM_API int scm_stack_checking_enabled_p; SCM_API void scm_report_stack_overflow (void); SCM_API long scm_stack_size (SCM_STACKITEM *start); SCM_API void scm_stack_report (void); -SCM_API void scm_init_stackchk (void); +SCM_API SCM scm_sys_get_stack_size (void); +SCM_INTERNAL void scm_init_stackchk (void); #endif /* SCM_STACKCHK_H */