mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 11:40:18 +02:00
goops: Fix 'instance?' to work on objects that aren't structs.
Fixes <https://bugs.gnu.org/31606> Reported by Tommi Höynälänmaa <tommi.hoynalanmaa@gmail.com> * module/oop/goops.scm (instance?): Check that OBJ is a struct before applying 'struct-vtable' to it.
This commit is contained in:
parent
fe92bc26a6
commit
9fd1dc2fcc
1 changed files with 4 additions and 2 deletions
|
@ -1,6 +1,7 @@
|
|||
;;;; goops.scm -- The Guile Object-Oriented Programming System
|
||||
;;;;
|
||||
;;;; Copyright (C) 1998-2003,2006,2009-2011,2013-2015,2017 Free Software Foundation, Inc.
|
||||
;;;; Copyright (C) 1998-2003,2006,2009-2011,2013-2015,2017-2018
|
||||
;;;; Free Software Foundation, Inc.
|
||||
;;;; Copyright (C) 1993-1998 Erick Gallesio - I3S-CNRS/ESSI <eg@unice.fr>
|
||||
;;;;
|
||||
;;;; This library is free software; you can redistribute it and/or
|
||||
|
@ -285,7 +286,8 @@
|
|||
(class-has-flags? (struct-vtable obj) vtable-flag-goops-slot)))
|
||||
|
||||
(define-inlinable (instance? obj)
|
||||
(class-has-flags? (struct-vtable obj) vtable-flag-goops-class))
|
||||
(and (struct? obj)
|
||||
(class-has-flags? (struct-vtable obj) vtable-flag-goops-class)))
|
||||
|
||||
(define (class-has-statically-allocated-slots? class)
|
||||
(class-has-flags? class vtable-flag-goops-static-slot-allocation))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue