mirror of
https://github.com/mappu/miqt.git
synced 2025-01-02 21:58:38 +00:00
genbindings/go: return C char* as string
This commit is contained in:
parent
dc21dc3163
commit
c66203d984
@ -329,7 +329,7 @@ func (gfs *goFileState) emitParameterGo2CABIForwarding(p CppParameter) (preamble
|
|||||||
|
|
||||||
func (gfs *goFileState) emitCabiToGo(assignExpr string, rt CppParameter, rvalue string) string {
|
func (gfs *goFileState) emitCabiToGo(assignExpr string, rt CppParameter, rvalue string) string {
|
||||||
|
|
||||||
shouldReturn := "return "
|
shouldReturn := assignExpr // "return "
|
||||||
afterword := ""
|
afterword := ""
|
||||||
namePrefix := makeNamePrefix(rt.ParameterName)
|
namePrefix := makeNamePrefix(rt.ParameterName)
|
||||||
|
|
||||||
@ -343,10 +343,16 @@ func (gfs *goFileState) emitCabiToGo(assignExpr string, rt CppParameter, rvalue
|
|||||||
// Qt functions normally return QString - anything returning char*
|
// Qt functions normally return QString - anything returning char*
|
||||||
// is something like QByteArray.Data() where it returns an unsafe
|
// is something like QByteArray.Data() where it returns an unsafe
|
||||||
// internal pointer
|
// internal pointer
|
||||||
|
// However in case this is a signal, we need to be able to marshal both
|
||||||
|
// forwards and backwards with the same types, this has to be a string
|
||||||
|
// in both cases
|
||||||
|
// This is not a miqt_string and therefore MIQT did not allocate it,
|
||||||
|
// and therefore we don't have to free it either
|
||||||
gfs.imports["unsafe"] = struct{}{}
|
gfs.imports["unsafe"] = struct{}{}
|
||||||
|
|
||||||
shouldReturn = namePrefix + "_ret := "
|
shouldReturn = namePrefix + "_ret := "
|
||||||
afterword += assignExpr + " (unsafe.Pointer)(" + namePrefix + "_ret)\n"
|
afterword += assignExpr + " C.GoString(" + namePrefix + "_ret)\n"
|
||||||
|
return shouldReturn + " " + rvalue + "\n" + afterword
|
||||||
|
|
||||||
} else if rt.ParameterType == "QString" {
|
} else if rt.ParameterType == "QString" {
|
||||||
gfs.imports["unsafe"] = struct{}{}
|
gfs.imports["unsafe"] = struct{}{}
|
||||||
|
Loading…
Reference in New Issue
Block a user