From 3f98fb7f63fc16dd8d23686f68c726de57ce13cc Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 21 Dec 2010 13:58:13 +0100 Subject: [PATCH] debugger: reduce the number of PluginManager::getObject() calls --- src/plugins/debugger/watchutils.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/plugins/debugger/watchutils.cpp b/src/plugins/debugger/watchutils.cpp index 253116adfde..65a2c97453d 100644 --- a/src/plugins/debugger/watchutils.cpp +++ b/src/plugins/debugger/watchutils.cpp @@ -709,6 +709,16 @@ bool currentTextEditorPosition(QString *fileNameIn /* = 0 */, return !fileName.isEmpty(); } +static CppTools::CppModelManagerInterface *cppModelManager() +{ + using namespace CppTools; + static QPointer modelManager; + if (!modelManager.data()) + modelManager = ExtensionSystem::PluginManager::instance()-> + getObject(); + return modelManager.data(); +} + // Return the Cpp expression, and, if desired, the function QString cppExpressionAt(TextEditor::ITextEditor *editor, int pos, int *line, int *column, QString *function /* = 0 */) @@ -723,9 +733,7 @@ QString cppExpressionAt(TextEditor::ITextEditor *editor, int pos, return QByteArray(); QString expr = plaintext->textCursor().selectedText(); - CppModelManagerInterface *modelManager = - ExtensionSystem::PluginManager::instance()-> - getObject(); + CppModelManagerInterface *modelManager = cppModelManager(); if (expr.isEmpty() && modelManager) { QTextCursor tc(plaintext->document()); tc.setPosition(pos);