From 303d0f0b9782344756d0a921ede7130740134323 Mon Sep 17 00:00:00 2001 From: mappu Date: Tue, 17 Sep 2024 18:28:44 +1200 Subject: [PATCH] genbindings/cabi: reduce temporaries when returning qt heap copies --- cmd/genbindings/emitcabi.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/genbindings/emitcabi.go b/cmd/genbindings/emitcabi.go index 998fc36..7d964de 100644 --- a/cmd/genbindings/emitcabi.go +++ b/cmd/genbindings/emitcabi.go @@ -351,9 +351,9 @@ func emitAssignCppToCabi(assignExpression string, p CppParameter, rvalue string) } } else if p.QtClassType() && !p.Pointer { - shouldReturn = p.ParameterType + " " + namePrefix + "_ret = " - afterCall = indent + "// Copy-construct value returned type into heap-allocated copy\n" - afterCall += indent + "" + assignExpression + "static_cast<" + p.ParameterType + "*>(new " + p.ParameterType + "(" + namePrefix + "_ret));\n" + + // Elide temporary and emit directly from the rvalue + return indent + assignExpression + "new " + p.ParameterType + "(" + rvalue + ");\n" } else if p.Const { shouldReturn += "(" + p.RenderTypeCabi() + ") "