mirror of
https://github.com/mappu/miqt.git
synced 2024-12-22 17:08:38 +00:00
genbindings: call correct c++ function for optional parameters
This commit is contained in:
parent
f9abbed9c7
commit
6fb50dc267
@ -235,6 +235,11 @@ func emitBindingCpp(src *CppParsedHeader, filename string) (string, error) {
|
|||||||
|
|
||||||
preamble, forwarding := emitParametersCABI2CppForwarding(m.Parameters)
|
preamble, forwarding := emitParametersCABI2CppForwarding(m.Parameters)
|
||||||
|
|
||||||
|
nativeMethodName := m.MethodName
|
||||||
|
if m.OverrideMethodName != "" {
|
||||||
|
nativeMethodName = m.OverrideMethodName
|
||||||
|
}
|
||||||
|
|
||||||
ret.WriteString(fmt.Sprintf(
|
ret.WriteString(fmt.Sprintf(
|
||||||
"%s %s_%s(%s) {\n"+
|
"%s %s_%s(%s) {\n"+
|
||||||
"%s"+
|
"%s"+
|
||||||
@ -244,7 +249,7 @@ func emitBindingCpp(src *CppParsedHeader, filename string) (string, error) {
|
|||||||
"\n",
|
"\n",
|
||||||
emitReturnTypeCabi(m.ReturnType), c.ClassName, m.SafeMethodName(), emitParametersCabi(m, "P"+c.ClassName),
|
emitReturnTypeCabi(m.ReturnType), c.ClassName, m.SafeMethodName(), emitParametersCabi(m, "P"+c.ClassName),
|
||||||
preamble,
|
preamble,
|
||||||
shouldReturn, c.ClassName, m.MethodName, forwarding,
|
shouldReturn, c.ClassName, nativeMethodName, forwarding,
|
||||||
afterCall,
|
afterCall,
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
@ -24,9 +24,10 @@ type CppProperty struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type CppMethod struct {
|
type CppMethod struct {
|
||||||
MethodName string
|
MethodName string
|
||||||
ReturnType CppParameter // Name not used
|
OverrideMethodName string // Present only if we changed the target
|
||||||
Parameters []CppParameter
|
ReturnType CppParameter // Name not used
|
||||||
|
Parameters []CppParameter
|
||||||
}
|
}
|
||||||
|
|
||||||
func (nm CppMethod) SafeMethodName() string {
|
func (nm CppMethod) SafeMethodName() string {
|
||||||
|
@ -29,9 +29,10 @@ func astTransformOptional(parsed *CppParsedHeader) {
|
|||||||
// Add method copies
|
// Add method copies
|
||||||
for x := optionalStart; x < len(m.Parameters); x++ {
|
for x := optionalStart; x < len(m.Parameters); x++ {
|
||||||
dupMethod := CppMethod{
|
dupMethod := CppMethod{
|
||||||
MethodName: m.MethodName + fmt.Sprintf("%d", x+1),
|
MethodName: m.MethodName + fmt.Sprintf("%d", x+1),
|
||||||
ReturnType: m.ReturnType,
|
OverrideMethodName: m.MethodName,
|
||||||
Parameters: nil,
|
ReturnType: m.ReturnType,
|
||||||
|
Parameters: nil,
|
||||||
}
|
}
|
||||||
dupMethod.Parameters = append(dupMethod.Parameters, m.Parameters[0:x+1]...)
|
dupMethod.Parameters = append(dupMethod.Parameters, m.Parameters[0:x+1]...)
|
||||||
c.Methods = append(c.Methods, dupMethod) // TODO can we insert them next, instead of at the end?
|
c.Methods = append(c.Methods, dupMethod) // TODO can we insert them next, instead of at the end?
|
||||||
|
Loading…
Reference in New Issue
Block a user