فهرست منبع

video: Added parameter checks to SDL_Vulkan_GetPresentationSupport

Ethan Lee 9 ماه پیش
والد
کامیت
8d24bb8dfc
1فایلهای تغییر یافته به همراه22 افزوده شده و 10 حذف شده
  1. 22 10
      src/video/SDL_video.c

+ 22 - 10
src/video/SDL_video.c

@@ -5530,18 +5530,30 @@ SDL_bool SDL_Vulkan_GetPresentationSupport(VkInstance instance,
                                            VkPhysicalDevice physicalDevice,
                                            Uint32 queueFamilyIndex)
 {
-    if (_this && instance && physicalDevice) {
-        if (_this->Vulkan_GetPresentationSupport) {
-            return _this->Vulkan_GetPresentationSupport(_this, instance, physicalDevice, queueFamilyIndex);
-        }
+    if (!_this) {
+        SDL_UninitializedVideo();
+        return SDL_FALSE;
+    }
 
-        /* If the backend does not have this function then it does not have a
-         * WSI function to query it; in other words it's not necessary to check
-         * as it is always supported.
-         */
-        return SDL_TRUE;
+    if (!instance) {
+        SDL_InvalidParamError("instance");
+        return SDL_FALSE;
     }
-    return SDL_FALSE;
+
+    if (!physicalDevice) {
+        SDL_InvalidParamError("physicalDevice");
+        return SDL_FALSE;
+    }
+
+    if (_this->Vulkan_GetPresentationSupport) {
+        return _this->Vulkan_GetPresentationSupport(_this, instance, physicalDevice, queueFamilyIndex);
+    }
+
+    /* If the backend does not have this function then it does not have a
+     * WSI function to query it; in other words it's not necessary to check
+     * as it is always supported.
+     */
+    return SDL_TRUE;
 }
 
 SDL_MetalView SDL_Metal_CreateView(SDL_Window *window)