[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49767] trunk/blender/source/blender/ compositor/intern/COM_MemoryBuffer.h: add asserts in MemoryBuffer. readNoCheck() so it raises an error when used incorrectly in debug mode.

Campbell Barton ideasman42 at gmail.com
Fri Aug 10 14:38:54 CEST 2012


Revision: 49767
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49767
Author:   campbellbarton
Date:     2012-08-10 12:38:53 +0000 (Fri, 10 Aug 2012)
Log Message:
-----------
add asserts in MemoryBuffer.readNoCheck() so it raises an error when used incorrectly in debug mode.

Modified Paths:
--------------
    trunk/blender/source/blender/compositor/intern/COM_MemoryBuffer.h

Modified: trunk/blender/source/blender/compositor/intern/COM_MemoryBuffer.h
===================================================================
--- trunk/blender/source/blender/compositor/intern/COM_MemoryBuffer.h	2012-08-10 11:43:53 UTC (rev 49766)
+++ trunk/blender/source/blender/compositor/intern/COM_MemoryBuffer.h	2012-08-10 12:38:53 UTC (rev 49767)
@@ -29,6 +29,8 @@
 #include "BLI_rect.h"
 #include "COM_MemoryProxy.h"
 
+#include "MEM_guardedalloc.h"
+
 extern "C" {
 	//#include "BLI_threads.h"
 	#include "BLI_math.h"
@@ -147,6 +149,18 @@
 		const int dx = x - this->m_rect.xmin;
 		const int dy = y - this->m_rect.ymin;
 		const int offset = (this->m_chunkWidth * dy + dx) * COM_NUMBER_OF_CHANNELS;
+
+		BLI_assert(offset >= 0);
+		BLI_assert(offset < this->determineBufferSize() * COM_NUMBER_OF_CHANNELS);
+		BLI_assert(x >= this->m_rect.xmin && x < this->m_rect.xmax &&
+		           y >= this->m_rect.ymin && y < this->m_rect.ymax);
+
+#if 0
+		/* always true */
+		BLI_assert((int)(MEM_allocN_len(this->m_buffer) / sizeof(*this->m_buffer)) ==
+		           (int)(this->determineBufferSize() * COM_NUMBER_OF_CHANNELS));
+#endif
+
 		copy_v4_v4(result, &this->m_buffer[offset]);
 	}
 	




More information about the Bf-blender-cvs mailing list