[Bf-blender-cvs] [8115162e989] blender2.8: DRW: Fix T54135 : Crash caused by wrongly iterating over ListBase.

Clément Foucault noreply at git.blender.org
Thu Feb 22 19:50:13 CET 2018


Commit: 8115162e989f3c1d45f69de93849fb1d075417df
Author: Clément Foucault
Date:   Thu Feb 22 19:47:41 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB8115162e989f3c1d45f69de93849fb1d075417df

DRW: Fix T54135 : Crash caused by wrongly iterating over ListBase.

===================================================================

M	source/blender/draw/intern/draw_instance_data.c

===================================================================

diff --git a/source/blender/draw/intern/draw_instance_data.c b/source/blender/draw/intern/draw_instance_data.c
index bfff1a2f546..86b2af5080c 100644
--- a/source/blender/draw/intern/draw_instance_data.c
+++ b/source/blender/draw/intern/draw_instance_data.c
@@ -110,7 +110,7 @@ static void instance_batch_free(Gwn_Batch *batch, void *UNUSED(user_data))
 	/* TODO: Make it thread safe! Batch freeing can happen from another thread. */
 	/* XXX we need to iterate over all idatalists unless we make some smart
 	 * data structure to store the locations to update. */
-	for (DRWInstanceDataList *idatalist = g_idatalists.first; idatalist; ++idatalist) {
+	for (DRWInstanceDataList *idatalist = g_idatalists.first; idatalist; idatalist = idatalist->next) {
 		DRWInstancingBuffer *ibuf = idatalist->instancing.ibufs;
 		for (int i = 0; i < idatalist->instancing.alloc_size; i++, ibuf++) {
 			if (ibuf->instance == batch) {



More information about the Bf-blender-cvs mailing list