From 8b828e45a81af5994f081534a8707d9aaaf5007d Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sun, 8 Sep 2013 09:06:51 -0700 Subject: [PATCH] Free intersection t values array after use. --- src/scene.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/scene.c b/src/scene.c index e95c649..d7f88b1 100644 --- a/src/scene.c +++ b/src/scene.c @@ -157,11 +157,14 @@ scene_trace_ray(Scene *scene, const Ray ray, const int depth) ObjectList *ptr = scene->objects; while (ptr != NULL) { nints = object_does_intersect(ptr->object, ray, &t); - for (int i = 0; i < nints; i++) { - if (t[i] < nearest_t) { - intersected_obj = ptr->object; - nearest_t = t[i]; + if (nints > 0) { + for (int i = 0; i < nints; i++) { + if (t[i] < nearest_t) { + intersected_obj = ptr->object; + nearest_t = t[i]; + } } + free(t); } ptr = ptr->next; }