From a61ece2022f9e765d65dcd0ed22dba7e71e138a2 Mon Sep 17 00:00:00 2001
From: Uwe Hermann <uwe@hermann-uwe.de>
Date: Fri, 10 Feb 2012 00:06:58 +0100
Subject: srd: Add/improve g_malloc() error messages.

---
 controller.c   | 16 ++++++++++------
 decoder.c      |  3 ++-
 sigrokdecode.h |  2 +-
 type_decoder.c |  4 +++-
 util.c         |  8 +++++---
 5 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/controller.c b/controller.c
index 476f4f3..68ff9f7 100644
--- a/controller.c
+++ b/controller.c
@@ -317,7 +317,7 @@ SRD_API int srd_instance_set_probes(struct srd_decoder_instance *di,
 	new_probemap = NULL;
 
 	if (!(new_probemap = g_try_malloc(sizeof(int) * di->dec_num_probes))) {
-		srd_err("Failed to malloc new probe map.");
+		srd_err("Failed to g_malloc() new probe map.");
 		return SRD_ERR_MALLOC;
 	}
 
@@ -378,8 +378,8 @@ SRD_API struct srd_decoder_instance *srd_instance_new(const char *decoder_id,
 		return NULL;
 	}
 
-	if (!(di = g_try_malloc0(sizeof(*di)))) {
-		srd_err("Failed to malloc instance.");
+	if (!(di = g_try_malloc0(sizeof(struct srd_decoder_instance)))) {
+		srd_err("Failed to g_malloc() instance.");
 		return NULL;
 	}
 
@@ -396,7 +396,7 @@ SRD_API struct srd_decoder_instance *srd_instance_new(const char *decoder_id,
 	if (di->dec_num_probes) {
 		if (!(di->dec_probemap =
 		     g_try_malloc(sizeof(int) * di->dec_num_probes))) {
-			srd_err("Failed to malloc probe map.");
+			srd_err("Failed to g_malloc() probe map.");
 			g_free(di);
 			return NULL;
 		}
@@ -698,8 +698,10 @@ SRD_API int srd_register_callback(int output_type, srd_pd_output_callback_t cb)
 
 	srd_dbg("Registering new callback for output type %d.", output_type);
 
-	if (!(pd_cb = g_try_malloc(sizeof(struct srd_pd_callback))))
+	if (!(pd_cb = g_try_malloc(sizeof(struct srd_pd_callback)))) {
+		srd_err("Failed to g_malloc() struct srd_pd_callback.");
 		return SRD_ERR_MALLOC;
+	}
 
 	pd_cb->output_type = output_type;
 	pd_cb->callback = cb;
@@ -735,8 +737,10 @@ SRD_PRIV int pd_add(struct srd_decoder_instance *di, int output_type,
 	srd_dbg("Instance %s creating new output type %d for %s.",
 		di->instance_id, output_type, proto_id);
 
-	if (!(pdo = g_try_malloc(sizeof(struct srd_pd_output))))
+	if (!(pdo = g_try_malloc(sizeof(struct srd_pd_output)))) {
+		srd_err("Failed to g_malloc() struct srd_pd_output.");
 		return -1;
+	}
 
 	/* pdo_id is just a simple index, nothing is deleted from this list anyway. */
 	pdo->pdo_id = g_slist_length(di->pd_output);
diff --git a/decoder.c b/decoder.c
index 557aa71..731ab16 100644
--- a/decoder.c
+++ b/decoder.c
@@ -95,6 +95,7 @@ static int get_probes(struct srd_decoder *d, char *attr, GSList **pl)
 		}
 
 		if (!(p = g_try_malloc(sizeof(struct srd_probe)))) {
+			srd_err("Failed to g_malloc() struct srd_probe.");
 			ret = SRD_ERR_MALLOC;
 			goto err_out;
 		}
@@ -138,7 +139,7 @@ SRD_API int srd_load_decoder(const char *name, struct srd_decoder **dec)
 	py_basedec = py_method = py_attr = NULL;
 
 	if (!(d = g_try_malloc0(sizeof(struct srd_decoder)))) {
-		srd_dbg("Failed to malloc struct srd_decoder.");
+		srd_dbg("Failed to g_malloc() struct srd_decoder.");
 		ret = SRD_ERR_MALLOC;
 		goto err_out;
 	}
diff --git a/sigrokdecode.h b/sigrokdecode.h
index de08ff6..2ad739b 100644
--- a/sigrokdecode.h
+++ b/sigrokdecode.h
@@ -94,7 +94,7 @@ enum {
 	SRD_OUTPUT_BINARY,
 };
 
-#define SRD_MAX_NUM_PROBES   64
+#define SRD_MAX_NUM_PROBES 64
 
 /* TODO: Documentation. */
 struct srd_decoder {
diff --git a/type_decoder.c b/type_decoder.c
index 9c2cfd6..028865b 100644
--- a/type_decoder.c
+++ b/type_decoder.c
@@ -124,8 +124,10 @@ static PyObject *Decoder_put(PyObject *self, PyObject *args)
 		 di->instance_id, start_sample, end_sample,
 		 OUTPUT_TYPES[pdo->output_type], output_id);
 
-	if (!(pdata = g_try_malloc0(sizeof(struct srd_proto_data))))
+	if (!(pdata = g_try_malloc0(sizeof(struct srd_proto_data)))) {
+		srd_err("Failed to g_malloc() struct srd_proto_data.");
 		return NULL;
+	}
 	pdata->start_sample = start_sample;
 	pdata->end_sample = end_sample;
 	pdata->pdo = pdo;
diff --git a/util.c b/util.c
index 5f18639..78cfdc3 100644
--- a/util.c
+++ b/util.c
@@ -138,7 +138,7 @@ SRD_PRIV int py_str_as_str(PyObject *py_str, char **outstr)
 	}
 
 	if (!(*outstr = g_strdup(str))) {
-		srd_dbg("outstr malloc failed");
+		srd_dbg("Failed to g_malloc() outstr.");
 		ret = SRD_ERR_MALLOC;
 		goto err_out;
 	}
@@ -162,7 +162,7 @@ err_out:
  * @param outstr ptr to char ** storage to be filled in.
  *
  * @return SRD_OK upon success, a (negative) error code otherwise.
- *         The 'outstr' argument points to a malloc()ed char ** upon success.
+ *         The 'outstr' argument points to a g_malloc()ed char** upon success.
  */
 SRD_PRIV int py_strlist_to_char(PyObject *py_strlist, char ***outstr)
 {
@@ -171,8 +171,10 @@ SRD_PRIV int py_strlist_to_char(PyObject *py_strlist, char ***outstr)
 	char **out, *str;
 
 	list_len = PyList_Size(py_strlist);
-	if (!(out = g_try_malloc(sizeof(char *) * (list_len + 1))))
+	if (!(out = g_try_malloc(sizeof(char *) * (list_len + 1)))) {
+		srd_err("Failed to g_malloc() 'out'.");
 		return SRD_ERR_MALLOC;
+	}
 	for (i = 0; i < list_len; i++) {
 		if (!(py_str = PyUnicode_AsEncodedString(
 		    PyList_GetItem(py_strlist, i), "utf-8", NULL)))
-- 
cgit v1.2.3-70-g09d2