*** empty log message ***
[bpt/guile.git] / libguile / dynl-dld.c
index 64fda4d..17d975c 100644 (file)
@@ -14,7 +14,8 @@
  * 
  * You should have received a copy of the GNU General Public License
  * along with this software; see the file COPYING.  If not, write to
- * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307 USA
  *
  * As a special exception, the Free Software Foundation gives permission
  * for additional uses of the text contained in its release of GUILE.
@@ -38,8 +39,7 @@
  *
  * If you write modifications of your own for GUILE, it is your choice
  * whether to permit this exception to apply to your modifications.
- * If you do not wish that, delete this exception notice.  
- */
+ * If you do not wish that, delete this exception notice.  */
 
 /* "dynl.c" dynamically link&load object files.
    Author: Aubrey Jaffer
@@ -72,7 +72,10 @@ sysdep_dynl_link (fname, subr)
 
     status = dld_link (fname);
     if (status)
+      {
+       SCM_ALLOW_INTS;
        scm_misc_error (subr, dld_strerror (status), SCM_EOL);
+      }
     return fname;
 }
 
@@ -83,11 +86,12 @@ sysdep_dynl_unlink (handle, subr)
 {
     int status;
 
-    SCM_DEFER_INTS;
     status = dld_unlink_by_file ((char *)fname, 1);
-    SCM_ALLOW_INTS;
     if (status)
+      {
+       SCM_ALLOW_INTS;
        scm_misc_error (s_dynamic_unlink, dld_strerror (status), SCM_EOL);
+      }
 }
 
 static void *
@@ -98,15 +102,14 @@ sysdep_dynl_func (symb, handle, subr)
 {
     void *func;
 
-    SCM_DEFER_INTS;
     func = (void *) dld_get_func (func);
     if (func == 0)
        scm_misc_error (subr, dld_strerror (dld_errno), SCM_EOL);
     if (!dld_function_executable_p (func)) {
        listundefs ();
+       SCM_ALLOW_INTS;
        scm_misc_error (subr, "unresolved symbols remain", SCM_EOL);
     }
-    SCM_ALLOW_INTS;
     return func;
 }