From c360d683e0aebe3f6a56257f200cafc7b6849834 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Fri, 16 Nov 2012 09:40:15 +0000 Subject: Fixed crashes caused LightingThread overwriting memory where it shouldn't (yay valgrind!) git-svn-id: http://mc-server.googlecode.com/svn/trunk@1046 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/LightingThread.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/LightingThread.h') diff --git a/source/LightingThread.h b/source/LightingThread.h index a19bc548e..498755025 100644 --- a/source/LightingThread.h +++ b/source/LightingThread.h @@ -146,7 +146,7 @@ protected: int & a_NumSeedsOut, unsigned char * a_IsSeedOut, unsigned int * a_SeedIdxOut ); - /// Compresses from 1-byte-per-block into 2-bytes-per-block: + /// Compresses from 1-block-per-byte (faster calc) into 2-blocks-per-byte (MC storage): void CompressLight(NIBBLETYPE * a_LightArray, NIBBLETYPE * a_ChunkLight); inline void PropagateLight( @@ -155,6 +155,11 @@ protected: int & a_NumSeedsOut, unsigned char * a_IsSeedOut, unsigned int * a_SeedIdxOut ) { + ASSERT(a_SrcIdx >= 0); + ASSERT(a_SrcIdx < ARRAYCOUNT(m_SkyLight)); + ASSERT(a_DstIdx >= 0); + ASSERT(a_DstIdx < ARRAYCOUNT(m_BlockTypes)); + if (a_Light[a_SrcIdx] <= a_Light[a_DstIdx] + g_BlockSpreadLightFalloff[m_BlockTypes[a_DstIdx]]) { // We're not offering more light than the dest block already has -- cgit v1.2.3