commit 0080a5f22b16d77c268f1503106a23d91c7f6e4f
parent efa24a79c2a8e44623aa8c7eee1228f6ece27285
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Wed, 10 Jan 2024 12:06:43 +0100
Fixed creation of a source without attached data
Diffstat:
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/sdis_source.c b/src/sdis_source.c
@@ -69,7 +69,7 @@ release_source(ref_T* ref)
struct sdis_source* src = CONTAINER_OF(ref, struct sdis_source, ref);
ASSERT(ref);
dev = src->dev;
- SDIS(data_ref_put(src->spherical.data));
+ if(src->spherical.data) SDIS(data_ref_put(src->spherical.data));
MEM_RM(dev->allocator, src);
SDIS(device_ref_put(dev));
}
@@ -98,7 +98,7 @@ sdis_spherical_source_create
}
ref_init(&src->ref);
SDIS(device_ref_get(dev));
- SDIS(data_ref_get(args->data));
+ if(args->data) SDIS(data_ref_get(args->data));
src->spherical = *args;
src->dev = dev;
diff --git a/src/test_sdis_source.c b/src/test_sdis_source.c
@@ -57,6 +57,10 @@ check_spherical_source(struct sdis_device* dev)
OK(sdis_source_ref_put(src));
OK(sdis_data_ref_put(data));
+
+ args.data = NULL;
+ OK(sdis_spherical_source_create(dev, &args, &src));
+ OK(sdis_source_ref_put(src));
}
/*******************************************************************************