Avoid accessing symbol internals in call_dsubr_1 and DEVAL
authorMichael Gran <spk121@yahoo.com>
Fri, 21 Aug 2009 03:30:12 +0000 (20:30 -0700)
committerMichael Gran <spk121@yahoo.com>
Fri, 21 Aug 2009 04:39:56 +0000 (21:39 -0700)
commit0193377d24db3ec57ea9be488069a4b86878e6e6
treeb61bdf868d4e3cedd05ec45827d011a826dfa1cc
parent7f5946427e457b5588b1a5103dc4652bd9a99392
Avoid accessing symbol internals in call_dsubr_1 and DEVAL

The symbol's characters are only accessed in case they are needed
for an error message.  This can be avoided by passing the symbol
all the way to a error message function.

* libguile/__scm.h (SCM_WTA_DISPATCH_1_SUBR): new macro

* libguile/error.c (scm_i_wrong_type_arg_symbol): new error function

* libguile/error.h: declaration of scm_i_wrong_type_arg_symbol

* libguile/eval.c (call_dsubr_1): use new macro SCM_WTA_DISPATCH_1_SUBR
  to avoid having to unpack the symbol's chars

* libguile/eval.i.c: use new macro SCM_WTA_DISPATCH_1_SUBR
libguile/__scm.h
libguile/error.c
libguile/error.h
libguile/eval.c
libguile/eval.i.c