syscall: Convert errno to error after Exitsyscall.
From-SVN: r186020
This commit is contained in:
parent
a0d203b112
commit
e0be8a5c20
@ -199,6 +199,7 @@ BEGIN {
|
||||
}
|
||||
printf("c_%s(%s)\n", cfnname, args)
|
||||
|
||||
seterr = 0
|
||||
if (gofnresults != "") {
|
||||
fields = split(gofnresults, goresults, ", *")
|
||||
if (fields > 2) {
|
||||
@ -218,13 +219,17 @@ BEGIN {
|
||||
gotype = goparam[2]
|
||||
|
||||
if (goname == "err") {
|
||||
print "\tvar errno Errno"
|
||||
print "\tsetErrno := false"
|
||||
if (cfnresult ~ /^\*/) {
|
||||
print "\tif _r == nil {"
|
||||
} else {
|
||||
print "\tif _r < 0 {"
|
||||
}
|
||||
print "\t\terr = GetErrno()"
|
||||
print "\t\terrno = GetErrno()"
|
||||
print "\t\tsetErrno = true"
|
||||
print "\t}"
|
||||
seterr = 1
|
||||
} else if (gotype == "uintptr" && cfnresult ~ /^\*/) {
|
||||
printf("\t%s = (%s)(unsafe.Pointer(_r))\n", goname, gotype)
|
||||
} else {
|
||||
@ -243,6 +248,12 @@ BEGIN {
|
||||
print "\tExitsyscall()"
|
||||
}
|
||||
|
||||
if (seterr) {
|
||||
print "\tif setErrno {"
|
||||
print "\t\terr = errno"
|
||||
print "\t}"
|
||||
}
|
||||
|
||||
if (gofnresults != "") {
|
||||
print "\treturn"
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user