Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit56debf3

Browse files
committed
CogVM source as per VMMaker.oscog-eem.3726
SqueakFFIPrims:Fix idiotic slip in VMMaker.oscog-eem.3701's bindErrorReaper:flags:calloutState:which put the assignment of errorResultType outside of the(flags anyMask: FFICallFlagExternalFunctionHasErrorReaper) guard andhence caused a crash in any FFI call that didn't have an error reaper.
1 parent55a8e11 commit56debf3

File tree

7 files changed

+98
-70
lines changed

7 files changed

+98
-70
lines changed

‎src/plugins/SqueakFFIPrims/ARM32FFIPlugin.c‎

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
/* Automatically generated by
2-
VMPluginCodeGenerator VMMaker.oscog-eem.3702 uuid:9621d4ac-7156-44fa-8327-c8a160dc0ae8
3-
(Compiler-eem.526)
2+
VMPluginCodeGenerator VMMaker.oscog-eem.3726 uuid:df260b88-5339-458c-9731-cb84179ff32a
3+
(Compiler-eem.527)
44
from
5-
ThreadedARM32FFIPlugin VMMaker.oscog-eem.3702 uuid:9621d4ac-7156-44fa-8327-c8a160dc0ae8
5+
ThreadedARM32FFIPlugin VMMaker.oscog-eem.3726 uuid:df260b88-5339-458c-9731-cb84179ff32a
66
*/
7-
staticchar__buildInfo[]="ThreadedARM32FFIPlugin VMMaker.oscog-eem.3702 uuid:9621d4ac-7156-44fa-8327-c8a160dc0ae8 "__DATE__ ;
7+
staticchar__buildInfo[]="ThreadedARM32FFIPlugin VMMaker.oscog-eem.3726 uuid:df260b88-5339-458c-9731-cb84179ff32a "__DATE__ ;
88

99

1010
#include"config.h"
@@ -179,7 +179,7 @@ static char __buildInfo[] = "ThreadedARM32FFIPlugin VMMaker.oscog-eem.3702 uuid:
179179
#defineMaxNumArgs 15
180180
#defineNumFloatRegArgs 16
181181
#defineNumIntRegArgs 4
182-
#definePluginVersionInfo " VMMaker.oscog-eem.3702"
182+
#definePluginVersionInfo " VMMaker.oscog-eem.3726"
183183

