mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
Cleanup: use free_weightsystem function instead of explicit free
Instead of freeing internal data of the weightsystem structure, call the free_weightsystem function (which has to be made extern at first). This makes things more future-proof, should the weightsystem struct ever be extended. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
dc67876c79
commit
ab99ca85f1
3 changed files with 8 additions and 3 deletions
|
@ -1031,7 +1031,7 @@ RemoveWeight::RemoveWeight(int index, bool currentDiveOnly) :
|
|||
|
||||
RemoveWeight::~RemoveWeight()
|
||||
{
|
||||
free((void *)ws.description);
|
||||
free_weightsystem(ws);
|
||||
}
|
||||
|
||||
bool RemoveWeight::workToBeDone()
|
||||
|
|
|
@ -19,9 +19,13 @@
|
|||
#include "subsurface-string.h"
|
||||
#include "table.h"
|
||||
|
||||
static void free_weightsystem(weightsystem_t w)
|
||||
/* Warning: this has strange semantics for C-code! Not the weightsystem object
|
||||
* is freed, but the data it references. The object itself is passed in by value.
|
||||
* This is due to the fact how the table macros work.
|
||||
*/
|
||||
void free_weightsystem(weightsystem_t ws)
|
||||
{
|
||||
free((void *)w.description);
|
||||
free((void *)ws.description);
|
||||
}
|
||||
|
||||
static void free_cylinder(cylinder_t c)
|
||||
|
|
|
@ -70,6 +70,7 @@ struct weightsystem_table {
|
|||
extern int cylinderuse_from_text(const char *text);
|
||||
extern void copy_weights(const struct weightsystem_table *s, struct weightsystem_table *d);
|
||||
extern weightsystem_t clone_weightsystem(weightsystem_t ws);
|
||||
extern void free_weightsystem(weightsystem_t ws);
|
||||
extern void copy_cylinder_types(const struct dive *s, struct dive *d);
|
||||
extern void add_cloned_weightsystem(struct weightsystem_table *t, weightsystem_t ws);
|
||||
extern cylinder_t *add_empty_cylinder(struct cylinder_table *t);
|
||||
|
|
Loading…
Reference in a new issue