PT_ERR_TILE_DIM and PT_ERR_TILE_ZOOM
authorTero Marttila <terom@fixme.fi>
Mon, 25 Jan 2010 04:33:38 +0200
changeset 86 d4a62899587f
parent 85 bbc12563752a
child 87 ecd87b41e884
PT_ERR_TILE_DIM and PT_ERR_TILE_ZOOM
include/pngtile.h
src/lib/error.c
src/lib/png.c
src/lib/tile.c
--- a/include/pngtile.h	Mon Jan 25 04:29:32 2010 +0200
+++ b/include/pngtile.h	Mon Jan 25 04:33:38 2010 +0200
@@ -236,13 +236,14 @@
     PT_ERR_CACHE_VERSION,
     PT_ERR_CACHE_MUNMAP,
     PT_ERR_CACHE_CLOSE,
-
+    
+    PT_ERR_TILE_DIM,
     PT_ERR_TILE_CLIP,
+    PT_ERR_TILE_ZOOM,
 
     PT_ERR_PTHREAD_CREATE,
     PT_ERR_CTX_SHUTDOWN,
 
-    PT_ERR_ZOOM,
 
     PT_ERR_MAX,
 };
--- a/src/lib/error.c	Mon Jan 25 04:29:32 2010 +0200
+++ b/src/lib/error.c	Mon Jan 25 04:33:38 2010 +0200
@@ -34,8 +34,9 @@
     [PT_ERR_PTHREAD_CREATE]     = "pthread_create",
     [PT_ERR_CTX_SHUTDOWN]       = "pt_ctx is shutting down",
 
+    [PT_ERR_TILE_DIM]           = "Invalid tile dimensions",
     [PT_ERR_TILE_CLIP]          = "Tile outside of image",
-    [PT_ERR_ZOOM]               = "Invalid zoom level",
+    [PT_ERR_TILE_ZOOM]          = "Invalid zoom level",
 };
 
 const char *pt_strerror (int err)
--- a/src/lib/png.c	Mon Jan 25 04:29:32 2010 +0200
+++ b/src/lib/png.c	Mon Jan 25 04:33:38 2010 +0200
@@ -444,7 +444,7 @@
     
     // only supports zooming out...
     if (ti->zoom >= 0)
-        RETURN_ERROR(PT_ERR_ZOOM);
+        RETURN_ERROR(PT_ERR_TILE_ZOOM);
 
     if ((row_buf = malloc(row_bytes)) == NULL)
         RETURN_ERROR(PT_ERR_MEM);
--- a/src/lib/tile.c	Mon Jan 25 04:29:32 2010 +0200
+++ b/src/lib/tile.c	Mon Jan 25 04:33:38 2010 +0200
@@ -78,6 +78,10 @@
 
 int pt_tile_render (struct pt_tile *tile)
 {
+    // validate dimensions
+    if (!tile->info.width || !tile->info.height)
+        RETURN_ERROR(PT_ERR_TILE_DIM);
+
     return pt_cache_tile(tile->cache, tile);
 }