FFI: FFI-Kernel-mt.166.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

FFI: FFI-Kernel-mt.166.mcz

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

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

Name: FFI-Kernel-mt.166
Author: mt
Time: 22 May 2021, 3:19:41.704855 pm
UUID: cecd9ff4-64c2-2343-a278-d7263d721b90
Ancestors: FFI-Kernel-mt.165

Some bug fixes around void and void*

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

Item was changed:
  ----- Method: ExternalData>>arrayType (in category 'accessing - types') -----
  arrayType
+ "Answer this container's array type or 'nil' if unknown. Supports"
- "Answer this container's array type or 'nil' if unknown."
 
  | arrayType |
+ ^ (arrayType := self containerType) asNonPointerType isVoid
- ^ (arrayType := self containerType) isVoid
  ifFalse: [arrayType]!

Item was changed:
  ----- Method: ExternalData>>setType: (in category 'private') -----
  setType: externalType
  "Private. Set the type used to derive content and container types. If you want to change the content type later, use #setContentType:."
 
  externalType = ExternalType string ifTrue: [
  ^ self setType: externalType asNonPointerType].
 
+ externalType isVoid ifTrue: [
+ ^ self setType: externalType asPointerType].
+
+ (externalType isArrayType or: [externalType asNonPointerType isVoid])
+ ifTrue: [type := externalType "array type or void*"]
- (externalType isArrayType or: [externalType isVoid])
- ifTrue: [type := externalType]
  ifFalse: [type := (externalType asArrayType: nil)].
 
  contentType := nil.!

Item was changed:
  ----- Method: ExternalData>>writer (in category 'accessing') -----
  writer
  "Overwritten to preserve type."
 
+ ^ (self isNull or: [handle isExternalAddress])
- ^ handle isExternalAddress
  ifTrue: [self]
  ifFalse: [self class fromHandle: (ByteArrayReadWriter on: handle) type: type]!

Item was added:
+ ----- Method: VoidReadWriteSend>>handle:atIndex: (in category 'evaluating') -----
+ handle: handle atIndex: byteOffset
+ "no accessors for void"
+ self shouldNotImplement.!

Item was added:
+ ----- Method: VoidReadWriteSend>>handle:atIndex:put: (in category 'evaluating') -----
+ handle: handle atIndex: byteOffset put: value
+ "no accessors for void"
+ self shouldNotImplement.!