From 327af26d8d5421983a10693bb9039de31a5788be Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Fri, 9 Jan 2015 14:17:31 +0100 Subject: V4 IR: move the MemberResolver out of IR::Temp. Temps are copied around a lot. This patch reduces the size by storing a single pointer to the resolver. Change-Id: I074b8b729fce310542cf4697ef42107085b304b3 Reviewed-by: Simon Hausmann Reviewed-by: Robin Burchell --- src/qml/compiler/qv4jsir_p.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/qml/compiler/qv4jsir_p.h') diff --git a/src/qml/compiler/qv4jsir_p.h b/src/qml/compiler/qv4jsir_p.h index 41de23809c..c6a192e14a 100644 --- a/src/qml/compiler/qv4jsir_p.h +++ b/src/qml/compiler/qv4jsir_p.h @@ -368,23 +368,25 @@ struct Q_AUTOTEST_EXPORT Temp: Expr { StackSlot }; + // Used when temp is used as base in member expression + MemberExpressionResolver *memberResolver; + unsigned index : 28; - unsigned kind : 3; unsigned isReadOnly : 1; - // Used when temp is used as base in member expression - MemberExpressionResolver memberResolver; + unsigned kind : 3; Temp() - : index((1 << 28) - 1) - , kind(Invalid) + : memberResolver(0) + , index((1 << 28) - 1) , isReadOnly(0) + , kind(Invalid) {} void init(unsigned kind, unsigned index) { - this->kind = kind; this->index = index; this->isReadOnly = false; + this->kind = kind; } bool isInvalid() const { return kind == Invalid; } -- cgit v1.2.3