[Mesa-dev] [PATCH mesa] anv: don't crash on vkDestroyDevice(NULL)

Eric Engestrom eric.engestrom at intel.com
Thu Jul 26 08:50:13 UTC 2018


On Wednesday, 2018-07-25 14:00:29 -0700, Dylan Baker wrote:
> Quoting Eric Engestrom (2018-07-25 11:45:56)
> > CovID: 1438132
> > Signed-off-by: Eric Engestrom <eric.engestrom at intel.com>
> > ---
> >  src/intel/vulkan/anv_device.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
> > index 04fd6a829ed60081abc4..3664f80c24dc34955196 100644
> > --- a/src/intel/vulkan/anv_device.c
> > +++ b/src/intel/vulkan/anv_device.c
> > @@ -1832,11 +1832,13 @@ void anv_DestroyDevice(
> >      const VkAllocationCallbacks*                pAllocator)
> >  {
> >     ANV_FROM_HANDLE(anv_device, device, _device);
> > -   struct anv_physical_device *physical_device = &device->instance->physicalDevice;
> > +   struct anv_physical_device *physical_device;
> 
> Is there a particular reason to create the pointer her but assign it after the
> null check rather than just move the null check between the ANV_FROM_HANDLE and
> the anv_pysical_device?

Just the habit of always putting variable declarations before any logic ¯\_(ツ)_/¯
I thought that was considered best-practice; has that changed?

> 
> >  
> >     if (!device)
> >        return;
> >  
> > +   physical_device = &device->instance->physicalDevice;
> > +
> >     anv_device_finish_blorp(device);
> >  
> >     anv_pipeline_cache_finish(&device->default_pipeline_cache);
> > -- 
> > Cheers,
> >   Eric
> > 
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev




More information about the mesa-dev mailing list