summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/qml/compiler/qv4bytecodegenerator.cpp4
-rw-r--r--src/qml/compiler/qv4instr_moth.cpp6
-rw-r--r--src/qml/compiler/qv4instr_moth_p.h8
3 files changed, 10 insertions, 8 deletions
diff --git a/src/qml/compiler/qv4bytecodegenerator.cpp b/src/qml/compiler/qv4bytecodegenerator.cpp
index dfdb71b253..78f9639ddd 100644
--- a/src/qml/compiler/qv4bytecodegenerator.cpp
+++ b/src/qml/compiler/qv4bytecodegenerator.cpp
@@ -75,7 +75,7 @@ void BytecodeGenerator::packInstruction(I &i)
if (type >= MOTH_NUM_INSTRUCTIONS())
type -= MOTH_NUM_INSTRUCTIONS();
int instructionsAsInts[sizeof(Instr)/sizeof(int)];
- int nMembers = Moth::Instr::argumentCount[static_cast<int>(i.type)];
+ int nMembers = Moth::InstrInfo::argumentCount[static_cast<int>(i.type)];
memcpy(instructionsAsInts, i.packed + 1, nMembers*sizeof(int));
enum {
Normal,
@@ -182,7 +182,7 @@ void BytecodeGenerator::finalize(Compiler::Context *context)
int BytecodeGenerator::addInstructionHelper(Instr::Type type, const Instr &i, int offsetOfOffset) {
int pos = instructions.size();
- int s = Moth::Instr::argumentCount[static_cast<int>(type)]*sizeof(int);
+ int s = Moth::InstrInfo::argumentCount[static_cast<int>(type)]*sizeof(int);
if (offsetOfOffset != -1)
offsetOfOffset += 1;
I instr{type, static_cast<short>(s + 1), 0, currentLine, offsetOfOffset, -1, "\0\0" };
diff --git a/src/qml/compiler/qv4instr_moth.cpp b/src/qml/compiler/qv4instr_moth.cpp
index 20917a5ee3..1cc8abcd24 100644
--- a/src/qml/compiler/qv4instr_moth.cpp
+++ b/src/qml/compiler/qv4instr_moth.cpp
@@ -43,9 +43,9 @@
using namespace QV4;
using namespace QV4::Moth;
-int Instr::size(Type type)
+int InstrInfo::size(Instr::Type type)
{
-#define MOTH_RETURN_INSTR_SIZE(I) case Type::I: return InstrMeta<(int)Type::I>::Size;
+#define MOTH_RETURN_INSTR_SIZE(I) case Instr::Type::I: return InstrMeta<int(Instr::Type::I)>::Size;
switch (type) {
FOR_EACH_MOTH_INSTR(MOTH_RETURN_INSTR_SIZE)
}
@@ -120,7 +120,7 @@ QT_BEGIN_NAMESPACE
namespace QV4 {
namespace Moth {
-const int Instr::argumentCount[] = {
+const int InstrInfo::argumentCount[] = {
FOR_EACH_MOTH_INSTR(MOTH_COLLECT_NARGS)
};
diff --git a/src/qml/compiler/qv4instr_moth_p.h b/src/qml/compiler/qv4instr_moth_p.h
index 8234f1261e..39309aad2b 100644
--- a/src/qml/compiler/qv4instr_moth_p.h
+++ b/src/qml/compiler/qv4instr_moth_p.h
@@ -475,13 +475,15 @@ union Instr
FOR_EACH_MOTH_INSTR(MOTH_INSTR_ENUM)
};
- static const int argumentCount[];
-
FOR_EACH_MOTH_INSTR(MOTH_EMIT_STRUCTS)
FOR_EACH_MOTH_INSTR(MOTH_EMIT_INSTR_MEMBERS)
+};
- static int size(Type type);
+struct InstrInfo
+{
+ static const int argumentCount[];
+ static int size(Instr::Type type);
};
Q_STATIC_ASSERT(MOTH_NUM_INSTRUCTIONS() < 128);