mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 19:50:24 +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
e1dffd3504
commit
ff2adb04cb
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 Free Software Foundation, Inc.
|
||||
;;;; Copyright (C) 1998-2003, 2006, 2009-2011, 2013-2015, 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
|
||||
|
@ -279,7 +280,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))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue