On 07/26/2013 09:53 PM, Vinson Lee wrote:
On Thu, Jul 25, 2013 at 11:19 PM, Kenneth Graunke <kenn...@whitecape.org> wrote:
On 07/25/2013 10:48 PM, Vinson Lee wrote:

Fixes "Uninitialized scalar field" defect reported by Coverity.

Signed-off-by: Vinson Lee <v...@freedesktop.org>
---
   src/mesa/drivers/dri/i965/brw_blorp_clear.cpp | 3 ++-
   1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
index f26f39d..5234208 100644
--- a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
+++ b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
@@ -119,7 +119,8 @@ private:
   brw_blorp_const_color_program::brw_blorp_const_color_program(
         struct brw_context *brw,
         const brw_blorp_const_color_prog_key *key)
-   : mem_ctx(ralloc_context(NULL)),
+   : prog_data(),
+     mem_ctx(ralloc_context(NULL)),
        brw(brw),
        key(key),
        R0(),


NAK.  Since brw_blorp_prog_data doesn't define a constructor (see
brw_blorp.h:196), adding prog_data() is just a call to the C++ default/empty
constructor.

So this patch doesn't actually initialize anything at all.

struct brw_blorp_prog_data is a POD class with no constructor defined.
'prog_data()' should value-initialize and, in this case,
zero-initialize all fields of prog_data.

You're right - I forgot that explicitly calling the constructor of a POD type zero-initializes fields; it's only constructors for non-POD types that are no-ops.

I still don't like this patch, though...it's really not obvious what's going on.

--Ken
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to