From d48e4400fc454ce401a8feac9d013e489df6f198 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 4 Jul 2013 14:00:56 +0100 Subject: [PATCH] golang: Map OptString to *string, not string (since string is not nullable). --- generator/golang.ml | 10 ++++++++-- .../guestfs/guestfs_050_handle_properties_test.go | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/generator/golang.ml b/generator/golang.ml index 8af124c48..c21505317 100644 --- a/generator/golang.ml +++ b/generator/golang.ml @@ -310,9 +310,9 @@ func return_hashtable (argv **C.char) map[string]string { | Pathname n | Dev_or_Path n | Mountable_or_Path n - | OptString n | Key n | FileIn n | FileOut n -> pr "%s string" n + | OptString n -> pr "%s *string" n | StringList n | DeviceList n -> pr "%s []string" n | BufferIn n -> pr "%s []byte" n @@ -365,12 +365,18 @@ func return_hashtable (argv **C.char) map[string]string { | Pathname n | Dev_or_Path n | Mountable_or_Path n - | OptString n | Key n | FileIn n | FileOut n -> pr "\n"; pr " c_%s := C.CString (%s)\n" n n; pr " defer C.free (unsafe.Pointer (c_%s))\n" n + | OptString n -> + pr "\n"; + pr " var c_%s *C.char = nil\n" n; + pr " if %s != nil {\n" n; + pr " c_%s = C.CString (*%s)\n" n n; + pr " defer C.free (unsafe.Pointer (c_%s))\n" n; + pr " }\n" | StringList n | DeviceList n -> pr "\n"; diff --git a/golang/src/libguestfs.org/guestfs/guestfs_050_handle_properties_test.go b/golang/src/libguestfs.org/guestfs/guestfs_050_handle_properties_test.go index e08b2e2db..da5dfc8dc 100644 --- a/golang/src/libguestfs.org/guestfs/guestfs_050_handle_properties_test.go +++ b/golang/src/libguestfs.org/guestfs/guestfs_050_handle_properties_test.go @@ -57,7 +57,7 @@ func Test050HandleProperties (t *testing.T) { if err != nil { t.Errorf ("%s", err) } - err = g.Set_path (p) + err = g.Set_path (&p) if err != nil { t.Errorf ("%s", err) }