refactor: Remove empty caption from ThreadSafeQuestion
What changed, and why it matters
This is a straightforward code cleanup: a function that asks the user questions used to accept an unused 'caption' parameter. The only caller always passed an empty caption, so the developer removed the parameter entirely. No behavior changes, no security implications.
No security action needed; this is a benign refactor.
Security signals we found
No strong security signals were identified.
Evidence from the diff
Refactor removing the unused caption parameter from ThreadSafeQuestion and its implementations/callers across init, UI interfaces, noui handlers, and the Qt GUI. The parameter was always empty at the single production call-site, and the test-only redirect function’s log format change is explicitly noted as not a behavior change because it is unused.
Changed components
src/init.cppsrc/interfaces/node.hsrc/node/interface_ui.cppsrc/node/interface_ui.hsrc/noui.cppsrc/noui.hsrc/qt/bitcoingui.cppInspect captured patch +10 / −11
diff --git a/src/init.cpp b/src/init.cpp
index 1823af1f..e353fdfa 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -1819,7 +1819,7 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
uiInterface.ThreadSafeQuestion(
error + Untranslated(".\n\n") + _("Do you want to rebuild the databases now?"),
error.original + ".\nPlease restart with -reindex or -reindex-chainstate to recover.",
- "", CClientUIInterface::MSG_ERROR | CClientUIInterface::BTN_ABORT)};
+ CClientUIInterface::MSG_ERROR | CClientUIInterface::BTN_ABORT)};
if (!do_retry) {
return false;
}
diff --git a/src/interfaces/node.h b/src/interfaces/node.h
index 78a186c5..e01b1cc7 100644
--- a/src/interfaces/node.h
+++ b/src/interfaces/node.h
@@ -225,7 +225,6 @@ public:
//! Register handler for question messages.
using QuestionFn = std::function<bool(const bilingual_str& message,
const std::string& non_interactive_message,
- const std::string& caption,
unsigned int style)>;
virtual std::unique_ptr<Handler> handleQuestion(QuestionFn fn) = 0;
diff --git a/src/node/interface_ui.cpp b/src/node/interface_ui.cpp
index 89e69f8d..3f3638bf 100644
--- a/src/node/interface_ui.cpp
+++ b/src/node/interface_ui.cpp
@@ -48,7 +48,7 @@ ADD_SIGNALS_IMPL_WRAPPER(NotifyHeaderTip);
ADD_SIGNALS_IMPL_WRAPPER(BannedListChanged);
bool CClientUIInterface::ThreadSafeMessageBox(const bilingual_str& message, const std::string& caption, unsigned int style) { return g_ui_signals.ThreadSafeMessageBox(message, caption, style).value_or(false);}
-bool CClientUIInterface::ThreadSafeQuestion(const bilingual_str& message, const std::string& non_interactive_message, const std::string& caption, unsigned int style) { return g_ui_signals.ThreadSafeQuestion(message, non_interactive_message, caption, style).value_or(false);}
+bool CClientUIInterface::ThreadSafeQuestion(const bilingual_str& message, const std::string& non_interactive_message, unsigned int style) { return g_ui_signals.ThreadSafeQuestion(message, non_interactive_message, style).value_or(false);}
void CClientUIInterface::InitMessage(const std::string& message) { return g_ui_signals.InitMessage(message); }
void CClientUIInterface::InitWallet() { return g_ui_signals.InitWallet(); }
void CClientUIInterface::NotifyNumConnectionsChanged(int newNumConnections) { return g_ui_signals.NotifyNumConnectionsChanged(newNumConnections); }
diff --git a/src/node/interface_ui.h b/src/node/interface_ui.h
index fe937fc7..e2946f63 100644
--- a/src/node/interface_ui.h
+++ b/src/node/interface_ui.h
@@ -77,7 +77,7 @@ public:
ADD_SIGNALS_DECL_WRAPPER(ThreadSafeMessageBox, bool, const bilingual_str& message, const std::string& caption, unsigned int style);
/** If possible, ask the user a question. If not, falls back to ThreadSafeMessageBox(noninteractive_message, caption, style) and returns false. */
- ADD_SIGNALS_DECL_WRAPPER(ThreadSafeQuestion, bool, const bilingual_str& message, const std::string& noninteractive_message, const std::string& caption, unsigned int style);
+ ADD_SIGNALS_DECL_WRAPPER(ThreadSafeQuestion, bool, const bilingual_str& message, const std::string& noninteractive_message, unsigned int style);
/** Progress message during initialization. */
ADD_SIGNALS_DECL_WRAPPER(InitMessage, void, const std::string& message);
diff --git a/src/noui.cpp b/src/noui.cpp
index 75d5f19f..8f16752d 100644
--- a/src/noui.cpp
+++ b/src/noui.cpp
@@ -47,9 +47,9 @@ bool noui_ThreadSafeMessageBox(const bilingual_str& message, const std::string&
return false;
}
-bool noui_ThreadSafeQuestion(const bilingual_str& /* ignored interactive message */, const std::string& message, const std::string& caption, unsigned int style)
+bool noui_ThreadSafeQuestion(const bilingual_str& /* ignored interactive message */, const std::string& message, unsigned int style)
{
- return noui_ThreadSafeMessageBox(Untranslated(message), caption, style);
+ return noui_ThreadSafeMessageBox(Untranslated(message), /*caption=*/"", style);
}
void noui_InitMessage(const std::string& message)
@@ -70,9 +70,9 @@ bool noui_ThreadSafeMessageBoxRedirect(const bilingual_str& message, const std::
return false;
}
-bool noui_ThreadSafeQuestionRedirect(const bilingual_str& /* ignored interactive message */, const std::string& message, const std::string& caption, unsigned int style)
+bool noui_ThreadSafeQuestionRedirect(const bilingual_str& /* ignored interactive message */, const std::string& message, unsigned int style)
{
- LogInfo("%s: %s", caption, message);
+ LogInfo("%s", message);
return false;
}
diff --git a/src/noui.h b/src/noui.h
index bd07137e..e869fa82 100644
--- a/src/noui.h
+++ b/src/noui.h
@@ -12,7 +12,7 @@ struct bilingual_str;
/** Non-GUI handler, which logs and prints messages. */
bool noui_ThreadSafeMessageBox(const bilingual_str& message, const std::string& caption, unsigned int style);
/** Non-GUI handler, which logs and prints questions. */
-bool noui_ThreadSafeQuestion(const bilingual_str& /* ignored interactive message */, const std::string& message, const std::string& caption, unsigned int style);
+bool noui_ThreadSafeQuestion(const bilingual_str& /* ignored interactive message */, const std::string& message, unsigned int style);
/** Non-GUI handler, which only logs a message. */
void noui_InitMessage(const std::string& message);
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index 69efff6e..13f4cb05 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -1618,8 +1618,8 @@ void BitcoinGUI::subscribeToCoreSignals()
m_handler_message_box = m_node.handleMessageBox([this](const bilingual_str& message, const std::string& caption, unsigned int style) {
return ThreadSafeMessageBox(this, message, caption, style);
});
- m_handler_question = m_node.handleQuestion([this](const bilingual_str& message, const std::string& /*non_interactive_message*/, const std::string& caption, unsigned int style) {
- return ThreadSafeMessageBox(this, message, caption, style);
+ m_handler_question = m_node.handleQuestion([this](const bilingual_str& message, const std::string& /*non_interactive_message*/, unsigned int style) {
+ return ThreadSafeMessageBox(this, message, /*caption=*/"", style);
});
}
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.