aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2013-04-07 19:50:26 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-04-07 20:25:14 -0700
commit4cf244e22877388adcabef133e66b2810c0ab664 (patch)
tree3dd38902271447b013c5a6402b4722316a140dd6
parent1d02ba12a3342039c0156f48cb7a5103801aa368 (diff)
downloadsubsurface-4cf244e22877388adcabef133e66b2810c0ab664.tar.gz
Fix some of the gcc-4.8 warnings
Most of the warnings are IMHO false positives: e.g.: an enum variable is initialized in a switch statement that has a case for each possible enum value - yet gcc 4.8 warns that it could be used uninitialized; or: two variables are initialized together in the code - second one of them is previously initialized to -1 at declaration time, both are initialized in an if (second one == -1) clause - so they are guaranteed to both be initialized... I did not "fix" those as the code is actually correct. But there are three spots where it catches things that could indeed go wrong (with odd input data in one of them). This commit also adds a check to only call g_type_init() for older versions of glib as in newer ones it is deprecated. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-gui.cpp3
-rw-r--r--statistics.c1
-rw-r--r--uemis-downloader.c2
-rw-r--r--uemis.c5
4 files changed, 7 insertions, 4 deletions
diff --git a/qt-gui.cpp b/qt-gui.cpp
index e46f4765f..e667e97bf 100644
--- a/qt-gui.cpp
+++ b/qt-gui.cpp
@@ -1889,8 +1889,9 @@ void init_ui(int *argcp, char ***argvp)
star_strings[4] = "**** ";
star_strings[5] = "*****";
}
+#if !GLIB_CHECK_VERSION(2,3,6)
g_type_init();
-
+#endif
subsurface_open_conf();
load_preferences();
diff --git a/statistics.c b/statistics.c
index a39799a08..502c06cb4 100644
--- a/statistics.c
+++ b/statistics.c
@@ -668,6 +668,7 @@ static void get_ranges(char *buffer, int size)
}
}
}
+ len = strlen(buffer);
if (first != last) {
if (first + 1 == last)
snprintf(buffer + len, size - len, ", %d", last);
diff --git a/uemis-downloader.c b/uemis-downloader.c
index c5113d95a..d33f08b8c 100644
--- a/uemis-downloader.c
+++ b/uemis-downloader.c
@@ -546,7 +546,7 @@ static void parse_divespot(char *buf)
char *tag, *type, *val;
char locationstring[1024] = "";
int divespot, len;
- double latitude, longitude;
+ double latitude = 0.0, longitude = 0.0;
if (strcmp(tp, "divespot"))
diff --git a/uemis.c b/uemis.c
index aad76c10f..3f7c71b7f 100644
--- a/uemis.c
+++ b/uemis.c
@@ -288,7 +288,7 @@ void uemis_parse_divelog_binary(char *base64, void *datap) {
int datalen;
int i;
uint8_t *data;
- struct sample *sample;
+ struct sample *sample = NULL;
uemis_sample_t *u_sample;
struct dive *dive = datap;
struct divecomputer *dc = &dive->dc;
@@ -365,6 +365,7 @@ void uemis_parse_divelog_binary(char *base64, void *datap) {
i += 0x25;
u_sample++;
}
- dive->dc.duration.seconds = sample->time.seconds - 1;
+ if (sample)
+ dive->dc.duration.seconds = sample->time.seconds - 1;
return;
}