From 251a6582069b6cd1b99593cd5c4dfa6d4342c03d Mon Sep 17 00:00:00 2001 From: Yuriy Liskov Date: Mon, 7 Jul 2025 16:11:44 +0300 Subject: [PATCH] dialog: stackoverflow fix --- .../common/app/presenters/AppDialogPresenter.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/presenters/AppDialogPresenter.java b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/presenters/AppDialogPresenter.java index 9d164c8d1..54f0bbb92 100644 --- a/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/presenters/AppDialogPresenter.java +++ b/common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/presenters/AppDialogPresenter.java @@ -57,13 +57,19 @@ public class AppDialogPresenter extends BasePresenter { super.onFinish(); clear(); - for (Runnable callback : mOnFinish) { + if (mOnFinish.isEmpty()) { + return; + } + + // Copy-then-Clear approach to fix possible stackoverflow + List callbacks = new ArrayList<>(mOnFinish); + mOnFinish.clear(); + + for (Runnable callback : callbacks) { if (callback != null) { callback.run(); } } - - mOnFinish.clear(); } private void clear() {