swr: refactor swr_create_screen to allow for proper cleanup on error
This makes the following changes to address cleanup issues: - Error conditions now return NULL instead of calling exit() - swr_creen is now freed upon error, rather than leak. - Library handle from dlopen is now closed upon swr_screen destruction v2: Added additional context in commit msg and remove unnecessary "PUBLIC" v3: Fix typo in commit message. Signed-off-by:Chuck Atkins <chuck.atkins@kitware.com> Reviewed-by:
Emil Velikov <emil.velikov@collabora.com> Cc: Bruce Cherniak <bruce.cherniak@intel.com> Cc: Tim Rowley <timothy.o.rowley@intel.com> cc: mesa-stable@lists.freedesktop.org
- src/gallium/drivers/swr/swr_loader.cpp 51 additions, 49 deletionssrc/gallium/drivers/swr/swr_loader.cpp
- src/gallium/drivers/swr/swr_public.h 5 additions, 1 deletionsrc/gallium/drivers/swr/swr_public.h
- src/gallium/drivers/swr/swr_screen.cpp 20 additions, 6 deletionssrc/gallium/drivers/swr/swr_screen.cpp
- src/gallium/drivers/swr/swr_screen.h 3 additions, 0 deletionssrc/gallium/drivers/swr/swr_screen.h