From 76f43236765cdedb8f65b85c6bb836115e7c750b Mon Sep 17 00:00:00 2001 From: mappu Date: Sat, 10 Aug 2024 10:32:57 +1200 Subject: [PATCH] genbindings: add Delete() functions --- cmd/genbindings/emitcabi.go | 13 +++++++++++++ cmd/genbindings/emitgo.go | 6 ++++++ 2 files changed, 19 insertions(+) diff --git a/cmd/genbindings/emitcabi.go b/cmd/genbindings/emitcabi.go index 2506421..0038af0 100644 --- a/cmd/genbindings/emitcabi.go +++ b/cmd/genbindings/emitcabi.go @@ -147,6 +147,9 @@ extern "C" { ret.WriteString(fmt.Sprintf("%s %s_%s(%s);\n", emitReturnTypeCabi(m.ReturnType), c.ClassName, m.SafeMethodName(), emitParametersCabi(m, "P"+c.ClassName))) } + // delete + ret.WriteString(fmt.Sprintf("void %s_Delete(P%s self);\n", c.ClassName, c.ClassName)) + ret.WriteString("\n") } @@ -217,6 +220,16 @@ func emitBindingCpp(src *CppParsedHeader, filename string) (string, error) { afterCall, )) } + + // Delete + ret.WriteString(fmt.Sprintf( + "void %s_Delete(P%s self) {\n"+ + "\tdelete static_cast<%s*>(self);\n"+ + "}\n"+ + "\n", + c.ClassName, c.ClassName, + c.ClassName, + )) } return ret.String(), nil diff --git a/cmd/genbindings/emitgo.go b/cmd/genbindings/emitgo.go index 16cad11..d384a6b 100644 --- a/cmd/genbindings/emitgo.go +++ b/cmd/genbindings/emitgo.go @@ -147,6 +147,12 @@ import "C" `) } + ret.WriteString(` + func (this *` + c.ClassName + `) Delete() { + C.` + c.ClassName + `_Delete(this.h) + } + `) + } goSrc := ret.String()