--- a/ExternalLibraryFunction.st Wed Apr 10 09:31:03 2019 +0200
+++ b/ExternalLibraryFunction.st Thu Apr 11 05:20:24 2019 +0200
@@ -1574,6 +1574,8 @@
} else if (returnTypeSymbol == @symbol(bool)) {
__returnType = TYPE_UINT;
+ } else if (returnTypeSymbol == @symbol(char)) {
+ __returnType = TYPE_UINT8;
} else if (returnTypeSymbol == @symbol(float)) {
__returnType = TYPE_FLOAT;
@@ -3005,13 +3007,16 @@
(failureCode == #FFINotSupported) ifTrue:[
^ self primitiveFailed:'FFI support missing in this build'.
].
-
(failureCode == #InvalidArgument) ifTrue:[
^ self primitiveFailed:('cannot convert argument: #%1' bindWith:failureArgNr).
- ] ifFalse:[
- ^ self primitiveFailed. "see failureCode and failureInfo for details"
+ ].
+ (failureCode == #UnknownReturnType) ifTrue:[
+ ^ self primitiveFailed:('unknown return type: #%1' bindWith:returnTypeSymbol).
].
- "/ ^ nil
+ (failureCode == #UnknownReturnType2) ifTrue:[
+ ^ self primitiveFailed:('don''t know how to convert return value with type: #%1' bindWith:returnTypeSymbol).
+ ].
+ ^ self primitiveFailed. "see failureCode and failureInfo for details"
].
(mustFreeRetVal and:[alreadyFreed not]) ifTrue:[