ensure that lists pushed onto the stack are proper
authorAndy Wingo <wingo@pobox.com>
Thu, 16 Oct 2008 11:24:39 +0000 (13:24 +0200)
committerAndy Wingo <wingo@pobox.com>
Thu, 16 Oct 2008 11:24:39 +0000 (13:24 +0200)
commit1f40459f5cd2389d0a44b6c46d431ed58f450f3a
tree0de6be1a41b25c4652c0372f8b25b6920a1cffac
parent28a2f57bde42030e96b4c2ab574336c6e8c394b5
ensure that lists pushed onto the stack are proper

I saw this problem when running elisp.test -- it tries to apply a
function to an arglist ending in nil, which obviously is not null.

* libguile/vm-engine.h (PUSH_LIST): New helper macro, pushes the elements
  of a list onto the stack. Checks to make sure that the list is proper.

* libguile/vm-i-system.c (list-break, mv-call, apply, goto/apply)
  (goto/cc): Use LIST_BREAK.

* libguile/vm-engine.c (vm_error_improper_list): New error case.
libguile/vm-engine.c
libguile/vm-engine.h
libguile/vm-i-system.c