Mesa (master): i965: Make vec4_visitor's destructor virtual
Iago Toral Quiroga
itoral at kemper.freedesktop.org
Mon Oct 5 11:52:54 UTC 2015
Module: Mesa
Branch: master
Commit: 73e0dfbaca2fd334fd3505412bf0d38054affd25
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=73e0dfbaca2fd334fd3505412bf0d38054affd25
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Mon Oct 5 09:02:54 2015 +0200
i965: Make vec4_visitor's destructor virtual
We need a virtual destructor when at least one of the class' methods is virtual.
Failure to do so might lead to undefined behavior when destructing derived classes.
Fixes the following warning:
brw_vec4_gs_visitor.cpp: In function 'const unsigned int* brw::brw_gs_emit(brw_context*, gl_shader_program*, brw_gs_compile*, void*, unsigned int*)':
brw_vec4_gs_visitor.cpp:703:11: warning: deleting object of polymorphic class type 'brw::vec4_gs_visitor' which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
delete gs;
Curro: This shouldn't be causing any actual bugs at the moment because
gen6_gs_visitor is the only subclass of vec4_visitor destroyed through
a pointer of a base class (vec4_gs_visitor *) and its destructor is
basically the same as its parent's. Anyway it seems sensible to change
this so it doesn't bite us in the future.
Reviewed-by: Francisco Jerez <currojerez at riseup.net>
---
src/mesa/drivers/dri/i965/brw_vec4.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h b/src/mesa/drivers/dri/i965/brw_vec4.h
index d1fa095..5e3500c 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.h
+++ b/src/mesa/drivers/dri/i965/brw_vec4.h
@@ -76,7 +76,7 @@ public:
void *mem_ctx,
bool no_spills,
int shader_time_index);
- ~vec4_visitor();
+ virtual ~vec4_visitor();
dst_reg dst_null_f()
{
More information about the mesa-commit
mailing list