Merge pull request #140 from pftbest/local

Safer nil pointer handling in stddialogs
This commit is contained in:
Pietro Gagliardi 2016-06-10 10:45:18 -04:00 committed by GitHub
commit 02104c77a4
1 changed files with 14 additions and 10 deletions

View File

@ -8,30 +8,34 @@ import "C"
// TODO // TODO
func MsgBoxError(w *Window, title string, description string) { func MsgBoxError(w *Window, title string, description string) {
ctitle := C.CString(title) ctitle := C.CString(title)
defer freestr(ctitle)
cdescription := C.CString(description) cdescription := C.CString(description)
defer freestr(cdescription)
C.uiMsgBoxError(w.w, ctitle, cdescription) C.uiMsgBoxError(w.w, ctitle, cdescription)
freestr(ctitle)
freestr(cdescription)
} }
func OpenFile(w *Window) string { func OpenFile(w *Window) string {
cname := C.uiOpenFile(w.w) cname := C.uiOpenFile(w.w)
name := C.GoString(cname) if cname == nil {
C.uiFreeText(cname) return ""
return name }
defer C.uiFreeText(cname)
return C.GoString(cname)
} }
func SaveFile(w *Window) string { func SaveFile(w *Window) string {
cname := C.uiSaveFile(w.w) cname := C.uiSaveFile(w.w)
name := C.GoString(cname) if cname == nil {
C.uiFreeText(cname) return ""
return name }
defer C.uiFreeText(cname)
return C.GoString(cname)
} }
func MsgBox(w *Window, title string, description string) { func MsgBox(w *Window, title string, description string) {
ctitle := C.CString(title) ctitle := C.CString(title)
defer freestr(ctitle)
cdescription := C.CString(description) cdescription := C.CString(description)
defer freestr(cdescription)
C.uiMsgBox(w.w, ctitle, cdescription) C.uiMsgBox(w.w, ctitle, cdescription)
freestr(ctitle)
freestr(cdescription)
} }