From 81baf266581424830ed44d318b059b0a8d54346f Mon Sep 17 00:00:00 2001 From: Phil! Gold Date: Wed, 24 Feb 2016 19:22:00 -0500 Subject: [PATCH] Don't try to render tiles with nonsensical coordinates. I'm not sure where these came from, but I had some invalid tiles kill the renderers. Now those tiles will be ignored. --- queuemaster.py | 3 +++ toposm.py | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/queuemaster.py b/queuemaster.py index 4ec6e81..754a5e5 100755 --- a/queuemaster.py +++ b/queuemaster.py @@ -511,6 +511,9 @@ def send_render_requests(self): renderer.send_request() def handle_render_request(self, t, props): + if not t.is_valid: + log_message('ignoring request for invalid tile: %s' % t) + return if t.exists(REFERENCE_TILESET): importance = 'important' else: diff --git a/toposm.py b/toposm.py index 10f6c6f..b5d7843 100755 --- a/toposm.py +++ b/toposm.py @@ -141,6 +141,15 @@ def is_old(self): else: return tileIsOld(self.z, self.x, self.y) + @property + def is_valid(self): + if self.is_metatile: + return 0 <= self.x and self.x < 2**self.z / NTILES[self.z] and \ + 0 <= self.y and self.y < 2**self.z / NTILES[self.z] + else: + return 0 <= self.x and self.x < 2**self.z and \ + 0 <= self.y and self.y < 2**self.z + def getCachedMetaTileDir(mapname, z, x): return path.join(TEMPDIR, mapname, str(z), str(x))