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

commits at source.squeak.org commits at source.squeak.org
Fri May 21 09:54:01 UTC 2021


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

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

Name: FFI-Kernel-mt.165
Author: mt
Time: 21 May 2021, 11:54:01.161285 am
UUID: 849d8c16-bd3f-e941-8765-2d5813f9e0eb
Ancestors: FFI-Kernel-mt.164

For consistency, make raw-bits arrays compatible with handle-based access. They are both handle and (FFI) array after all. Unlike ExternalData. See #getHandle.

Note that the intended use is still through the array protocol: #at:, #at:put:, #from:to:, #from:, ...

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

Item was added:
+ ----- Method: ByteString>>atByteOffset: (in category '*FFI-Kernel-accessing') -----
+ atByteOffset: byteOffset
+ 
+ 	| index |
+ 	index := ((byteOffset-1) / self contentType byteSize) + 1.
+ 	^ self at: index!

Item was added:
+ ----- Method: ByteString>>atByteOffset:put: (in category '*FFI-Kernel-accessing') -----
+ atByteOffset: byteOffset put: value
+ 
+ 	| index |
+ 	index := ((byteOffset-1) / self contentType byteSize) + 1.
+ 	^ self at: index put: value!

Item was changed:
+ ----- Method: ByteString>>contentType (in category '*FFI-Kernel-external data') -----
- ----- Method: ByteString>>contentType (in category '*FFI-Kernel') -----
  contentType
  
  	^ self externalType contentType!

Item was changed:
+ ----- Method: ByteString>>externalType (in category '*FFI-Kernel-external data') -----
- ----- Method: ByteString>>externalType (in category '*FFI-Kernel') -----
  externalType
  
  	^ self class externalType contentType asArrayType: self size!

Item was changed:
+ ----- Method: ByteString>>free (in category '*FFI-Kernel-external data') -----
- ----- Method: ByteString>>free (in category '*FFI-Kernel') -----
  free
  
  	self shouldNotImplement.!

Item was changed:
+ ----- Method: ByteString>>from: (in category '*FFI-Kernel-external data') -----
- ----- Method: ByteString>>from: (in category '*FFI-Kernel') -----
  from: firstIndex
  	"See ExternalData"
  	
  	^ self copyFrom: firstIndex to: self size!

Item was changed:
+ ----- Method: ByteString>>from:to: (in category '*FFI-Kernel-external data') -----
- ----- Method: ByteString>>from:to: (in category '*FFI-Kernel') -----
  from: firstIndex to: lastIndex
  	"See ExternalData"
  	
  	^ self copyFrom: firstIndex to: lastIndex!

Item was changed:
+ ----- Method: ByteString>>getHandle (in category '*FFI-Kernel-external data') -----
- ----- Method: ByteString>>getHandle (in category '*FFI-Kernel') -----
  getHandle
  	"I am my own handle."
  	
  	^ self!

Item was added:
+ ----- Method: ByteString>>integerAt:put:size:signed: (in category '*FFI-Kernel-accessing') -----
+ integerAt: byteOffset put: value size: nBytes signed: aBoolean
+ 	"Backstop for compatibility with handle-based access. Raw-bits arrays are their own handle. See #getHandle and ExternalType >> #handle:at:put:."
+ 	
+ 	^ self atByteOffset: byteOffset put: value asCharacter.!

Item was added:
+ ----- Method: ByteString>>integerAt:size:signed: (in category '*FFI-Kernel-accessing') -----
+ integerAt: byteOffset size: nBytes signed: aBoolean
+ 	"Backstop for compatibility with handle-based access. Raw-bits arrays are their own handle. See #getHandle and ExternalType >> #handle:at:."
+ 	
+ 	^ self atByteOffset: byteOffset!

Item was changed:
+ ----- Method: ByteString>>isFFIArray (in category '*FFI-Kernel-external data') -----
- ----- Method: ByteString>>isFFIArray (in category '*FFI-Kernel') -----
  isFFIArray
  
  	^ true!

