From a5e4bb86ec6d9e576eabdc8d07c9ff4441de00d4 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Tue, 17 Jul 2012 08:27:29 +0900 Subject: [PATCH] making sure the exception procedure is valid before trying to lookup its source --- vm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vm.c b/vm.c index d7c5c57b..da50e9e1 100644 --- a/vm.c +++ b/vm.c @@ -976,7 +976,9 @@ sexp sexp_apply (sexp ctx, sexp proc, sexp args) { if (! sexp_exception_procedure(_ARG1)) sexp_exception_procedure(_ARG1) = self; #if SEXP_USE_FULL_SOURCE_INFO - if (sexp_not(sexp_exception_source(_ARG1)) && sexp_procedure_source(sexp_exception_procedure(_ARG1))) + if (sexp_not(sexp_exception_source(_ARG1)) + && sexp_procedurep(sexp_exception_procedure(_ARG1)) + && sexp_procedure_source(sexp_exception_procedure(_ARG1))) sexp_exception_source(_ARG1) = sexp_lookup_source_info(sexp_exception_procedure(_ARG1), (ip-sexp_bytecode_data(bc))); #endif case SEXP_OP_RAISE: