mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
core: keep tank infos in a dynamic table
The list of known tank types were kept in a fixed size table. Instead, use a dynamic table with our horrendous table macros. This is more flexible and sensible. While doing this, clean up the TankInfoModel, which was leaking memory. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
2e328c7633
commit
50b11024d6
12 changed files with 154 additions and 141 deletions
|
|
@ -68,7 +68,6 @@ struct weightsystem_table {
|
|||
weightsystem_t *weightsystems;
|
||||
};
|
||||
|
||||
#define MAX_TANK_INFO (100)
|
||||
#define MAX_WS_INFO (100)
|
||||
|
||||
extern int cylinderuse_from_text(const char *text);
|
||||
|
|
@ -110,11 +109,21 @@ extern void add_cylinder(struct cylinder_table *, int idx, cylinder_t cyl);
|
|||
void get_gas_string(struct gasmix gasmix, char *text, int len);
|
||||
const char *gasname(struct gasmix gasmix);
|
||||
|
||||
struct tank_info_t {
|
||||
typedef struct tank_info {
|
||||
const char *name;
|
||||
int cuft, ml, psi, bar;
|
||||
} tank_info_t;
|
||||
|
||||
struct tank_info_table {
|
||||
int nr, allocated;
|
||||
struct tank_info *infos;
|
||||
};
|
||||
extern struct tank_info_t tank_info[MAX_TANK_INFO];
|
||||
|
||||
extern struct tank_info_table tank_info_table;
|
||||
extern void reset_tank_info_table(struct tank_info_table *table);
|
||||
extern void clear_tank_info_table(struct tank_info_table *table);
|
||||
extern void add_tank_info_metric(struct tank_info_table *table, const char *name, int ml, int bar);
|
||||
extern void add_tank_info_imperial(struct tank_info_table *table, const char *name, int cuft, int psi);
|
||||
|
||||
struct ws_info_t {
|
||||
const char *name;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue