intel: Kill dead code in intel_miptree_copy_teximage()
authorChad Versace <chad@chad-versace.us>
Mon, 24 Oct 2011 20:55:43 +0000 (13:55 -0700)
committerChad Versace <chad@chad-versace.us>
Tue, 25 Oct 2011 18:28:32 +0000 (11:28 -0700)
Kill the code paths taken when src_mt is null. It is never null, otherwise
there would be a segfault on line 4 of this function:
    GLuint width = src_mt->level[level].width;

(Some interleaved lines in the diff make the real diff non-obvious. All
I did was delete some code and then left-shifted what remained to correct
the indentation.)

Reviewed-by: Eric Anholt <eric@aholt.net>
Signed-off-by: Chad Versace <chad@chad-versace.us>
src/mesa/drivers/dri/intel/intel_mipmap_tree.c

index 9eb81deb78a82d54117335a8d92cf854b3e6f94b..54f73e8b47b70e1ed001fd458fc7862ca6b4ce3d 100644 (file)
@@ -371,75 +371,44 @@ intel_miptree_copy_teximage(struct intel_context *intel,
       intel_miptree_get_image_offset(dst_mt, level, face, slice,
                                     &dst_x, &dst_y);
 
-      if (src_mt) {
-        /* Copy potentially with the blitter:
-         */
-        intel_miptree_get_image_offset(src_mt, level, face, slice,
-                                       &src_x, &src_y);
-
-        DBG("validate blit mt %p %d,%d/%d -> mt %p %d,%d/%d (%dx%d)\n",
-            src_mt, src_x, src_y, src_mt->region->pitch * src_mt->region->cpp,
-            dst_mt, dst_x, dst_y, dst_mt->region->pitch * dst_mt->region->cpp,
-            width, height);
-
-        if (!intelEmitCopyBlit(intel,
-                               dst_mt->region->cpp,
-                               src_mt->region->pitch, src_mt->region->bo,
-                               0, src_mt->region->tiling,
-                               dst_mt->region->pitch, dst_mt->region->bo,
-                               0, dst_mt->region->tiling,
-                               src_x, src_y,
-                               dst_x, dst_y,
-                               width, height,
-                               GL_COPY)) {
-
-           fallback_debug("miptree validate blit for %s failed\n",
-                          _mesa_get_format_name(intelImage->base.Base.TexFormat));
-           dst = intel_region_map(intel, dst_mt->region, GL_MAP_WRITE_BIT);
-           src = intel_region_map(intel, src_mt->region, GL_MAP_READ_BIT);
-
-           _mesa_copy_rect(dst,
-                           dst_mt->cpp,
-                           dst_mt->region->pitch,
-                           dst_x, dst_y,
-                           width, height,
-                           src, src_mt->region->pitch,
-                           src_x, src_y);
-
-           intel_region_unmap(intel, dst_mt->region);
-           intel_region_unmap(intel, src_mt->region);
-        }
-      } else {
+      /* Copy potentially with the blitter:
+       */
+      intel_miptree_get_image_offset(src_mt, level, face, slice,
+                                    &src_x, &src_y);
+
+      DBG("validate blit mt %p %d,%d/%d -> mt %p %d,%d/%d (%dx%d)\n",
+         src_mt, src_x, src_y, src_mt->region->pitch * src_mt->region->cpp,
+         dst_mt, dst_x, dst_y, dst_mt->region->pitch * dst_mt->region->cpp,
+         width, height);
+
+      if (!intelEmitCopyBlit(intel,
+                            dst_mt->region->cpp,
+                            src_mt->region->pitch, src_mt->region->bo,
+                            0, src_mt->region->tiling,
+                            dst_mt->region->pitch, dst_mt->region->bo,
+                            0, dst_mt->region->tiling,
+                            src_x, src_y,
+                            dst_x, dst_y,
+                            width, height,
+                            GL_COPY)) {
+
+        fallback_debug("miptree validate blit for %s failed\n",
+                       _mesa_get_format_name(intelImage->base.Base.TexFormat));
         dst = intel_region_map(intel, dst_mt->region, GL_MAP_WRITE_BIT);
-
-        DBG("validate upload mt %p -> mt %p %d,%d/%d (%dx%d)\n",
-            src,
-            dst_mt, dst_x, dst_y, dst_mt->region->pitch * dst_mt->region->cpp,
-            width, height);
-
-        src = intelImage->base.Data;
-        src += (intelImage->base.RowStride *
-                intelImage->base.Base.Height *
-                dst_mt->region->cpp *
-                slice);
+        src = intel_region_map(intel, src_mt->region, GL_MAP_READ_BIT);
 
         _mesa_copy_rect(dst,
-                        dst_mt->region->cpp,
+                        dst_mt->cpp,
                         dst_mt->region->pitch,
                         dst_x, dst_y,
                         width, height,
-                        src,
-                        intelImage->base.RowStride,
-                        0, 0);
+                        src, src_mt->region->pitch,
+                        src_x, src_y);
 
         intel_region_unmap(intel, dst_mt->region);
+        intel_region_unmap(intel, src_mt->region);
       }
    }
 
-   if (!src_mt && intelImage->base.Data) {
-      _mesa_align_free(intelImage->base.Data);
-      intelImage->base.Data = NULL;
-   }
-
    intel_miptree_reference(&intelImage->mt, dst_mt);
 }