summaryrefslogtreecommitdiff
path: root/libguile/foreign.c
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2013-08-11 22:46:22 -0400
committerMark H Weaver <mhw@netris.org>2013-08-11 22:46:22 -0400
commit1160e2d94e6a53e4509f81ff08798655db9cae26 (patch)
tree01885df852779fe22ca336082e033dfbff6f5c6e /libguile/foreign.c
parent1e5c32054e002e2c12ba0188b58b7d26432c3495 (diff)
parent9ea816f54a3cc2216eac45c6238fa06448d824df (diff)
downloadguile-1160e2d94e6a53e4509f81ff08798655db9cae26.tar.gz
Merge remote-tracking branch 'origin/stable-2.0'
Diffstat (limited to 'libguile/foreign.c')
-rw-r--r--libguile/foreign.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libguile/foreign.c b/libguile/foreign.c
index db8e13127..76e43f3ad 100644
--- a/libguile/foreign.c
+++ b/libguile/foreign.c
@@ -329,9 +329,15 @@ SCM_DEFINE (scm_dereference_pointer, "dereference-pointer", 1, 0, 0,
"holds a pointer, return this pointer.")
#define FUNC_NAME s_scm_dereference_pointer
{
+ void **ptr;
+
SCM_VALIDATE_POINTER (1, pointer);
- return scm_from_pointer (* (void **) SCM_POINTER_VALUE (pointer), NULL);
+ ptr = SCM_POINTER_VALUE (pointer);
+ if (SCM_UNLIKELY (ptr == NULL))
+ null_pointer_error (FUNC_NAME);
+
+ return scm_from_pointer (*ptr, NULL);
}
#undef FUNC_NAME