ExternalLibraryFunction.st
changeset 24052 d9fb5cb43b52
parent 24051 f531b38415db
child 24053 771e243d3ce8
--- 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:[