Ticket #768 (closed defect: fixed)

Opened 4 years ago

Last modified 4 years ago

ObjC instance initialization failures

Reported by: gb Owned by:
Priority: normal Milestone:
Component: Objective-C Bridge Version: trunk
Keywords: Cc:

Description

Several people have reported ( http://clozure.com/pipermail/openmcl-devel/2010-October/012207.html) that the IDE can fail to start properly; one symptom is that creation of the initial listener can fail with a message to the effect that a Hemlock buffer named "Untitled" already exists.

This seems to be caused by the fact that an earlier attempt to create a listener fails (after the "Untitled" Hemlock buffer is created) because some instances of some hybrid objects (HEMLOCK-TEXT-STORAGE and friends) aren't properly initialized, which in turn seems to be due to the fact that the hash table which maps ObjC classes to sets of init keywords has been an EQL hash table; if foreign addresses of classes change, there's a good chance that classes won't be found in that table and their instances won't be correctly initialized.

We canonicalize ObjC class pointers and preserve them across sessions. *CLASS-INIT-KEYWORDS* should hash on identity, not foreign address.

This should be fixed in a minute. It was introduced in the trunk in r14263.

Change History

comment:1 Changed 4 years ago by gb

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

Should be fixed in r14377.

Note: See TracTickets for help on using tickets.