Item was changed:
+ ----- Method: ByteString>>isNull (in category '*FFI-Kernel-external data') -----
- ----- Method: ByteString>>isNull (in category '*FFI-Kernel') -----
  isNull
  
  	^ false!

Item was changed:
+ ----- Method: ByteString>>reader (in category '*FFI-Kernel-external data') -----
- ----- Method: ByteString>>reader (in category '*FFI-Kernel') -----
  reader
  
  	^ self!

Item was changed:
+ ----- Method: ByteString>>setContentType: (in category '*FFI-Kernel-external data') -----
- ----- Method: ByteString>>setContentType: (in category '*FFI-Kernel') -----
  setContentType: type
  	"See ExternalData."
  	
  	self shouldNotImplement.!

Item was changed:
+ ----- Method: ByteString>>setSize: (in category '*FFI-Kernel-external data') -----
- ----- Method: ByteString>>setSize: (in category '*FFI-Kernel') -----
  setSize: size
  	"See ExternalData."
  	
  	self shouldNotImplement.!

Item was changed:
+ ----- Method: ByteString>>writer (in category '*FFI-Kernel-external data') -----
- ----- Method: ByteString>>writer (in category '*FFI-Kernel') -----
  writer
  
  	^ self!

Item was changed:
+ ----- Method: ByteString>>zeroMemory (in category '*FFI-Kernel-external data') -----
- ----- Method: ByteString>>zeroMemory (in category '*FFI-Kernel') -----
  zeroMemory
  
  	1 to: self size do: [:index |
  		self at: index put: Character null].!

Item was added:
+ ----- Method: RawBitsArray>>atByteOffset: (in category '*FFI-Kernel-accessing') -----
+ atByteOffset: byteOffset
+ 
+ 	| index |
+ 	index := ((byteOffset-1) / self contentType byteSize) + 1.
+ 	^ self at: index!

Item was added:
+ ----- Method: RawBitsArray>>atByteOffset:put: (in category '*FFI-Kernel-accessing') -----
+ atByteOffset: byteOffset put: value
+ 
+ 	| index |
+ 	index := ((byteOffset-1) / self contentType byteSize) + 1.
+ 	^ self at: index put: value!

Item was changed:
+ ----- Method: RawBitsArray>>contentType (in category '*FFI-Kernel-external data') -----
- ----- Method: RawBitsArray>>contentType (in category '*FFI-Kernel') -----
  contentType
  
  	^ self externalType contentType!

Item was added:
+ ----- Method: RawBitsArray>>doubleAt: (in category '*FFI-Kernel-accessing') -----
+ doubleAt: byteOffset
+ 	"Backstop for compatibility with handle-based access. Raw-bits arrays are their own handle. See #getHandle and ExternalType >> #handle:at:."
+ 
+ 	^ self atByteOffset: byteOffset!

Item was added:
+ ----- Method: RawBitsArray>>doubleAt:put: (in category '*FFI-Kernel-accessing') -----
+ doubleAt: byteOffset put: value
+ 	"Backstop for compatibility with handle-based access. Raw-bits arrays are their own handle. See #getHandle and ExternalType >> #handle:at:put:."
+ 	
+ 	^ self atByteOffset: byteOffset put: value!

Item was changed:
+ ----- Method: RawBitsArray>>externalType (in category '*FFI-Kernel-external data') -----
- ----- Method: RawBitsArray>>externalType (in category '*FFI-Kernel') -----
  externalType
  
  	^ self class externalType contentType asArrayType: self size!

Item was added:
+ ----- Method: RawBitsArray>>floatAt: (in category '*FFI-Kernel-accessing') -----
+ floatAt: byteOffset
+ 	"Backstop for compatibility with handle-based access. Raw-bits arrays are their own handle. See #getHandle and ExternalType >> #handle:at:."
+ 	
+ 	^ self atByteOffset: byteOffset!

Item was added:
+ ----- Method: RawBitsArray>>floatAt:put: (in category '*FFI-Kernel-accessing') -----
+ floatAt: byteOffset put: value
+ 	"Backstop for compatibility with handle-based access. Raw-bits arrays are their own handle. See #getHandle and ExternalType >> #handle:at:put:."
+ 	
+ 	^ self atByteOffset: byteOffset put: value!

