Eliot Miranda uploaded a new version of Kernel to project The Trunk: http://source.squeak.org/trunk/Kernel-eem.1064.mcz
==================== Summary ====================
Name: Kernel-eem.1064 Author: eem Time: 22 March 2017, 9:21:06.777441 am UUID: 5779c103-0ef2-470d-ae88-a5a759b47510 Ancestors: Kernel-ul.1063
Fix bug in creating new subclasses of #compiledMethod classes.
=============== Diff against Kernel-ul.1063 ===============
Item was changed: ----- Method: ClassBuilder>>superclass:variableByteSubclass:instanceVariableNames:classVariableNames:poolDictionaries:category: (in category 'public') ----- superclass: aClass + variableByteSubclass: n instanceVariableNames: f - variableByteSubclass: t instanceVariableNames: f classVariableNames: d poolDictionaries: s category: cat "This is the standard initialization message for creating a new class as a subclass of an existing class in which the subclass is to have indexable 8-bit byte-sized nonpointer variables." + | existingOrSuperclass actualType env | + aClass instSize > 0 ifTrue: + [^self error: 'cannot make a byte subclass of a class with named fields']. + (aClass isVariable and: [aClass isBytes not]) ifTrue: + [^self error: 'cannot make an 8-bit byte subclass of a class with 16, 32 or 64 bit fields']. + (aClass isVariable and: [aClass isPointers]) ifTrue: + [^self error: 'cannot make a byte subclass of a class with pointer fields']. + existingOrSuperclass := aClass environment at: n ifAbsent: [aClass]. + actualType := existingOrSuperclass typeOfClass == #compiledMethod + ifTrue: [#compiledMethod] + ifFalse: [#bytes]. - | oldClassOrNil actualType env | - aClass instSize > 0 - ifTrue: [^self error: 'cannot make a byte subclass of a class with named fields']. - (aClass isVariable and: [aClass isBytes not]) - ifTrue: [^self error: 'cannot make an 8-bit byte subclass of a class with 16, 32 or 64 bit fields']. - (aClass isVariable and: [aClass isPointers]) - ifTrue: [^self error: 'cannot make a byte subclass of a class with pointer fields']. - oldClassOrNil := aClass environment at: t ifAbsent:[nil]. - actualType := (oldClassOrNil notNil - and: [oldClassOrNil typeOfClass == #compiledMethod]) - ifTrue: [#compiledMethod] - ifFalse: [#bytes]. env := CurrentEnvironment signal ifNil: [aClass environment]. ^self + name: n - name: t inEnvironment: env subclassOf: aClass type: actualType instanceVariableNames: f classVariableNames: d poolDictionaries: s category: cat!
packages@lists.squeakfoundation.org