diff options
author | Ludovic Courtes <ludovic.courtes@laas.fr> | 2005-06-25 03:13:56 +0000 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2008-04-25 19:09:30 +0200 |
commit | 0b5f0e49a8b172544e2a7cb564c01c2ec439aaec (patch) | |
tree | 42265eb157f9bd5869eccfc93e395f9fed89b2bf /src/objcodes.c | |
parent | 6208295910a6fab78228b8255ed56ccd089bd5f0 (diff) | |
download | guile-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.c | 6 |
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; |