summaryrefslogtreecommitdiff
path: root/libguile/debug.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2010-01-06 21:45:48 +0100
committerAndy Wingo <wingo@pobox.com>2010-01-07 23:49:30 +0100
commit6c2961a01142c7ba9fc03a410004dd696e9208cd (patch)
treee6cf66cf590aaf68e241fac9637b25cbdedfc7e1 /libguile/debug.c
parentfd12a19a5e59afbd78ca67b1305c70bb1ecb724b (diff)
downloadguile-6c2961a01142c7ba9fc03a410004dd696e9208cd.tar.gz
fix procedure-name on applicable structs
* libguile/debug.c (scm_procedure_name): Fix for applicable structs.
Diffstat (limited to 'libguile/debug.c')
-rw-r--r--libguile/debug.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libguile/debug.c b/libguile/debug.c
index 0f83ea012..852ff6742 100644
--- a/libguile/debug.c
+++ b/libguile/debug.c
@@ -1,5 +1,5 @@
/* Debugging extensions for Guile
- * Copyright (C) 1995,1996,1997,1998,1999,2000,2001, 2002, 2003, 2006, 2008, 2009 Free Software Foundation
+ * Copyright (C) 1995,1996,1997,1998,1999,2000,2001, 2002, 2003, 2006, 2008, 2009, 2010 Free Software Foundation
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
@@ -35,6 +35,7 @@
#include "libguile/throw.h"
#include "libguile/macros.h"
#include "libguile/smob.h"
+#include "libguile/struct.h"
#include "libguile/procprop.h"
#include "libguile/srcprop.h"
#include "libguile/alist.h"
@@ -137,6 +138,8 @@ SCM_DEFINE (scm_procedure_name, "procedure-name", 1, 0, 0,
#define FUNC_NAME s_scm_procedure_name
{
SCM_VALIDATE_PROC (1, proc);
+ while (SCM_STRUCTP (proc) && SCM_STRUCT_APPLICABLE_P (proc))
+ proc = SCM_STRUCT_PROCEDURE (proc);
switch (SCM_TYP7 (proc)) {
case scm_tc7_gsubr:
return SCM_SUBR_NAME (proc);