Kaynağa Gözat

Fix SubViewport/AudioStreamPlayer2D crash

Updated Viewport destructor to remove itself from World2D, to avoid World2D keeping invalid pointers.
aaronp64 1 yıl önce
ebeveyn
işleme
7a9acd5aca
1 değiştirilmiş dosya ile 3 ekleme ve 0 silme
  1. 3 0
      scene/main/viewport.cpp

+ 3 - 0
scene/main/viewport.cpp

@@ -5048,6 +5048,9 @@ Viewport::~Viewport() {
 	for (ViewportTexture *E : viewport_textures) {
 		E->vp = nullptr;
 	}
+	if (world_2d.is_valid()) {
+		world_2d->remove_viewport(this);
+	}
 	ERR_FAIL_NULL(RenderingServer::get_singleton());
 	RenderingServer::get_singleton()->free(viewport);
 }