Optimize memory

This commit is contained in:
vCaesar 2017-01-10 18:08:32 +08:00
parent cb5c53d9cf
commit a06371f0ec

View File

@ -90,6 +90,7 @@ func SetXDisplayName(name string) string {
cname := C.CString(name) cname := C.CString(name)
str := C.aSetXDisplayName(cname) str := C.aSetXDisplayName(cname)
gstr := C.GoString(str) gstr := C.GoString(str)
defer C.free(unsafe.Pointer(cname))
return gstr return gstr
} }
@ -340,6 +341,7 @@ func MouseToggle(args ...interface{}) {
}) })
down := C.CString(args[0].(string)) down := C.CString(args[0].(string))
C.aMouseToggle(down, button) C.aMouseToggle(down, button)
defer C.free(unsafe.Pointer(down))
} }
//SetMouseDelay Set Mouse Delay //SetMouseDelay Set Mouse Delay
@ -426,10 +428,10 @@ func KeyTap(args ...interface{}) {
C.aKeyTap(zkey, amod, amodt) C.aKeyTap(zkey, amod, amodt)
defer C.free(unsafe.Pointer(zkey))
defer C.free(unsafe.Pointer(amod)) defer C.free(unsafe.Pointer(amod))
defer C.free(unsafe.Pointer(amodt)) defer C.free(unsafe.Pointer(amodt))
} }
defer C.free(unsafe.Pointer(zkey))
} }
@ -551,6 +553,7 @@ func OpenBitmap(args ...interface{}) C.MMBitmapRef {
mtype = 1 mtype = 1
}) })
bit := C.aOpenBitmap(path, mtype) bit := C.aOpenBitmap(path, mtype)
defer C.free(unsafe.Pointer(path))
// Println("opening...", bit) // Println("opening...", bit)
return bit return bit
// defer C.free(unsafe.Pointer(path)) // defer C.free(unsafe.Pointer(path))
@ -570,7 +573,7 @@ func SaveBitmap(args ...interface{}) string {
savebit := C.aSaveBitmap(args[0].(C.MMBitmapRef), path, mtype) savebit := C.aSaveBitmap(args[0].(C.MMBitmapRef), path, mtype)
// fmt.Println("saved...", savebit) // fmt.Println("saved...", savebit)
// return bit // return bit
// defer C.free(unsafe.Pointer(path)) defer C.free(unsafe.Pointer(path))
return C.GoString(savebit) return C.GoString(savebit)
} }
@ -721,6 +724,10 @@ func ShowAlert(title, msg string, args ...string) int {
cbool := C.aShowAlert(atitle, amsg, adefaultButton, acancelButton) cbool := C.aShowAlert(atitle, amsg, adefaultButton, acancelButton)
ibool := int(cbool) ibool := int(cbool)
defer C.free(unsafe.Pointer(atitle))
defer C.free(unsafe.Pointer(amsg))
defer C.free(unsafe.Pointer(adefaultButton))
defer C.free(unsafe.Pointer(acancelButton))
return ibool return ibool
} }