summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadzim Dambrouski <[email protected]>2016-06-10 17:03:53 +0300
committerVadzim Dambrouski <[email protected]>2016-06-10 17:07:15 +0300
commit62c8f204e7ae3bf3ad78d723f0410661325c8ead (patch)
treea536ad524359561f54c0acd686f9b3115685e66a
parent0846667ce92deab378169b16c918b137dc68dd81 (diff)
Safer nil pointer handling in stddialogs
-rw-r--r--stddialogs.go24
1 files changed, 14 insertions, 10 deletions
diff --git a/stddialogs.go b/stddialogs.go
index 7954512..0ff8a01 100644
--- a/stddialogs.go
+++ b/stddialogs.go
@@ -8,30 +8,34 @@ import "C"
// TODO
func MsgBoxError(w *Window, title string, description string) {
ctitle := C.CString(title)
+ defer freestr(ctitle)
cdescription := C.CString(description)
+ defer freestr(cdescription)
C.uiMsgBoxError(w.w, ctitle, cdescription)
- freestr(ctitle)
- freestr(cdescription)
}
func OpenFile(w *Window) string {
cname := C.uiOpenFile(w.w)
- name := C.GoString(cname)
- C.uiFreeText(cname)
- return name
+ if cname == nil {
+ return ""
+ }
+ defer C.uiFreeText(cname)
+ return C.GoString(cname)
}
func SaveFile(w *Window) string {
cname := C.uiSaveFile(w.w)
- name := C.GoString(cname)
- C.uiFreeText(cname)
- return name
+ if cname == nil {
+ return ""
+ }
+ defer C.uiFreeText(cname)
+ return C.GoString(cname)
}
func MsgBox(w *Window, title string, description string) {
ctitle := C.CString(title)
+ defer freestr(ctitle)
cdescription := C.CString(description)
+ defer freestr(cdescription)
C.uiMsgBox(w.w, ctitle, cdescription)
- freestr(ctitle)
- freestr(cdescription)
}