Clean up signedness confusion in dive.c

This started out as cleaning up warnings - but it actually turned into a
matter of semantics and correctness. Which lead to changes in .h files
which will have a ton of ripple effects.

A lot more of this to come.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2016-03-09 18:18:58 -08:00
parent ee6f60515c
commit f2c40907c5
3 changed files with 17 additions and 14 deletions

View file

@ -58,7 +58,7 @@ int event_gasmix_redundant(struct event *ev)
he == ev->gas.mix.he.permille;
}
struct event *add_event(struct divecomputer *dc, int time, int type, int flags, int value, const char *name)
struct event *add_event(struct divecomputer *dc, unsigned int time, int type, int flags, int value, const char *name)
{
int gas_index = -1;
struct event *ev, **p;
@ -738,7 +738,8 @@ void per_cylinder_mean_depth(struct dive *dive, struct divecomputer *dc, int *me
{
int i;
int depthtime[MAX_CYLINDERS] = { 0, };
int lasttime = 0, lastdepth = 0;
uint32_t lasttime = 0;
int lastdepth = 0;
int idx = 0;
for (i = 0; i < MAX_CYLINDERS; i++)
@ -765,7 +766,7 @@ void per_cylinder_mean_depth(struct dive *dive, struct divecomputer *dc, int *me
dc = fake_dc(dc, false);
for (i = 0; i < dc->samples; i++) {
struct sample *sample = dc->sample + i;
int time = sample->time.seconds;
uint32_t time = sample->time.seconds;
int depth = sample->depth.mm;
/* Make sure to move the event past 'lasttime' */
@ -2619,7 +2620,8 @@ static struct divetag *taglist_add_divetag(struct tag_entry **tag_list, struct d
struct divetag *taglist_add_tag(struct tag_entry **tag_list, const char *tag)
{
int i = 0, is_default_tag = 0;
size_t i = 0;
int is_default_tag = 0;
struct divetag *ret_tag, *new_tag;
const char *translation;
new_tag = malloc(sizeof(struct divetag));
@ -2675,7 +2677,7 @@ static void taglist_merge(struct tag_entry **dst, struct tag_entry *src1, struct
void taglist_init_global()
{
int i;
size_t i;
for (i = 0; i < sizeof(default_tags) / sizeof(char *); i++)
taglist_add_tag(&g_tag_list, default_tags[i]);
@ -2920,7 +2922,8 @@ static void force_fixup_dive(struct dive *d)
*/
static int split_dive_at(struct dive *dive, int a, int b)
{
int i, t, nr;
int i, nr;
uint32_t t;
struct dive *d1, *d2;
struct divecomputer *dc1, *dc2;
struct event *event, **evp;
@ -3249,7 +3252,7 @@ void set_informational_units(char *units)
}
}
void average_max_depth(struct diveplan *dive, int *avg_depth, int *max_depth)
void average_max_depth(struct diveplan *dive, unsigned int *avg_depth, unsigned int *max_depth)
{
int integral = 0;
int last_time = 0;
@ -3415,7 +3418,7 @@ void make_first_dc()
}
/* always acts on the current dive */
int count_divecomputers(void)
unsigned int count_divecomputers(void)
{
int ret = 1;
struct divecomputer *dc = current_dive->dc.next;
@ -3455,7 +3458,7 @@ void delete_current_divecomputer(void)
/* helper function to make it easier to work with our structures
* we don't interpolate here, just use the value from the last sample up to that time */
int get_depth_at_time(struct divecomputer *dc, int time)
int get_depth_at_time(struct divecomputer *dc, unsigned int time)
{
int depth = 0;
if (dc && dc->sample)

View file

@ -387,7 +387,7 @@ extern timestamp_t picture_get_timestamp(char *filename);
extern void dive_set_geodata_from_picture(struct dive *d, struct picture *pic);
extern int explicit_first_cylinder(struct dive *dive, struct divecomputer *dc);
extern int get_depth_at_time(struct divecomputer *dc, int time);
extern int get_depth_at_time(struct divecomputer *dc, unsigned int time);
static inline int get_surface_pressure_in_mbar(const struct dive *dive, bool non_null)
{
@ -567,7 +567,7 @@ static inline struct divecomputer *get_dive_dc(struct dive *dive, int nr)
extern timestamp_t dive_endtime(const struct dive *dive);
extern void make_first_dc(void);
extern int count_divecomputers(void);
extern unsigned int count_divecomputers(void);
extern void delete_current_divecomputer(void);
/*
@ -737,7 +737,7 @@ extern void copy_samples(struct divecomputer *s, struct divecomputer *d);
extern bool is_cylinder_used(struct dive *dive, int idx);
extern void fill_default_cylinder(cylinder_t *cyl);
extern void add_gas_switch_event(struct dive *dive, struct divecomputer *dc, int time, int idx);
extern struct event *add_event(struct divecomputer *dc, int time, int type, int flags, int value, const char *name);
extern struct event *add_event(struct divecomputer *dc, unsigned int time, int type, int flags, int value, const char *name);
extern void remove_event(struct event *event);
extern void update_event_name(struct dive *d, struct event* event, char *name);
extern void add_extra_data(struct divecomputer *dc, const char *key, const char *value);
@ -892,7 +892,7 @@ extern depth_t string_to_depth(const char *str);
extern pressure_t string_to_pressure(const char *str);
extern volume_t string_to_volume(const char *str, pressure_t workp);
extern fraction_t string_to_fraction(const char *str);
extern void average_max_depth(struct diveplan *dive, int *avg_depth, int *max_depth);
extern void average_max_depth(struct diveplan *dive, unsigned int *avg_depth, unsigned int *max_depth);
#include "pref.h"

View file

@ -99,7 +99,7 @@ typedef struct
typedef struct
{
int32_t mkelvin; // up to 1750 degrees K
uint32_t mkelvin; // up to 1750 degrees K (temperatures in K are always positive)
} temperature_t;
typedef struct