summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2019-02-09 13:01:58 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2019-02-09 13:01:58 (GMT)
commit5863af232b8fc57de210702afe659a7383bb8840 (patch)
tree18e6fd0fb7be2f01d23cda34f8d7b3f29b1a250b /src/plugins
parent32bef30025f5e3f513c2b4936c0573cc3b629961 (diff)
Fixed another batch of memory leaks.
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/plugin-def.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/plugins/plugin-def.h b/src/plugins/plugin-def.h
index 6d4253e..3717035 100644
--- a/src/plugins/plugin-def.h
+++ b/src/plugins/plugin-def.h
@@ -223,14 +223,22 @@ typedef struct _plugin_interface
uint64_t magic; /* Vérification a minima */
plugin_abi_version_t abi_version; /* Version du protocole utilisé*/
- const char *gtp_name; /* Désignation du GType associé*/
- const char *name; /* Désignation humaine courte */
- const char *desc; /* Description plus loquace */
- const char *version; /* Version du greffon */
+ /**
+ * Les champs suivants ne sont généralement pas alloués dynamiquement,
+ * car issus des données des greffons natifs.
+ *
+ * Dans le cas des autres types d'extensions (par exemple ceux en Python),
+ * les éléments sont construits à la volée, donc à libérer après usage.
+ */
+
+ char *gtp_name; /* Désignation du GType associé*/
+ char *name; /* Désignation humaine courte */
+ char *desc; /* Description plus loquace */
+ char *version; /* Version du greffon */
bool container; /* Mise en place de greffons ? */
- const char **required; /* Pré-chargements requis */
+ char **required; /* Pré-chargements requis */
size_t required_count; /* Quantité de ces dépendances */
plugin_action_t *actions; /* Liste des actions gérées */
@@ -251,7 +259,7 @@ typedef struct _plugin_interface
#define AL(...) BUILD_PG_LIST(.actions, ((plugin_action_t []){ __VA_ARGS__ }))
-#define RL(...) BUILD_PG_LIST(.required, ((const char *[]){ __VA_ARGS__ }))
+#define RL(...) BUILD_PG_LIST(.required, ((char *[]){ __VA_ARGS__ }))
#define NO_REQ EMPTY_PG_LIST(.required)