bug-guile
[Top][All Lists]
Advanced

[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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]