[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
segfault in GOOPS/C function
From: |
Marco Maggi |
Subject: |
segfault in GOOPS/C function |
Date: |
Wed, 27 Jun 2007 07:40:41 +0200 |
On Guile 1.8.1 the following:
;; hurt-me.scm --
(define-module (this)
#:use-module (oop goops))
(define-class <a> ())
(define-class <b> (<a>))
(define-method (doit (o <a>) a b)
#f)
(define-method (doit (o <b>) c d)
#f)
(define args (list (make <b>) 1 2))
(define p (compute-applicable-methods doit args))
(define the-one-for-b (car p))
(define the-one-for-a (cadr p))
(method-more-specific? the-one-for-b the-one-for-a '())
;;; end of file
segfaults inside METHOD-MORE-SPECIFIC? because, I think, the
empty list is not recognised as such. Yeah, maybe the empty
list is not what this function expects, but it should not
dump on me.
[New Thread 16384 (LWP 2231)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 2231)]
0x4006de10 in more_specificp (m1=0x0, m2=0x0, targs=0x0) at
../../libguile/goops.c:1960
1960 for (l = SCM_SLOT (targs[i], scm_si_cpl); ; l =
SCM_CDR(l)) {
#0 0x4006de10 in more_specificp (m1=0x0, m2=0x0, targs=0x0)
at ../../libguile/goops.c:1960
#1 0x4006e08f in scm_sys_method_more_specific_p
(m1=0x4033f050, m2=0x4033f190, targs=0x404)
at ../../libguile/goops.c:2342
#2 0x400604de in ceval (x=0x40410468, env=0x40410218) at
../../libguile/eval.c:4126
#3 0x400629c6 in scm_i_eval_x (exp=0x0, env=0x404107c8) at
inline.h:250
#4 0x4006356e in scm_primitive_eval_x (exp=0x404107f8) at
../../libguile/eval.c:5906
#5 0x400770d1 in scm_primitive_load (filename=0x403491c0)
at ../../libguile/load.c:109
#6 0x400604de in ceval (x=0x404, env=0x40393c58) at
../../libguile/eval.c:4126
#7 0x4006290a in scm_i_eval (exp=0x0, env=0x40393c58) at
inline.h:250
#8 0x4004fb92 in scm_start_stack (id=0x404107c8,
exp=0x4031e9a8, env=0x40393c58)
at ../../libguile/debug.c:454
#9 0x4004fc10 in scm_m_start_stack (exp=0x404107c8,
env=0x0) at ../../libguile/debug.c:470
--
Marco Maggi
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- segfault in GOOPS/C function,
Marco Maggi <=