Răsfoiți Sursa

Event parameters should be passed by reference by default

Marko Pintera 11 ani în urmă
părinte
comite
9e98ec3e3a

+ 2 - 2
BansheeEditor/Source/BsEditorApplication.cpp

@@ -60,9 +60,9 @@ namespace BansheeEngine
 		TmpClass instance;
 		Event<void (int)> myEvent;
 		myEvent += delegate(&instance, &TmpClass::someMEthod);
+		myEvent -= delegate(&instance, &TmpClass::someMEthod);
 
-		int arg = 5;
-		myEvent(arg);
+		myEvent(5);
 
 		// END DEBUG
 

+ 6 - 6
CamelotUtility/Include/BsEvent.h

@@ -14,12 +14,12 @@ namespace BansheeEngine
 	class Delegate1Abstract
 	{
 	public:
-		virtual RetType call(P0& p0) = 0;
+		virtual RetType call(P0 p0) = 0;
 		virtual bool equals(const Delegate1Abstract<P0, RetType>& other) = 0;
 	};
 
 	/************************************************************************/
-	/* 							MEMBER DELEGATE                      		*/
+	/* 						MEMBER FUNCTION DELEGATE                   		*/
 	/************************************************************************/
 
 	// 1 parameter
@@ -31,7 +31,7 @@ namespace BansheeEngine
 			:mInstance(instance), mFunc(func)
 		{ }
 
-		RetType call(P0& p0)
+		RetType call(P0 p0)
 		{
 			(mInstance->*mFunc)(p0);
 		}
@@ -68,7 +68,7 @@ namespace BansheeEngine
 			:mInstance(instance), mFunc(func)
 		{ }
 
-		RetType call(P0& p0)
+		RetType call(P0 p0)
 		{
 			(*mFunc)(p0);
 		}
@@ -92,7 +92,7 @@ namespace BansheeEngine
 	}	
 
 	/************************************************************************/
-	/* 									EVENTS					     		*/
+	/* 								EVENTS									*/
 	/************************************************************************/
 	
 	// 1 parameter
@@ -123,7 +123,7 @@ namespace BansheeEngine
 			}
 		}
 
-		void operator() (P0& args)
+		void operator() (P0 args)
 		{
 			// TODO - Lock each call separately using a spin lock