GenericMappingTools / GenericMappingTools/gmtmex

Inability to free what GMT_Encode_Options return

Open
#18 1 comment 0 reactions 1 assignee Claimed by @PaulWessel View on GitHub
Dominant language
MATLAB
Stars
53
Forks
19
PR merge metrics
No merged PRs in 30d

Description

**Description of the problem**

Since I am building GMT with DEBUG and MEM_DEBUG I get messages upon module exit if there were memory leaks. WHen I quit MATLAB after testing gmtmex I may get many of these, probably one for each module call:

Matlab [WARNING]: Memory not freed first allocated in gmt_api.c:12781(GMT_Encode_Options) (ID = 141): 0.141 kb [144 bytes]

The problem is that gmtmex.c does not bother to free the info structure array returned by GMT_Encode_Options. OK, so two issues:

1. That array is allocated with GMT_memory and thus is tracked by GMT's garbage man
2. The API has no way of calling GMT_free since all it has is GMT_Destroy_Data which would not work on some random array.

I think the solution is:

1. Let GMT_Encode_Options allocate directly with malloc/realloc and not GMT_memory
2. Let gmtmex.c clean up after itself.

OK with you @joa-quim ?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.