forked from qt-creator/qt-creator
		
	cplusplus: PPToken - introduce move constructor
				
					
				
			profiling qt-creator on my codebase i saw quite a few instances where reference counting of `QByteArray` showed up in `Preprocessor::handleFunctionLikeMacro` (hundreds of milliseconds of CPU time when profiling for a few seconds). using move semantics we can avoid this source of reference counting. Change-Id: I19a88a0501064f53d8095f7377bf901e462d25a0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
		| @@ -1219,12 +1219,12 @@ bool Preprocessor::handleFunctionLikeMacro(const Macro *macro, | ||||
|                 // No formal macro parameter for this identifier in the body. | ||||
|                 bodyTk.f.generated = true; | ||||
|                 bodyTk.lineno = baseLine; | ||||
|                 expanded.push_back(bodyTk); | ||||
|                 expanded.push_back(std::move(bodyTk)); | ||||
|             } | ||||
|         } else if (bodyTk.isNot(T_POUND) && bodyTk.isNot(T_POUND_POUND)) { | ||||
|             bodyTk.f.generated = true; | ||||
|             bodyTk.lineno = baseLine; | ||||
|             expanded.push_back(bodyTk); | ||||
|             expanded.push_back(std::move(bodyTk)); | ||||
|         } | ||||
|  | ||||
|         if (i > 1 && body[int(i) - 1].is(T_POUND_POUND)) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user