diff options
| author | Vadzim Dambrouski <[email protected]> | 2016-06-10 17:03:53 +0300 |
|---|---|---|
| committer | Vadzim Dambrouski <[email protected]> | 2016-06-10 17:07:15 +0300 |
| commit | 62c8f204e7ae3bf3ad78d723f0410661325c8ead (patch) | |
| tree | a536ad524359561f54c0acd686f9b3115685e66a | |
| parent | 0846667ce92deab378169b16c918b137dc68dd81 (diff) | |
Safer nil pointer handling in stddialogs
| -rw-r--r-- | stddialogs.go | 24 |
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) } |
