瀏覽代碼

Use const reference instead of copy constructor.

Sascha Zelzer 14 年之前
父節點
當前提交
32d4469d1d
共有 2 個文件被更改,包括 5 次插入4 次删除
  1. 3 2
      Libs/PluginFramework/ctkPluginContext.cpp
  2. 2 2
      Libs/PluginFramework/ctkPluginContext.h

+ 3 - 2
Libs/PluginFramework/ctkPluginContext.cpp

@@ -153,7 +153,7 @@ ctkServiceReference ctkPluginContext::getServiceReference(const QString& clazz)
 }
 
 //----------------------------------------------------------------------------
-QObject* ctkPluginContext::getService(ctkServiceReference reference)
+QObject* ctkPluginContext::getService(const ctkServiceReference& reference)
 {
   Q_D(ctkPluginContext);
   d->isPluginContextValid();
@@ -162,7 +162,8 @@ QObject* ctkPluginContext::getService(ctkServiceReference reference)
   {
     throw std::invalid_argument("Default constructed ctkServiceReference is not a valid input to getService()");
   }
-  return reference.d_func()->getService(d->plugin->q_func());
+  ctkServiceReference internalRef(reference);
+  return internalRef.d_func()->getService(d->plugin->q_func());
 }
 
 //----------------------------------------------------------------------------

+ 2 - 2
Libs/PluginFramework/ctkPluginContext.h

@@ -438,7 +438,7 @@ public:
    * @see #ungetService(const ctkServiceReference&)
    * @see ctkServiceFactory
    */
-  QObject* getService(ctkServiceReference reference);
+  QObject* getService(const ctkServiceReference& reference);
 
   /**
    * Returns the service object referenced by the specified
@@ -464,7 +464,7 @@ public:
    * @see ctkServiceFactory
    */
   template<class S>
-  S* getService(ctkServiceReference reference)
+  S* getService(const ctkServiceReference& reference)
   {
     return qobject_cast<S*>(getService(reference));
   }