mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +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() | RemoveWeight::~RemoveWeight() | ||||||
| { | { | ||||||
| 	free((void *)ws.description); | 	free_weightsystem(ws); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool RemoveWeight::workToBeDone() | bool RemoveWeight::workToBeDone() | ||||||
|  |  | ||||||
|  | @ -19,9 +19,13 @@ | ||||||
| #include "subsurface-string.h" | #include "subsurface-string.h" | ||||||
| #include "table.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) | static void free_cylinder(cylinder_t c) | ||||||
|  |  | ||||||
|  | @ -70,6 +70,7 @@ struct weightsystem_table { | ||||||
| extern int cylinderuse_from_text(const char *text); | extern int cylinderuse_from_text(const char *text); | ||||||
| extern void copy_weights(const struct weightsystem_table *s, struct weightsystem_table *d); | extern void copy_weights(const struct weightsystem_table *s, struct weightsystem_table *d); | ||||||
| extern weightsystem_t clone_weightsystem(weightsystem_t ws); | 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 copy_cylinder_types(const struct dive *s, struct dive *d); | ||||||
| extern void add_cloned_weightsystem(struct weightsystem_table *t, weightsystem_t ws); | extern void add_cloned_weightsystem(struct weightsystem_table *t, weightsystem_t ws); | ||||||
| extern cylinder_t *add_empty_cylinder(struct cylinder_table *t); | extern cylinder_t *add_empty_cylinder(struct cylinder_table *t); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue