From d93acb841f5d78a25ced74e01c984c1604459e5e Mon Sep 17 00:00:00 2001 From: Howaner Date: Thu, 30 Oct 2014 22:04:04 +0100 Subject: Fixed m_SentChunks list chunk removing. --- src/ClientHandle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/ClientHandle.cpp b/src/ClientHandle.cpp index faee05450..94bace43a 100644 --- a/src/ClientHandle.cpp +++ b/src/ClientHandle.cpp @@ -557,7 +557,7 @@ void cClientHandle::UnloadOutOfRangeChunks(void) for (cChunkCoordsList::iterator itr = ChunksToRemove.begin(); itr != ChunksToRemove.end(); ++itr) { m_Player->GetWorld()->RemoveChunkClient(itr->m_ChunkX, itr->m_ChunkZ, this); - m_Protocol->SendUnloadChunk(itr->m_ChunkX, itr->m_ChunkZ); + SendUnloadChunk(itr->m_ChunkX, itr->m_ChunkZ); } } -- cgit v1.2.3 From e2ffd5429c22753916b207f5fea5a01a65a31987 Mon Sep 17 00:00:00 2001 From: Mattes D Date: Fri, 31 Oct 2014 19:23:47 +0100 Subject: Fixed missing CS lock in cChunkMap::WakeUpSimulatorsInArea(). --- src/ChunkMap.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/ChunkMap.cpp b/src/ChunkMap.cpp index 595040a54..8a8f17a1b 100644 --- a/src/ChunkMap.cpp +++ b/src/ChunkMap.cpp @@ -822,6 +822,7 @@ void cChunkMap::WakeUpSimulatorsInArea(int a_MinBlockX, int a_MaxBlockX, int a_M int MinChunkX, MinChunkZ, MaxChunkX, MaxChunkZ; cChunkDef::BlockToChunk(a_MinBlockX, a_MinBlockZ, MinChunkX, MinChunkZ); cChunkDef::BlockToChunk(a_MaxBlockX, a_MaxBlockZ, MaxChunkX, MaxChunkZ); + cCSLock Lock(m_CSLayers); for (int z = MinChunkZ; z <= MaxChunkZ; z++) { int MinZ = std::max(a_MinBlockZ, z * cChunkDef::Width); -- cgit v1.2.3 From 2b7f34515a837ea02ebd19be3326b490f33ad012 Mon Sep 17 00:00:00 2001 From: Mattes D Date: Fri, 31 Oct 2014 19:25:31 +0100 Subject: cLuaState: Fixed errors on non-existent callbacks. This mostly affected table-based callbacks, such as the cLineBlockTracer. If a callback didn't exist, the code would still push its arguments on the stack, breaking the next callback. --- src/Bindings/LuaState.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/Bindings/LuaState.h b/src/Bindings/LuaState.h index d1e9923b4..c13e36188 100644 --- a/src/Bindings/LuaState.h +++ b/src/Bindings/LuaState.h @@ -247,7 +247,11 @@ public: template bool Call(const FnT & a_Function, Args &&... args) { - PushFunction(a_Function); + if (!PushFunction(a_Function)) + { + // Pushing the function failed + return false; + } return PushCallPop(args...); } -- cgit v1.2.3