summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormadmaxoft <github@xoft.cz>2014-04-12 22:35:04 +0200
committermadmaxoft <github@xoft.cz>2014-04-12 22:35:04 +0200
commit34cf058b0257587456632536a54db0d4e119dae1 (patch)
tree4bad77edfc6c1c7302df9bf218c65567dd348fb8
parentFixed chunkstays not being removed on auto-delete. (diff)
downloadcuberite-ProtoProxy_1.7.2_001.tar
cuberite-ProtoProxy_1.7.2_001.tar.gz
cuberite-ProtoProxy_1.7.2_001.tar.bz2
cuberite-ProtoProxy_1.7.2_001.tar.lz
cuberite-ProtoProxy_1.7.2_001.tar.xz
cuberite-ProtoProxy_1.7.2_001.tar.zst
cuberite-ProtoProxy_1.7.2_001.zip
-rw-r--r--src/ChunkStay.cpp5
-rw-r--r--src/ChunkStay.h4
-rw-r--r--src/LightingThread.cpp1
3 files changed, 6 insertions, 4 deletions
diff --git a/src/ChunkStay.cpp b/src/ChunkStay.cpp
index a35ccf58c..b5002a63d 100644
--- a/src/ChunkStay.cpp
+++ b/src/ChunkStay.cpp
@@ -31,10 +31,7 @@ cChunkStay::~cChunkStay()
void cChunkStay::Clear(void)
{
- if (m_ChunkMap != NULL)
- {
- Disable();
- }
+ ASSERT(m_ChunkMap == NULL);
m_Chunks.clear();
}
diff --git a/src/ChunkStay.h b/src/ChunkStay.h
index 2510cb490..29893befc 100644
--- a/src/ChunkStay.h
+++ b/src/ChunkStay.h
@@ -36,8 +36,12 @@ class cChunkStay
{
public:
cChunkStay(void);
+
+ /** Deletes the object. Note that this calls Clear(), which means that the ChunkStay needs to be disabled. */
virtual ~cChunkStay();
+ /** Clears all the chunks that have been added.
+ To be used only while the ChunkStay object is not enabled. */
void Clear(void);
/** Adds a chunk to be locked from unloading.
diff --git a/src/LightingThread.cpp b/src/LightingThread.cpp
index 302473d71..5ba2940d2 100644
--- a/src/LightingThread.cpp
+++ b/src/LightingThread.cpp
@@ -286,6 +286,7 @@ void cLightingThread::LightChunk(cLightingChunkStay & a_Item)
{
a_Item.m_CallbackAfter->Call(a_Item.m_ChunkX, a_Item.m_ChunkZ);
}
+ a_Item.Disable();
delete &a_Item;
}