[squeak-dev] FFI: FFI-Tools-mt.1.mcz

commits at source.squeak.org commits at source.squeak.org
Tue May 19 11:23:16 UTC 2020


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

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

Name: FFI-Tools-mt.1
Author: mt
Time: 19 May 2020, 1:23:14.276702 pm
UUID: 5063ac2e-3c6e-be41-81bd-6dc2f87f025b
Ancestors: 

Recue inspector for external structures from being deprecated.

==================== Snapshot ====================

SystemOrganization addCategory: #'FFI-Tools'!

----- Method: ExternalStructure>>inspectorClass (in category '*FFI-Tools') -----
inspectorClass

	^ ExternalStructureInspector!

Inspector subclass: #ExternalStructureInspector
	instanceVariableNames: ''
	classVariableNames: ''
	poolDictionaries: ''
	category: 'FFI-Tools'!

----- Method: ExternalStructureInspector>>recordFieldList (in category 'accessing') -----
recordFieldList
	| fields |
	fields := object class fields.
	(fields first isKindOf: Array) ifFalse: [fields := Array with: fields].
	^fields collect: [ :field | field first ] thenSelect: [:name | name notNil]!

----- Method: ExternalStructureInspector>>streamFieldsOn: (in category 'fields - streaming') -----
streamFieldsOn: aStream

	self
		streamBaseFieldsOn: aStream;
		streamRecordFieldsOn: aStream.!

----- Method: ExternalStructureInspector>>streamRecordFieldsOn: (in category 'fields - streaming') -----
streamRecordFieldsOn: aStream

	self recordFieldList do: [:field |
		aStream nextPut: ((self newFieldForType: #record key: field)
			valueGetter: [:object | object perform: field];
			valueSetter: [:object :value | (field, ':') asSymbol with: value];
			yourself)].!



More information about the Squeak-dev mailing list