--- a/ExternalLibraryFunction.st Sat Apr 13 17:58:21 2019 +0200
+++ b/ExternalLibraryFunction.st Sat Apr 13 17:59:14 2019 +0200
@@ -1384,7 +1384,7 @@
self primitiveFailed.
].
- "/ and it must be a kind of ExternalStructure !!
+ "/ and it must be a kind of ExternalStructure !
(aReceiverOrNil isKindOf:ExternalStructure) ifFalse:[
self primitiveFailed.
].
@@ -2149,7 +2149,27 @@
} else if (fieldTypeSymbol == @symbol(int)) {
fieldTypes[fi] = TYPE_SINT;
} else {
- __FAIL__(@symbol(UnsupportedFieldType))
+ if (__isArray(fieldTypeSymbol)) {
+ int numFields2 = __arraySize(fieldTypeSymbol);
+ int fi2;
+
+ for (fi2=0; fi2<numFields2; fi2++) {
+ OBJ fieldTypeSymbol2 = __arrayVal(fieldTypeSymbol)[fi2];
+
+ if (fieldTypeSymbol2 == @symbol(float)) {
+ fieldTypes[fi++] = TYPE_FLOAT;
+ } else if (fieldTypeSymbol2 == @symbol(double)) {
+ fieldTypes[fi++] = TYPE_DOUBLE;
+ } else if (fieldTypeSymbol == @symbol(int)) {
+ fieldTypes[fi++] = TYPE_SINT;
+ } else {
+ __FAIL__(@symbol(UnsupportedFieldType2))
+ }
+ }
+ fi--;
+ } else {
+ __FAIL__(@symbol(UnsupportedFieldType))
+ }
}
}
fieldTypes[fi] = NULL;
@@ -3074,8 +3094,8 @@
"Created: / 01-08-2006 / 13:56:23 / cg"
"Modified: / 15-05-2017 / 19:48:52 / mawalch"
"Modified: / 01-08-2017 / 14:03:52 / cg"
- "Modified: / 01-03-2019 / 15:40:14 / Claus Gittinger"
"Modified: / 04-04-2019 / 14:10:32 / Stefan Vogel"
+ "Modified: / 13-04-2019 / 17:55:45 / Claus Gittinger"
!
tryAgainWithAsyncSafeArguments:argumentsOrNil forInstance:aReceiverOrNil