[squeak-dev] FFI: FFI-Kernel-mt.158.mcz

commits at source.squeak.org commits at source.squeak.org
Mon May 17 10:45:38 UTC 2021


Marcel Taeumel uploaded a new version of FFI-Kernel to project FFI:
http://source.squeak.org/FFI/FFI-Kernel-mt.158.mcz

==================== Summary ====================

Name: FFI-Kernel-mt.158
Author: mt
Time: 17 May 2021, 12:45:36.337555 pm
UUID: e43bcf87-27f2-f04b-82e6-f350dee91c3a
Ancestors: FFI-Kernel-mt.157

Further fixes for code loading. Sorry for the noise :-(

=============== Diff against FFI-Kernel-mt.157 ===============

Item was changed:
  ----- Method: ExternalStructure class>>doneCompiling (in category 'class management') -----
  doneCompiling
  	"Base class changed to something that is an external structure now."
  
+ 	[self compileFields]
+ 		ifError: [ "Ignore unfinished field specs" ].
+ 	self externalType isUnknownType
+ 		ifTrue: [self externalType becomeKnownTypeSafely].!
- 	[self compileFields] ifError: [ "Ignore unfinished field specs" ].
- 	self externalType isUnknownType ifTrue: [self externalType becomeKnownType].!

Item was changed:
  ----- Method: ExternalStructureType class>>newTypeForStructureClass: (in category 'instance creation') -----
  newTypeForStructureClass: anExternalStructureClass
  	
  	| type pointerType referentClass |
  	referentClass := anExternalStructureClass.
  	
  	self
  		assert: [referentClass includesBehavior: ExternalStructure]
  		description: 'Wrong base class for structure'.
  	
  	type := self newTypeForUnknownNamed: referentClass name.
  	pointerType := type asPointerType.
  	
  	referentClass compiledSpec
  		ifNil: [ "First time. The referent class' fields are probably just compiled for the first time."
  			type setReferentClass: referentClass.
  			pointerType setReferentClass: referentClass]
  		ifNotNil: [
  			type newReferentClass: referentClass.
  			pointerType newReferentClass: referentClass].
  
+ 	^ type becomeKnownTypeSafely!
- 	^ [type becomeKnownType] ifError: [
- 			self assert: [type isUnknownType].
- 			type "still unkown"]!

Item was added:
+ ----- Method: ExternalUnknownType>>becomeKnownTypeSafely (in category 'construction') -----
+ becomeKnownTypeSafely
+ 	"Give me some purpose. :-)"
+ 
+ 	^ [self becomeKnownType]
+ 		on: Error
+ 		do: [
+ 			self assert: [self isUnkownType].
+ 			self].!



More information about the Squeak-dev mailing list