[Bf-blender-cvs] [23af898] master: Compositor: Add sanity check around pass element size and compositor data type

Sergey Sharybin noreply at git.blender.org
Thu Mar 5 16:27:27 CET 2015


Commit: 23af8984bb6be579115a4b0e81b65f8cb5a31e83
Author: Sergey Sharybin
Date:   Thu Mar 5 20:24:41 2015 +0500
Branches: master
https://developer.blender.org/rB23af8984bb6be579115a4b0e81b65f8cb5a31e83

Compositor: Add sanity check around pass element size and compositor data type

Only happening in the debug builds, avoids issues like recent AO one from happening.

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

M	source/blender/compositor/operations/COM_RenderLayersProg.cpp

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

diff --git a/source/blender/compositor/operations/COM_RenderLayersProg.cpp b/source/blender/compositor/operations/COM_RenderLayersProg.cpp
index 27936c2..121998b 100644
--- a/source/blender/compositor/operations/COM_RenderLayersProg.cpp
+++ b/source/blender/compositor/operations/COM_RenderLayersProg.cpp
@@ -135,6 +135,27 @@ void RenderLayersBaseProg::executePixelSampled(float output[4], float x, float y
 	int iy = y - dy;
 #endif
 
+#ifndef NDEBUG
+	{
+		const DataType data_type = this->getOutputSocket()->getDataType();
+		int actual_element_size = this->m_elementsize;
+		int expected_element_size;
+		if (data_type == COM_DT_VALUE) {
+			expected_element_size = 1;
+		}
+		else if (data_type == COM_DT_VECTOR) {
+			expected_element_size = 3;
+		}
+		else if (data_type == COM_DT_COLOR) {
+			expected_element_size = 4;
+		}
+		else {
+			BLI_assert(!"Something horribly wrong just happened");
+		}
+		BLI_assert(expected_element_size == actual_element_size);
+	}
+#endif
+
 	if (this->m_inputBuffer == NULL) {
 		int elemsize = this->m_elementsize;
 		if (elemsize == 1) {




More information about the Bf-blender-cvs mailing list