Преглед изворни кода

fix dangling pointer in destroyWindow JNI bind

mikymod пре 12 година
родитељ
комит
ca4e8043f4
4 измењених фајлова са 7 додато и 15 уклоњено
  1. 0 6
      engine/Device.cpp
  2. 0 2
      engine/Device.h
  3. 0 7
      engine/os/android/AndroidDevice.cpp
  4. 7 0
      engine/os/android/OsWindow.cpp

+ 0 - 6
engine/Device.cpp

@@ -560,12 +560,6 @@ void Device::reload(ResourceId name)
 	(void)name;
 }
 
-//-----------------------------------------------------------------------------
-void Device::destroy_window()
-{
-	CE_DELETE(default_allocator(), m_window);
-}
-
 //-----------------------------------------------------------------------------
 void Device::parse_command_line(int argc, char** argv)
 {

+ 0 - 2
engine/Device.h

@@ -117,8 +117,6 @@ public:
 
 	void					reload(ResourceId name);
 
-	void					destroy_window();
-
 	Filesystem*				filesystem();
 	ResourceManager*		resource_manager();
 	InputManager*			input_manager();

+ 0 - 7
engine/os/android/AndroidDevice.cpp

@@ -88,13 +88,6 @@ extern "C" JNIEXPORT void JNICALL Java_crown_android_CrownLib_frame(JNIEnv* /*en
 	device()->frame();
 }
 
-//-----------------------------------------------------------------------------
-extern "C" JNIEXPORT void JNICALL Java_crown_android_CrownLib_destroyWindow(JNIEnv* /*env*/, jobject /*obj*/)
-{
-	device()->destroy_window();
-	Log::i("Window destroyed");
-}
-
 //-----------------------------------------------------------------------------
 extern "C" JNIEXPORT void JNICALL Java_crown_android_CrownLib_initRenderer(JNIEnv* /*env*/, jobject /*obj*/)
 {

+ 7 - 0
engine/os/android/OsWindow.cpp

@@ -130,4 +130,11 @@ extern "C" void Java_crown_android_CrownLib_createWindow(JNIEnv *env, jclass /*c
     Log::i("Window created");
 }
 
+//-----------------------------------------------------------------------------
+extern "C" void Java_crown_android_CrownLib_destroyWindow(JNIEnv *env, jclass /*clazz*/, jobject surface)
+{
+    ANativeWindow_release(g_android_window);
+    Log::i("Window destroyed");
+}
+
 } // namespace crown