[Vm-dev] VM Maker: VMMaker.oscog-eem.3310.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Mar 12 01:42:21 UTC 2023


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3310.mcz

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

Name: VMMaker.oscog-eem.3310
Author: eem
Time: 11 March 2023, 5:41:58.182827 pm
UUID: ccb9d141-68dd-4a1a-86b9-906b72753322
Ancestors: VMMaker.oscog-eem.3309

... and inlining ffiCheckReturn:With:in: always means it shouldn't be generated.

=============== Diff against VMMaker.oscog-eem.3309 ===============

Item was changed:
  ----- Method: ThreadedFFIPlugin>>ffiCheckReturn:With:in: (in category 'callout support') -----
  ffiCheckReturn: retSpec With: retClass in: calloutState
  	<var: #calloutState type: #'CalloutState *'>
  	"Make sure we can return an object of the given type"
+ 	<inline: #always>
- 	<inline: true>
  	retClass = interpreterProxy nilObject ifFalse:
  		[(interpreterProxy
  				includesBehavior: retClass 
  				ThatOf: interpreterProxy classExternalStructure) ifFalse:
  			[^FFIErrorBadReturn]].
  
  	((interpreterProxy isWords: retSpec)
  	 and: [(interpreterProxy slotSizeOf: retSpec) > 0]) ifFalse:
  		[^FFIErrorWrongType].
  
  	calloutState ffiRetSpec: retSpec.
  	calloutState ffiRetHeader: (interpreterProxy fetchLong32: 0 ofObject: retSpec).
  	(self isAtomicType: calloutState ffiRetHeader) ifFalse:
  		[retClass = interpreterProxy nilObject ifTrue:
  			[^FFIErrorBadReturn]].
  	(calloutState ffiRetHeader bitAnd: (FFIFlagPointer bitOr: FFIFlagStructure)) = FFIFlagStructure ifTrue:
  		[calloutState structReturnSize: (calloutState ffiRetHeader bitAnd: FFIStructSizeMask).
  		self encodeStructReturnTypeIn: calloutState].
  	^0!



More information about the Vm-dev mailing list