Make sure we free our data made by C.CString. Also, updated cgo comments to multiline - seems to be preferred style
This commit is contained in:
parent
690531c87e
commit
20aa6d93c3
16
converter.go
16
converter.go
@ -1,6 +1,9 @@
|
||||
package iconv
|
||||
|
||||
// #include <iconv.h>
|
||||
/*
|
||||
#include <iconv.h>
|
||||
#include <stdlib.h>
|
||||
*/
|
||||
import "C"
|
||||
|
||||
import (
|
||||
@ -16,7 +19,16 @@ type Converter struct {
|
||||
func NewConverter(fromEncoding string, toEncoding string) (converter *Converter, err Error) {
|
||||
converter = new(Converter)
|
||||
|
||||
converter.context, err = C.iconv_open(C.CString(toEncoding), C.CString(fromEncoding))
|
||||
// create C strings
|
||||
toEncodingC := C.CString(toEncoding)
|
||||
fromEncodingC := C.CString(fromEncoding)
|
||||
|
||||
// open an iconv descriptor
|
||||
converter.context, err = C.iconv_open(toEncodingC, fromEncodingC)
|
||||
|
||||
// free the C Strings
|
||||
C.free(unsafe.Pointer(toEncodingC))
|
||||
C.free(unsafe.Pointer(fromEncodingC))
|
||||
|
||||
// check err
|
||||
if err == nil {
|
||||
|
Loading…
Reference in New Issue
Block a user