summaryrefslogtreecommitdiff
path: root/libguile/extensions.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/extensions.c')
-rw-r--r--libguile/extensions.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libguile/extensions.c b/libguile/extensions.c
index a094159d4..61c975e16 100644
--- a/libguile/extensions.c
+++ b/libguile/extensions.c
@@ -1,4 +1,4 @@
-/* Copyright 2001,2002,2004,2006,2009-2011,2018-2019
+/* Copyright 2001,2002,2004,2006,2009-2011,2018-2019,2021
Free Software Foundation, Inc.
This file is part of Guile.
@@ -27,6 +27,7 @@
#include "dynwind.h"
#include "gc.h"
#include "gsubr.h"
+#include "foreign.h"
#include "strings.h"
#include "threads.h"
@@ -113,7 +114,9 @@ load_extension (SCM lib, SCM init)
/* Dynamically link the library. */
#if HAVE_MODULES
- scm_dynamic_call (init, scm_dynamic_link (lib));
+ SCM pointer = scm_dynamic_pointer (init, scm_dynamic_link (lib));
+ void (*f)(void) = scm_to_pointer (pointer);
+ f ();
#else
scm_misc_error ("load-extension",
"extension ~S:~S not registered and dynamic-link disabled",