[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