184184
typedefstruct {
185185
char*argVector;
@@ -542,7 +542,7 @@ extern sqInt trueObject(void);
542542
extern
543543
#endif
544544
structVirtualMachine*interpreterProxy;
545-
staticconstchar*moduleName="ARM32FFIPlugin VMMaker.oscog-eem.3702 "INT_EXT;
545+
staticconstchar*moduleName="ARM32FFIPlugin VMMaker.oscog-eem.3726 "INT_EXT;
546546
staticsqIntnilObj;
547547

548548

@@ -1961,7 +1961,6 @@ primitiveCallout(void)
19611961
/* check that if there is an error reaper it is bound, and the address of the reaper is stored in calloutState. */
19621962

19631963
/* begin bindErrorReaper:flags:calloutState: */
1964-
retSpec=0;
19651964
if (((flags&FFICallFlagExternalFunctionHasErrorReaper)!=0)) {
19661965
if ((processOSErrInstVarOffset())<0) {
19671966
(calloutState->callFlags= ((((calloutState->callFlags)) |FFICallFlagExternalFunctionHasErrorReaper)-FFICallFlagExternalFunctionHasErrorReaper));
@@ -2019,8 +2018,11 @@ primitiveCallout(void)
20192018
(calloutState->errorFunction= ((void*)0));
20202019
(calloutState->errorVariable= ((void*)addressSqInt));
20212020
}
2021+
2022+
/* errorReaper is an ExternalLibraryFunction
2023+
errorReaper is an ExternalVariable */
2024+
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
20222025
}
2023-
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
20242026
gotol4;
20252027
l4:
20262028

@@ -2604,7 +2606,6 @@ primitiveCalloutWithArgs(void)
26042606
/* check that if there is an error reaper it is bound, and the address of the reaper is stored in calloutState. */
26052607

26062608
/* begin bindErrorReaper:flags:calloutState: */
2607-
retSpec=0;
26082609
if (((flags&FFICallFlagExternalFunctionHasErrorReaper)!=0)) {
26092610
if ((processOSErrInstVarOffset())<0) {
26102611
(calloutState->callFlags= ((((calloutState->callFlags)) |FFICallFlagExternalFunctionHasErrorReaper)-FFICallFlagExternalFunctionHasErrorReaper));
@@ -2662,8 +2663,11 @@ primitiveCalloutWithArgs(void)
26622663
(calloutState->errorFunction= ((void*)0));
26632664
(calloutState->errorVariable= ((void*)addressSqInt));
26642665
}
2666+
2667+
/* errorReaper is an ExternalLibraryFunction
2668+
errorReaper is an ExternalVariable */
2669+
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
26652670
}
2666-
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
26672671
gotol4;
26682672
l4:
26692673

‎src/plugins/SqueakFFIPrims/ARM64AppleFFIPlugin.c‎

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
/* Automatically generated by
2-
VMPluginCodeGenerator VMMaker.oscog-eem.3702 uuid:9621d4ac-7156-44fa-8327-c8a160dc0ae8
3-
(Compiler-eem.526)
2+
VMPluginCodeGenerator VMMaker.oscog-eem.3726 uuid:df260b88-5339-458c-9731-cb84179ff32a
3+
(Compiler-eem.527)
44
from
5-
ThreadedARM64AppleFFIPlugin VMMaker.oscog-eem.3702 uuid:9621d4ac-7156-44fa-8327-c8a160dc0ae8
5+
ThreadedARM64AppleFFIPlugin VMMaker.oscog-eem.3726 uuid:df260b88-5339-458c-9731-cb84179ff32a
66
*/
7-
staticchar__buildInfo[]="ThreadedARM64AppleFFIPlugin VMMaker.oscog-eem.3702 uuid:9621d4ac-7156-44fa-8327-c8a160dc0ae8 "__DATE__ ;
7+
staticchar__buildInfo[]="ThreadedARM64AppleFFIPlugin VMMaker.oscog-eem.3726 uuid:df260b88-5339-458c-9731-cb84179ff32a "__DATE__ ;
88

99

1010
#include"config.h"
@@ -179,7 +179,7 @@ static char __buildInfo[] = "ThreadedARM64AppleFFIPlugin VMMaker.oscog-eem.3702
179179
#defineMaxNumArgs 15
180180
#defineNumFloatRegArgs 8
181181
#defineNumIntRegArgs 8
182-
#definePluginVersionInfo " VMMaker.oscog-eem.3702"
182+
#definePluginVersionInfo " VMMaker.oscog-eem.3726"
183183

184184
typedefstruct {
185185
char*argVector;
@@ -559,7 +559,7 @@ extern sqInt trueObject(void);
559559
extern
560560
#endif
561561
structVirtualMachine*interpreterProxy;
562-
staticconstchar*moduleName="ARM64AppleFFIPlugin VMMaker.oscog-eem.3702 "INT_EXT;
562+
staticconstchar*moduleName="ARM64AppleFFIPlugin VMMaker.oscog-eem.3726 "INT_EXT;
563563
staticsqIntnilObj;
564564

565565

@@ -2250,7 +2250,6 @@ primitiveCallout(void)
22502250
/* check that if there is an error reaper it is bound, and the address of the reaper is stored in calloutState. */
22512251

22522252
/* begin bindErrorReaper:flags:calloutState: */
2253-
retSpec=0;
22542253
if (((flags&FFICallFlagExternalFunctionHasErrorReaper)!=0)) {
22552254
if ((processOSErrInstVarOffset())<0) {
22562255
(calloutState->callFlags= ((((calloutState->callFlags)) |FFICallFlagExternalFunctionHasErrorReaper)-FFICallFlagExternalFunctionHasErrorReaper));
@@ -2308,8 +2307,11 @@ primitiveCallout(void)
23082307
(calloutState->errorFunction= ((void*)0));
23092308
(calloutState->errorVariable= ((void*)addressSqInt));
23102309
}
2310+
2311+
/* errorReaper is an ExternalLibraryFunction
2312+
errorReaper is an ExternalVariable */
2313+
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
23112314
}
2312-
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
23132315
gotol4;
23142316
l4:
23152317

@@ -2916,7 +2918,6 @@ primitiveCalloutWithArgs(void)
29162918
/* check that if there is an error reaper it is bound, and the address of the reaper is stored in calloutState. */
29172919

29182920
/* begin bindErrorReaper:flags:calloutState: */
2919-
retSpec=0;
29202921
if (((flags&FFICallFlagExternalFunctionHasErrorReaper)!=0)) {
29212922
if ((processOSErrInstVarOffset())<0) {
29222923
(calloutState->callFlags= ((((calloutState->callFlags)) |FFICallFlagExternalFunctionHasErrorReaper)-FFICallFlagExternalFunctionHasErrorReaper));
@@ -2974,8 +2975,11 @@ primitiveCalloutWithArgs(void)
29742975
(calloutState->errorFunction= ((void*)0));
29752976
(calloutState->errorVariable= ((void*)addressSqInt));
29762977
}
2978+
2979+
/* errorReaper is an ExternalLibraryFunction
2980+
errorReaper is an ExternalVariable */
2981+
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
29772982
}
2978-
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
29792983
gotol4;
29802984
l4:
29812985

‎src/plugins/SqueakFFIPrims/ARM64FFIPlugin.c‎

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
/* Automatically generated by
2-
VMPluginCodeGenerator VMMaker.oscog-eem.3702 uuid:9621d4ac-7156-44fa-8327-c8a160dc0ae8
3-
(Compiler-eem.526)
2+
VMPluginCodeGenerator VMMaker.oscog-eem.3726 uuid:df260b88-5339-458c-9731-cb84179ff32a
3+
(Compiler-eem.527)
44
from
5-
ThreadedARM64FFIPlugin VMMaker.oscog-eem.3702 uuid:9621d4ac-7156-44fa-8327-c8a160dc0ae8
5+
ThreadedARM64FFIPlugin VMMaker.oscog-eem.3726 uuid:df260b88-5339-458c-9731-cb84179ff32a
66
*/
7-
staticchar__buildInfo[]="ThreadedARM64FFIPlugin VMMaker.oscog-eem.3702 uuid:9621d4ac-7156-44fa-8327-c8a160dc0ae8 "__DATE__ ;
7+
staticchar__buildInfo[]="ThreadedARM64FFIPlugin VMMaker.oscog-eem.3726 uuid:df260b88-5339-458c-9731-cb84179ff32a "__DATE__ ;
88

99

1010
#include"config.h"
@@ -179,7 +179,7 @@ static char __buildInfo[] = "ThreadedARM64FFIPlugin VMMaker.oscog-eem.3702 uuid:
179179
#defineMaxNumArgs 15
180180
#defineNumFloatRegArgs 8
181181
#defineNumIntRegArgs 8
182-
#definePluginVersionInfo " VMMaker.oscog-eem.3702"
182+
#definePluginVersionInfo " VMMaker.oscog-eem.3726"
183183

184184
typedefstruct {
185185
char*argVector;
@@ -559,7 +559,7 @@ extern sqInt trueObject(void);
559559
extern
560560
#endif
561561
structVirtualMachine*interpreterProxy;
562-
staticconstchar*moduleName="ARM64FFIPlugin VMMaker.oscog-eem.3702 "INT_EXT;
562+
staticconstchar*moduleName="ARM64FFIPlugin VMMaker.oscog-eem.3726 "INT_EXT;
563563
staticsqIntnilObj;
564564

565565

@@ -2081,7 +2081,6 @@ primitiveCallout(void)
20812081
/* check that if there is an error reaper it is bound, and the address of the reaper is stored in calloutState. */
20822082

20832083
/* begin bindErrorReaper:flags:calloutState: */
2084-
retSpec=0;
20852084
if (((flags&FFICallFlagExternalFunctionHasErrorReaper)!=0)) {
20862085
if ((processOSErrInstVarOffset())<0) {
20872086
(calloutState->callFlags= ((((calloutState->callFlags)) |FFICallFlagExternalFunctionHasErrorReaper)-FFICallFlagExternalFunctionHasErrorReaper));
@@ -2139,8 +2138,11 @@ primitiveCallout(void)
21392138
(calloutState->errorFunction= ((void*)0));
21402139
(calloutState->errorVariable= ((void*)addressSqInt));
21412140
}
2141+
2142+
/* errorReaper is an ExternalLibraryFunction
2143+
errorReaper is an ExternalVariable */
2144+
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
21422145
}
2143-
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
21442146
gotol4;
21452147
l4:
21462148

@@ -2747,7 +2749,6 @@ primitiveCalloutWithArgs(void)
27472749
/* check that if there is an error reaper it is bound, and the address of the reaper is stored in calloutState. */
27482750

27492751
/* begin bindErrorReaper:flags:calloutState: */
2750-
retSpec=0;
27512752
if (((flags&FFICallFlagExternalFunctionHasErrorReaper)!=0)) {
27522753
if ((processOSErrInstVarOffset())<0) {
27532754
(calloutState->callFlags= ((((calloutState->callFlags)) |FFICallFlagExternalFunctionHasErrorReaper)-FFICallFlagExternalFunctionHasErrorReaper));
@@ -2805,8 +2806,11 @@ primitiveCalloutWithArgs(void)
28052806
(calloutState->errorFunction= ((void*)0));
28062807
(calloutState->errorVariable= ((void*)addressSqInt));
28072808
}
2809+
2810+
/* errorReaper is an ExternalLibraryFunction
2811+
errorReaper is an ExternalVariable */
2812+
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
28082813
}
2809-
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
28102814
gotol4;
28112815
l4:
28122816

‎src/plugins/SqueakFFIPrims/IA32FFIPlugin.c‎

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
/* Automatically generated by
2-
VMPluginCodeGenerator VMMaker.oscog-eem.3702 uuid:9621d4ac-7156-44fa-8327-c8a160dc0ae8
3-
(Compiler-eem.526)
2+
VMPluginCodeGenerator VMMaker.oscog-eem.3726 uuid:df260b88-5339-458c-9731-cb84179ff32a
3+
(Compiler-eem.527)
44
from
5-
ThreadedIA32FFIPlugin VMMaker.oscog-eem.3702 uuid:9621d4ac-7156-44fa-8327-c8a160dc0ae8
5+
ThreadedIA32FFIPlugin VMMaker.oscog-eem.3726 uuid:df260b88-5339-458c-9731-cb84179ff32a
66
*/
7-
staticchar__buildInfo[]="ThreadedIA32FFIPlugin VMMaker.oscog-eem.3702 uuid:9621d4ac-7156-44fa-8327-c8a160dc0ae8 "__DATE__ ;
7+
staticchar__buildInfo[]="ThreadedIA32FFIPlugin VMMaker.oscog-eem.3726 uuid:df260b88-5339-458c-9731-cb84179ff32a "__DATE__ ;
88

99

1010
#include"config.h"
@@ -177,7 +177,7 @@ static char __buildInfo[] = "ThreadedIA32FFIPlugin VMMaker.oscog-eem.3702 uuid:
177177
#defineFFITypeUnsignedInt64 8
178178
#defineFFITypeUnsignedInt8 2
179179
#defineMaxNumArgs 15
180-
#definePluginVersionInfo " VMMaker.oscog-eem.3702"
180+
#definePluginVersionInfo " VMMaker.oscog-eem.3726"
181181

182182
typedefstruct {
183183
char*argVector;
@@ -534,7 +534,7 @@ extern sqInt trueObject(void);
534534
extern
535535
#endif
536536
structVirtualMachine*interpreterProxy;
537-
staticconstchar*moduleName="IA32FFIPlugin VMMaker.oscog-eem.3702 "INT_EXT;
537+
staticconstchar*moduleName="IA32FFIPlugin VMMaker.oscog-eem.3726 "INT_EXT;
538538
staticsqIntnilObj;
539539

540540

@@ -1770,7 +1770,6 @@ primitiveCallout(void)
17701770
/* check that if there is an error reaper it is bound, and the address of the reaper is stored in calloutState. */
17711771

17721772
/* begin bindErrorReaper:flags:calloutState: */
1773-
retSpec=0;
17741773
if (((flags&FFICallFlagExternalFunctionHasErrorReaper)!=0)) {
17751774
if ((processOSErrInstVarOffset())<0) {
17761775
(calloutState->callFlags= ((((calloutState->callFlags)) |FFICallFlagExternalFunctionHasErrorReaper)-FFICallFlagExternalFunctionHasErrorReaper));
@@ -1828,8 +1827,11 @@ primitiveCallout(void)
18281827
(calloutState->errorFunction= ((void*)0));
18291828
(calloutState->errorVariable= ((void*)addressSqInt));
18301829
}
1830+
1831+
/* errorReaper is an ExternalLibraryFunction
1832+
errorReaper is an ExternalVariable */
1833+
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
18311834
}
1832-
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
18331835
gotol4;
18341836
l4:
18351837

@@ -2397,7 +2399,6 @@ primitiveCalloutWithArgs(void)
23972399
/* check that if there is an error reaper it is bound, and the address of the reaper is stored in calloutState. */
23982400

23992401
/* begin bindErrorReaper:flags:calloutState: */
2400-
retSpec=0;
24012402
if (((flags&FFICallFlagExternalFunctionHasErrorReaper)!=0)) {
24022403
if ((processOSErrInstVarOffset())<0) {
24032404
(calloutState->callFlags= ((((calloutState->callFlags)) |FFICallFlagExternalFunctionHasErrorReaper)-FFICallFlagExternalFunctionHasErrorReaper));
@@ -2455,8 +2456,11 @@ primitiveCalloutWithArgs(void)
24552456
(calloutState->errorFunction= ((void*)0));
24562457
(calloutState->errorVariable= ((void*)addressSqInt));
24572458
}
2459+
2460+
/* errorReaper is an ExternalLibraryFunction
2461+
errorReaper is an ExternalVariable */
2462+
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
24582463
}
2459-
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
24602464
gotol4;
24612465
l4:
24622466

‎src/plugins/SqueakFFIPrims/RiscV64FFIPlugin.c‎

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
/* Automatically generated by
2-
VMPluginCodeGenerator VMMaker.oscog-eem.3702 uuid:9621d4ac-7156-44fa-8327-c8a160dc0ae8
3-
(Compiler-eem.526)
2+
VMPluginCodeGenerator VMMaker.oscog-eem.3726 uuid:df260b88-5339-458c-9731-cb84179ff32a
3+
(Compiler-eem.527)
44
from
5-
ThreadedRiscV64FFIPlugin VMMaker.oscog-eem.3702 uuid:9621d4ac-7156-44fa-8327-c8a160dc0ae8
5+
ThreadedRiscV64FFIPlugin VMMaker.oscog-eem.3726 uuid:df260b88-5339-458c-9731-cb84179ff32a
66
*/
7-
staticchar__buildInfo[]="ThreadedRiscV64FFIPlugin VMMaker.oscog-eem.3702 uuid:9621d4ac-7156-44fa-8327-c8a160dc0ae8 "__DATE__ ;
7+
staticchar__buildInfo[]="ThreadedRiscV64FFIPlugin VMMaker.oscog-eem.3726 uuid:df260b88-5339-458c-9731-cb84179ff32a "__DATE__ ;
88

99

1010
#include"config.h"
@@ -179,7 +179,7 @@ static char __buildInfo[] = "ThreadedRiscV64FFIPlugin VMMaker.oscog-eem.3702 uui
179179
#defineMaxNumArgs 15
180180
#defineNumFloatRegArgs 8
181181
#defineNumIntRegArgs 8
182-
#definePluginVersionInfo " VMMaker.oscog-eem.3702"
182+
#definePluginVersionInfo " VMMaker.oscog-eem.3726"
183183

184184
typedefstruct {
185185
char*argVector;
@@ -558,7 +558,7 @@ extern sqInt trueObject(void);
558558
extern
559559
#endif
560560
structVirtualMachine*interpreterProxy;
561-
staticconstchar*moduleName="RiscV64FFIPlugin VMMaker.oscog-eem.3702 "INT_EXT;
561+
staticconstchar*moduleName="RiscV64FFIPlugin VMMaker.oscog-eem.3726 "INT_EXT;
562562
staticsqIntnilObj;
563563

564564

@@ -2095,7 +2095,6 @@ primitiveCallout(void)
20952095
/* check that if there is an error reaper it is bound, and the address of the reaper is stored in calloutState. */
20962096

20972097
/* begin bindErrorReaper:flags:calloutState: */
2098-
retSpec=0;
20992098
if (((flags&FFICallFlagExternalFunctionHasErrorReaper)!=0)) {
21002099
if ((processOSErrInstVarOffset())<0) {
21012100
(calloutState->callFlags= ((((calloutState->callFlags)) |FFICallFlagExternalFunctionHasErrorReaper)-FFICallFlagExternalFunctionHasErrorReaper));
@@ -2153,8 +2152,11 @@ primitiveCallout(void)
21532152
(calloutState->errorFunction= ((void*)0));
21542153
(calloutState->errorVariable= ((void*)addressSqInt));
21552154
}
2155+
2156+
/* errorReaper is an ExternalLibraryFunction
2157+
errorReaper is an ExternalVariable */
2158+
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
21562159
}
2157-
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
21582160
gotol4;
21592161
l4:
21602162

@@ -2784,7 +2786,6 @@ primitiveCalloutWithArgs(void)
27842786
/* check that if there is an error reaper it is bound, and the address of the reaper is stored in calloutState. */
27852787

27862788
/* begin bindErrorReaper:flags:calloutState: */
2787-
retSpec=0;
27882789
if (((flags&FFICallFlagExternalFunctionHasErrorReaper)!=0)) {
27892790
if ((processOSErrInstVarOffset())<0) {
27902791
(calloutState->callFlags= ((((calloutState->callFlags)) |FFICallFlagExternalFunctionHasErrorReaper)-FFICallFlagExternalFunctionHasErrorReaper));
@@ -2842,8 +2843,11 @@ primitiveCalloutWithArgs(void)
28422843
(calloutState->errorFunction= ((void*)0));
28432844
(calloutState->errorVariable= ((void*)addressSqInt));
28442845
}
2846+
2847+
/* errorReaper is an ExternalLibraryFunction
2848+
errorReaper is an ExternalVariable */
2849+
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
28452850
}
2846-
(calloutState->errorResultType= ((usqInt)(((fetchLong32ofObject(0,retSpec))&FFIAtomicTypeMask))) >>FFIAtomicTypeShift);
28472851
gotol4;
28482852
l4:
28492853

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2026 Movatter.jp