swig -go: treat non-const references as pointers
Also clean up the handling of int* and int& to convert between the C type int and the Go type int, which are often different sizes. Fixes #2210
This commit is contained in:
parent
4499422308
commit
27bdbc1f05
4 changed files with 115 additions and 19 deletions
|
|
@ -14,6 +14,26 @@ func (p *GoMyClass) Adjust(m map[string]interface{}) wrap.GoRetStruct {
|
|||
return wrap.GoRetStruct{s}
|
||||
}
|
||||
|
||||
func (p *GoMyClass) S1(s string) {
|
||||
if s != "S1" {
|
||||
panic(s)
|
||||
}
|
||||
}
|
||||
|
||||
func (p *GoMyClass) S2(s *string) {
|
||||
if *s != "S2" {
|
||||
panic(s)
|
||||
}
|
||||
*s = "R2"
|
||||
}
|
||||
|
||||
func (p *GoMyClass) S3(s *string) {
|
||||
if *s != "S3" {
|
||||
panic(s)
|
||||
}
|
||||
*s = "R3"
|
||||
}
|
||||
|
||||
func main() {
|
||||
a := wrap.NewDirectorMyClass(&GoMyClass{})
|
||||
m := map[string]interface{}{
|
||||
|
|
@ -24,6 +44,18 @@ func main() {
|
|||
panic(s)
|
||||
}
|
||||
|
||||
a.S1("S1")
|
||||
str := "S2"
|
||||
a.S2(&str)
|
||||
if str != "R2" {
|
||||
panic(str)
|
||||
}
|
||||
str = "S3"
|
||||
a.S3(&str)
|
||||
if str != "R3" {
|
||||
panic(str)
|
||||
}
|
||||
|
||||
a = wrap.NewDirectorMyClass(nil)
|
||||
s = a.Adjust(m)
|
||||
if s.Str != `{"first":"second"}` {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue