summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--controller.c7
-rw-r--r--decoder.c3
2 files changed, 7 insertions, 3 deletions
diff --git a/controller.c b/controller.c
index 9b8d35b..2f76665 100644
--- a/controller.c
+++ b/controller.c
@@ -229,10 +229,10 @@ SRD_PRIV int srd_decoder_searchpath_add(const char *path)
srd_dbg("Adding '%s' to module path.", path);
new_path = g_string_sized_new(256);
- g_string_assign(new_path, g_strdup(path));
+ g_string_assign(new_path, path);
py_cur_path = PySys_GetObject("path");
for (i = 0; i < PyList_Size(py_cur_path); i++) {
- g_string_append(new_path, g_strdup(G_SEARCHPATH_SEPARATOR_S));
+ g_string_append(new_path, G_SEARCHPATH_SEPARATOR_S);
py_item = PyList_GetItem(py_cur_path, i);
if (!PyUnicode_Check(py_item))
/* Shouldn't happen. */
@@ -240,6 +240,7 @@ SRD_PRIV int srd_decoder_searchpath_add(const char *path)
if (py_str_as_str(py_item, &item) != SRD_OK)
continue;
g_string_append(new_path, item);
+ g_free(item);
}
/* Convert to wide chars. */
@@ -401,6 +402,7 @@ SRD_API int srd_inst_option_set(struct srd_decoder_inst *di,
*/
if (PyDict_SetItemString(py_di_options, key, py_optval) == -1)
goto err_out;
+ g_free(key);
}
ret = SRD_OK;
@@ -816,6 +818,7 @@ SRD_PRIV void srd_inst_free(struct srd_decoder_inst *di)
g_free(pdo);
}
g_slist_free(di->pd_output);
+ g_free(di);
}
/** @private */
diff --git a/decoder.c b/decoder.c
index a7e5822..de9b33b 100644
--- a/decoder.c
+++ b/decoder.c
@@ -217,6 +217,7 @@ static int get_options(struct srd_decoder *d)
}
g_variant_ref_sink(o->def);
d->options = g_slist_append(d->options, o);
+ g_free(key);
}
Py_DecRef(py_keys);
Py_DecRef(py_values);
@@ -493,7 +494,7 @@ SRD_API int srd_decoder_unload(struct srd_decoder *dec)
/* The module itself. */
Py_XDECREF(dec->py_mod);
- /* TODO: (g_)free dec itself? */
+ g_free(dec);
return SRD_OK;
}