SuccessChanges

Summary

  1. Convert the stack pointer from alien to ExternalAddress early (details)
  2. Dont' convert an ExternalAdress to a FFIExternalStructureReferenceHandle (details)
  3. Add testcase for the internal structure of the read FFIExternalStructure (details)
Commit 08302d7a16f780e3d8c8633ecbe89cb43818495b by holger
Convert the stack pointer from alien to ExternalAddress early
This way >>#handle:at: will work with the ExternalAddress instead of an
alien and FFIExternalStructure handle (or handle of handles) will work
with an address. In case of structs (and not pointers to struct) this
means they reference the stack and are invalid once the FFI call
returns. While this looks scary it seems to be desired over a copy.
The file was modifiedsrc/UnifiedFFI/FFICallbackArgumentReader.class.st (diff)
Commit dbca525088f987efe3a25f402b74da73ddf6fc01 by holger
Dont' convert an ExternalAdress to a FFIExternalStructureReferenceHandle
We have an absolute external address. No need to wrap it inside an
FFIExternalStructureReferenceHandle.
The file was removedsrc/FreeType/FFIExternalStructureReferenceHandle.extension.st
The file was modifiedsrc/UnifiedFFI/ExternalAddress.extension.st (diff)
The file was modifiedsrc/UnifiedFFI/FFIExternalStructureReferenceHandle.class.st (diff)
Commit 4406386151a29f3e254a762baf047089555e8d09 by holger
Add testcase for the internal structure of the read FFIExternalStructure
Any idea how to make this more than a change detector? I want to asses
that "a" is a valid object and can be used for future FFI. I tried to
call another callback from within the callback but that seemed to
deadlock.
The file was modifiedsrc/UnifiedFFI-Tests/FFICallbackParametersTests.class.st (diff)