浏览代码

Added clearing of callbacks on window destruction.

Camilla Berglund 12 年之前
父节点
当前提交
be7ad339f7
共有 1 个文件被更改,包括 14 次插入0 次删除
  1. 14 0
      src/window.c

+ 14 - 0
src/window.c

@@ -494,6 +494,20 @@ GLFWAPI void glfwDestroyWindow(GLFWwindow handle)
     if (window == NULL)
     if (window == NULL)
         return;
         return;
 
 
+    // Clear all callbacks to avoid exposing a half torn-down window object
+    window->windowPosCallback = NULL;
+    window->windowSizeCallback = NULL;
+    window->windowCloseCallback = NULL;
+    window->windowRefreshCallback = NULL;
+    window->windowFocusCallback = NULL;
+    window->windowIconifyCallback = NULL;
+    window->mouseButtonCallback = NULL;
+    window->cursorPosCallback = NULL;
+    window->cursorEnterCallback = NULL;
+    window->scrollCallback = NULL;
+    window->keyCallback = NULL;
+    window->charCallback = NULL;
+
     // The window's context must not be current on another thread when the
     // The window's context must not be current on another thread when the
     // window is destroyed
     // window is destroyed
     if (window == _glfwPlatformGetCurrentContext())
     if (window == _glfwPlatformGetCurrentContext())