Skip to content

Commit

Permalink
Merge pull request #160 from TileDB-Inc/call-free-on-all-char-allocs
Browse files Browse the repository at this point in the history
Call free on all char allocs
  • Loading branch information
snagles authored Mar 30, 2021
2 parents b616f91 + ef3e044 commit afedd1e
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 2 deletions.
2 changes: 2 additions & 0 deletions array.go
Original file line number Diff line number Diff line change
Expand Up @@ -717,6 +717,7 @@ func (a *Array) NonEmptyDomainFromName(dimName string) (*NonEmptyDomain, bool, e
func (a *Array) URI() (string, error) {
var curi *C.char
defer C.free(unsafe.Pointer(curi))

C.tiledb_array_get_uri(a.context.tiledbContext, a.tiledbArray, &curi)
uri := C.GoString(curi)
if uri == "" {
Expand Down Expand Up @@ -1001,6 +1002,7 @@ func (a *Array) GetMetadataFromIndex(index uint64) (*ArrayMetadata, error) {
func (a *Array) GetMetadataFromIndexWithValueLimit(index uint64, limit *uint) (*ArrayMetadata, error) {
var cKey *C.char
defer C.free(unsafe.Pointer(cKey))

var cIndex C.uint64_t = C.uint64_t(index)
var cType C.tiledb_datatype_t
var cKeyLen C.uint32_t
Expand Down
3 changes: 3 additions & 0 deletions config_iter.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ func (ci *ConfigIter) Free() {
func (ci *ConfigIter) Here() (*string, *string, error) {
var err *C.tiledb_error_t
var cparam, cvalue *C.char
defer C.free(unsafe.Pointer(cparam))
defer C.free(unsafe.Pointer(cvalue))

C.tiledb_config_iter_here(ci.tiledbConfigIter, &cparam, &cvalue, &err)
if err != nil {
var msg *C.char
Expand Down
3 changes: 1 addition & 2 deletions context.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,6 @@ func (c *Context) Config() (*Config, error) {
func (c *Context) LastError() error {
var err *C.tiledb_error_t
ret := C.tiledb_ctx_get_last_error(c.tiledbContext, &err)

if ret == C.TILEDB_OOM {
return fmt.Errorf("Out of Memory error in tiledb_ctx_get_last_error")
} else if ret != C.TILEDB_OK {
Expand All @@ -92,9 +91,9 @@ func (c *Context) LastError() error {

if err != nil {
var msg *C.char
defer C.free(unsafe.Pointer(msg))
defer C.tiledb_error_free(&err)
ret := C.tiledb_error_message(err, &msg)

if ret == C.TILEDB_OOM {
return fmt.Errorf("Out of Memory error in tiledb_error_message")
} else if ret != C.TILEDB_OK {
Expand Down
1 change: 1 addition & 0 deletions query.go
Original file line number Diff line number Diff line change
Expand Up @@ -3205,6 +3205,7 @@ func (q *Query) GetFragmentNum() (*uint32, error) {
// GetFragmentURI returns uri for a fragment
func (q *Query) GetFragmentURI(num uint64) (*string, error) {
var cURI *C.char
defer C.free(unsafe.Pointer(cURI))

ret := C.tiledb_query_get_fragment_uri(
q.context.tiledbContext,
Expand Down

0 comments on commit afedd1e

Please sign in to comment.