Item was changed:
+ ----- Method: RawBitsArray>>free (in category '*FFI-Kernel-external data') -----
- ----- Method: RawBitsArray>>free (in category '*FFI-Kernel') -----
  free
  
  	self shouldNotImplement.!

Item was changed:
+ ----- Method: RawBitsArray>>from: (in category '*FFI-Kernel-external data') -----
- ----- Method: RawBitsArray>>from: (in category '*FFI-Kernel') -----
  from: firstIndex
  	"See ExternalData"
  	
  	^ self copyFrom: firstIndex to: self size!

Item was changed:
+ ----- Method: RawBitsArray>>from:to: (in category '*FFI-Kernel-external data') -----
- ----- Method: RawBitsArray>>from:to: (in category '*FFI-Kernel') -----
  from: firstIndex to: lastIndex
  	"See ExternalData"
  	
  	^ self copyFrom: firstIndex to: lastIndex!

Item was changed:
+ ----- Method: RawBitsArray>>getHandle (in category '*FFI-Kernel-external data') -----
- ----- Method: RawBitsArray>>getHandle (in category '*FFI-Kernel') -----
  getHandle
  	"I am my own handle."
  	
  	^ self!

Item was added:
+ ----- Method: RawBitsArray>>integerAt:put:size:signed: (in category '*FFI-Kernel-accessing') -----
+ integerAt: byteOffset put: value size: nBytes signed: aBoolean
+ 	"Backstop for compatibility with handle-based access. Raw-bits arrays are their own handle. See #getHandle and ExternalType >> #handle:at:put:."
+ 	
+ 	^ self atByteOffset: byteOffset put: value!

Item was added:
+ ----- Method: RawBitsArray>>integerAt:size:signed: (in category '*FFI-Kernel-accessing') -----
+ integerAt: byteOffset size: nBytes signed: aBoolean
+ 	"Backstop for compatibility with handle-based access. Raw-bits arrays are their own handle. See #getHandle and ExternalType >> #handle:at:."
+ 	
+ 	^ self atByteOffset: byteOffset!

Item was changed:
+ ----- Method: RawBitsArray>>isFFIArray (in category '*FFI-Kernel-external data') -----
- ----- Method: RawBitsArray>>isFFIArray (in category '*FFI-Kernel') -----
  isFFIArray
  
  	^ true!

Item was changed:
+ ----- Method: RawBitsArray>>isNull (in category '*FFI-Kernel-external data') -----
- ----- Method: RawBitsArray>>isNull (in category '*FFI-Kernel') -----
  isNull
  
  	^ false!

Item was changed:
+ ----- Method: RawBitsArray>>reader (in category '*FFI-Kernel-external data') -----
- ----- Method: RawBitsArray>>reader (in category '*FFI-Kernel') -----
  reader
  
  	^ self!

Item was changed:
+ ----- Method: RawBitsArray>>setContentType: (in category '*FFI-Kernel-external data') -----
- ----- Method: RawBitsArray>>setContentType: (in category '*FFI-Kernel') -----
  setContentType: type
  	"See ExternalData."
  	
  	self shouldNotImplement.!

Item was changed:
+ ----- Method: RawBitsArray>>setSize: (in category '*FFI-Kernel-external data') -----
- ----- Method: RawBitsArray>>setSize: (in category '*FFI-Kernel') -----
  setSize: size
  	"See ExternalData."
  	
  	self shouldNotImplement.!

Item was changed:
+ ----- Method: RawBitsArray>>writer (in category '*FFI-Kernel-external data') -----
- ----- Method: RawBitsArray>>writer (in category '*FFI-Kernel') -----
  writer
  
  	^ self!

Item was changed:
+ ----- Method: RawBitsArray>>zeroMemory (in category '*FFI-Kernel-external data') -----
- ----- Method: RawBitsArray>>zeroMemory (in category '*FFI-Kernel') -----
  zeroMemory
  
  	self atAllPut: 0.!



More information about the Squeak-dev mailing list