Repository : ssh://git@open-mesh.org/alfred
On branch : master
>---------------------------------------------------------------
commit 303907b7023a06aeb61b51bf9324ceefd7bb34de
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Sat May 24 13:44:09 2014 +0200
alfred: Use pre-allocated object for global variables
The object storing the global variables is a good way to keep track of all
data. But it is unnecessary to allocate an object on the heap for it. Using
an object with static storage allows better compiler optimization and makes
checking for actual memory leaks (unreachable memory) easier.
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
Signed-off-by: Simon Wunderlich <sw(a)simonwunderlich.de>
>---------------------------------------------------------------
303907b7023a06aeb61b51bf9324ceefd7bb34de
gpsd/alfred-gpsd.c | 7 +++----
main.c | 6 ++----
vis/vis.c | 7 +++----
3 files changed, 8 insertions(+), 12 deletions(-)
diff --git a/gpsd/alfred-gpsd.c b/gpsd/alfred-gpsd.c
index b71a9b2..ef20f28 100644
--- a/gpsd/alfred-gpsd.c
+++ b/gpsd/alfred-gpsd.c
@@ -21,6 +21,8 @@
#include "alfred-gpsd.h"
+static struct globals gpsd_globals;
+
static int alfred_open_sock(struct globals *globals)
{
struct sockaddr_un addr;
@@ -394,10 +396,7 @@ static struct globals *gpsd_init(int argc, char *argv[])
{NULL, 0, NULL, 0},
};
- globals = malloc(sizeof(*globals));
- if (!globals)
- return NULL;
-
+ globals = &gpsd_globals;
memset(globals, 0, sizeof(*globals));
globals->opmode = OPMODE_CLIENT;
diff --git a/main.c b/main.c
index 32fb9b8..d848589 100644
--- a/main.c
+++ b/main.c
@@ -27,6 +27,7 @@
#include "alfred.h"
#include "packet.h"
+static struct globals alfred_globals;
static void alfred_usage(void)
{
@@ -69,10 +70,7 @@ static struct globals *alfred_init(int argc, char *argv[])
{NULL, 0, NULL, 0},
};
- globals = malloc(sizeof(*globals));
- if (!globals)
- return NULL;
-
+ globals = &alfred_globals;
memset(globals, 0, sizeof(*globals));
globals->opmode = OPMODE_SLAVE;
diff --git a/vis/vis.c b/vis/vis.c
index a5ac664..31f60d7 100644
--- a/vis/vis.c
+++ b/vis/vis.c
@@ -37,6 +37,8 @@
#include <unistd.h>
#include "debugfs.h"
+static struct globals vis_globals;
+
static char *read_file(char *fname)
{
FILE *fp;
@@ -832,10 +834,7 @@ static struct globals *vis_init(int argc, char *argv[])
{NULL, 0, NULL, 0},
};
- globals = malloc(sizeof(*globals));
- if (!globals)
- return NULL;
-
+ globals = &vis_globals;
memset(globals, 0, sizeof(*globals));
globals->opmode = OPMODE_CLIENT;