]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/cgo: generate definitions for GoSlice
authorShenghou Ma <minux.ma@gmail.com>
Sat, 30 Jun 2012 04:40:07 +0000 (12:40 +0800)
committerShenghou Ma <minux.ma@gmail.com>
Sat, 30 Jun 2012 04:40:07 +0000 (12:40 +0800)
        Fixes #3741.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6308076

misc/cgo/test/issue3741.go [new file with mode: 0644]
src/cmd/cgo/out.go

diff --git a/misc/cgo/test/issue3741.go b/misc/cgo/test/issue3741.go
new file mode 100644 (file)
index 0000000..3d3bbf9
--- /dev/null
@@ -0,0 +1,22 @@
+// Copyright 2012 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cgotest
+
+import "C"
+
+//export exportSliceIn
+func exportSliceIn(s []byte) bool {
+       return len(s) == cap(s)
+}
+
+//export exportSliceOut
+func exportSliceOut() []byte {
+       return []byte{1}
+}
+
+//export exportSliceInOut
+func exportSliceInOut(s []byte) []byte {
+       return s
+}
index 44f9f306808d42c3ab40f0da786225131093102c..2ab974c9793ca8bb6879ed947458a659305559b3 100644 (file)
@@ -958,4 +958,5 @@ typedef struct { char *p; int n; } GoString;
 typedef void *GoMap;
 typedef void *GoChan;
 typedef struct { void *t; void *v; } GoInterface;
+typedef struct { void *data; int len; int cap; } GoSlice;
 `