diff --git a/examples/foundation/main.go b/examples/foundation/main.go index 1802152..5a5cc0c 100644 --- a/examples/foundation/main.go +++ b/examples/foundation/main.go @@ -83,14 +83,14 @@ func main() { ns.NSArrayWithObjects(nst("obj1"),nst("obj2")), ns.NSArrayWithObjects(nst("key1"),nst("key2")), ) - os := make([]ns.Id,4) + os := make([]ns.Id,0,5) fmt.Printf("Length of os is %d\n",len(os)) - ks := make([]ns.Id,4) + ks := make([]ns.Id,0,5) fmt.Printf("\nGetObjects()\n") d.GetObjects(&os,&ks,4) fmt.Printf("Length of os is now %d\n",len(os)) for i,k := range ks { - fmt.Printf("--%s -> %s\n",k.NSString(),os[i].NSString()) + fmt.Printf("-- %s -> %s\n",k.NSString(),os[i].NSString()) } fmt.Printf("\nNSStringWithContentsOfURLEncoding()\n") err := make([]ns.NSError,1) diff --git a/types/convert.go b/types/convert.go index 65313dc..b98b8ca 100644 --- a/types/convert.go +++ b/types/convert.go @@ -402,13 +402,14 @@ func GoToC(name string, pnames, snames []string, rtype *Type, ptypes []*Type, fu for i,sname := range snames { if sname == "" { continue } ret.WriteString(fmt.Sprintf(` + (*%s) = (*%s)[:cap(*%s)] for i := 0; i < len(*%s); i++ { if %s[i] == nil { (*%s) = (*%s)[:i] break } (*%s)[i].ptr = %s[i] - }`,pnames[i],sname,pnames[i],pnames[i],pnames[i],sname)) + }`,pnames[i],pnames[i],pnames[i],pnames[i],sname,pnames[i],pnames[i],pnames[i],sname)) } if rt != "void" { ret.WriteString(` diff --git a/wrap/main.go b/wrap/main.go index af6a5e4..3d3c04f 100644 --- a/wrap/main.go +++ b/wrap/main.go @@ -977,7 +977,7 @@ func %s%s(%s) %s { continue } w.goCode.WriteString(fmt.Sprintf(` - %s := make([]unsafe.Pointer,len(*%s)) + %s := make([]unsafe.Pointer,cap(*%s)) for i := 0; i < len(*%s); i++ { %s[i] = (*%s)[i].Ptr() }