summaryrefslogtreecommitdiff
path: root/src/objcodes.c
diff options
context:
space:
mode:
authorLudovic Courtes <ludovic.courtes@laas.fr>2005-06-25 03:13:56 +0000
committerLudovic Courtès <ludo@gnu.org>2008-04-25 19:09:30 +0200
commit0b5f0e49a8b172544e2a7cb564c01c2ec439aaec (patch)
tree42265eb157f9bd5869eccfc93e395f9fed89b2bf /src/objcodes.c
parent6208295910a6fab78228b8255ed56ccd089bd5f0 (diff)
downloadguile-0b5f0e49a8b172544e2a7cb564c01c2ec439aaec.tar.gz
* src/objcodes.c (make_objcode_by_mmap): Fixed the error type when the
object file is too small. * doc/guile-vm.texi: Documented `make-closure'. Improved the documentation of `load-program'. * testsuite: New directory. * configure.in: Added `testsuite/Makefile' to `AC_OUTPUT'. * Makefile.am (SUBDIRS): Added `testsuite'. * src/vm_engine.h (VM_CHECK_OBJECT): New option. (CHECK_OBJECT): New macro. * src/vm_system.c (object-ref): Use VM_CHECK_OBJECT. * module/system/vm/assemble.scm (preprocess): Commented out the debugging code. * benchmark/lib.scm (do-loop): New procedure. git-archimport-id: lcourtes@laas.fr--2005-mobile/guile-vm--mobile--0.6--patch-2
Diffstat (limited to 'src/objcodes.c')
-rw-r--r--src/objcodes.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/objcodes.c b/src/objcodes.c
index 8903bd338..e1a3b17e8 100644
--- a/src/objcodes.c
+++ b/src/objcodes.c
@@ -82,9 +82,13 @@ make_objcode_by_mmap (int fd)
struct scm_objcode *p;
ret = fstat (fd, &st);
- if ((ret < 0) || (st.st_size <= strlen (OBJCODE_COOKIE)))
+ if (ret < 0)
SCM_SYSERROR;
+ if (st.st_size <= strlen (OBJCODE_COOKIE))
+ scm_misc_error (FUNC_NAME, "object file too small (~a bytes)",
+ SCM_LIST1 (SCM_I_MAKINUM (st.st_size)));
+
addr = mmap (0, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
if (addr == MAP_FAILED)
SCM_SYSERROR;