FFI: FFI-Tools-mt.27.mcz

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

FFI: FFI-Tools-mt.27.mcz

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

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

Name: FFI-Tools-mt.27
Author: mt
Time: 6 May 2021, 7:27:57.081981 pm
UUID: f737b5e5-71dd-604e-bce6-e42a9f4fc08d
Ancestors: FFI-Tools-mt.26

For external data with a specific size (i.e. known array type), list all elements just like in an explorer on a collection.

When closing explorer/inspector, ask users whether to free external memory if any allocated.

=============== Diff against FFI-Tools-mt.26 ===============

Item was changed:
  ----- Method: ExternalData>>explorerContentsStructFields (in category '*FFI-Tools') -----
  explorerContentsStructFields
  "In case some data interpretation omitted to convert char*, which is a (null-terminated) C string, to Smalltalk string."
+
+ size notNil ifTrue: [
+ ^ self withIndexCollect: [:each :index |
+ ObjectExplorerWrapper
+ with: each
+ name: index printString
+ model: self]].
 
  ^ (self isNull not and: [self containerType = ExternalType string]) ifFalse: [#()] ifTrue: [
  {ObjectExplorerWrapper
  with: self fromCString
  name: 'as C string'
  model: self}]!

Item was added:
+ ----- Method: ExternalStructure>>explorerOkToClose (in category '*FFI-Tools') -----
+ explorerOkToClose
+ "We are being explored and that explorer wants to close. If we point to external memory, ask the user whether we should free it to avoid leaks."
+
+ (handle isExternalAddress and: [handle isNull not]) ifTrue: [
+ (Project uiManager
+ confirm: ('There are <b>{1}</b> bytes addressed.<br>Do you want to <b>free</b> the allocated memory?'
+ translated format: {
+ [self byteSize] ifError: ['an unknown number of']. }) asTextFromHtml
+ orCancel: [^ false]
+ title: 'External Address Detected' translated)
+ ifTrue: [self free]].
+
+ ^ true!

Item was added:
+ ----- Method: ExternalStructure>>inspectorOkToClose (in category '*FFI-Tools') -----
+ inspectorOkToClose
+
+ ^ self explorerOkToClose!