summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2019-04-15 21:30:42 +0200
committerDavid Robillard <d@drobilla.net>2019-04-15 23:03:10 +0200
commit123faa561b6fad8e510dd0bc00df40fdd5d0574d (patch)
tree2e9c4aacc17a4e70388b614545d85e19f80c6292 /test
parentf5af942a11bd2f3b718adf70ca15c4a62372ee78 (diff)
downloadlilv-123faa561b6fad8e510dd0bc00df40fdd5d0574d.tar.gz
lilv-123faa561b6fad8e510dd0bc00df40fdd5d0574d.tar.bz2
lilv-123faa561b6fad8e510dd0bc00df40fdd5d0574d.zip
Fix mismatched malloc/free calls
Diffstat (limited to 'test')
-rw-r--r--test/test.lv2/test.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/test/test.lv2/test.c b/test/test.lv2/test.c
index 36be747..f15b4dd 100644
--- a/test/test.lv2/test.c
+++ b/test/test.lv2/test.c
@@ -59,13 +59,23 @@ typedef struct {
} Test;
static void
+free_path(char* path)
+{
+ /* FIXME: Temporary hack to avoid mismatched malloc/free crashes on
+ Windows. The specifications needs a feature for this. */
+#ifndef _WIN32
+ free(path);
+#endif
+}
+
+static void
cleanup(LV2_Handle instance)
{
Test* test = (Test*)instance;
if (test->rec_file) {
fclose(test->rec_file);
}
- free(test->rec_file_path);
+ free_path(test->rec_file_path);
free(instance);
}
@@ -250,8 +260,8 @@ save(LV2_Handle instance,
map_uri(plugin, LV2_ATOM__Path),
LV2_STATE_IS_POD);
- free(apath);
- free(apath2);
+ free_path(apath);
+ free_path(apath2);
if (plugin->rec_file) {
fflush(plugin->rec_file);
@@ -265,7 +275,7 @@ save(LV2_Handle instance,
map_uri(plugin, LV2_ATOM__Path),
LV2_STATE_IS_POD);
- free(apath);
+ free_path(apath);
}
if (make_path) {
@@ -281,8 +291,8 @@ save(LV2_Handle instance,
strlen(apath) + 1,
map_uri(plugin, LV2_ATOM__Path),
LV2_STATE_IS_POD);
- free(apath);
- free(spath);
+ free_path(apath);
+ free_path(spath);
}
}
@@ -338,7 +348,7 @@ restore(LV2_Handle instance,
fprintf(stderr, "error: Restored bad file contents `%s' != `Hello'\n",
str);
}
- free(path);
+ free_path(path);
}
apath = (char*)retrieve(
@@ -353,7 +363,7 @@ restore(LV2_Handle instance,
} else {
fclose(sfile);
}
- free(spath);
+ free_path(spath);
} else {
fprintf(stderr, "error: Failed to restore save file.\n");
}