Ticket #974 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

r15381 and objc bridge

Reported by: rme Owned by:
Priority: normal Milestone:
Component: Compiler Version: trunk
Keywords: Cc:

Description

As of r15381, doing (require 'objc-support) will produce

> Error: Can't find slot definition for NS:ISA in #<OBJC:OBJC-CLASS NS:NS-CELL (#x7FFF7816B740)>
> While executing: DETERMINE-FOREIGN-SLOT-LOCATION, in process listener(1).

This appears to be because (typep thing 'obj:objc-class) is now transformed to use STD-INSTANCE-CLASS-CELL-TYPEP here.

Change History

comment:1 Changed 3 years ago by gb

  • Status changed from new to closed
  • Resolution set to fixed

(In [15394]) Play whack-a-mole with OPTIMIZE-TYPEP (in the case where the type names a standard class): we need to check in both directions (that the class is neither a subclass or a superclass of a class whose instances aren't STANDARD-INSTANCEs.) More accurately, we care about whether STD-INSTANCE-CLASS-CELL-TYPEP - which also handles BASIC-STREAMs - can be used for TYPEP, and this whole thing would go away if we made CLASS-CELL-TYPEP a little smarter about finding the object's class wrapper when it's easy to do so - when the object's a STANDARD-INSTANCE or BASIC-STREAM, for ... uh ... instance.

Fixes ticket:974 .

Note: See TracTickets for help on using tickets.