summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/JavaScriptCore/bytecompiler/Label.h
diff options
context:
space:
mode:
authoraxis <qt-info@nokia.com>2009-10-23 09:40:37 (GMT)
committeraxis <qt-info@nokia.com>2009-10-23 09:40:37 (GMT)
commit180d9189e8098d98848367f673fff723ddd1d068 (patch)
treeb052fb1b8361e962884f54aa4d6e6d8dd6f67e73 /src/3rdparty/webkit/JavaScriptCore/bytecompiler/Label.h
parent18acf933474577a4cec31560eeee22de04111e1e (diff)
parent0f6909e8e1be93d16798d31f18c4da2b0b5a084c (diff)
downloadQt-180d9189e8098d98848367f673fff723ddd1d068.zip
Qt-180d9189e8098d98848367f673fff723ddd1d068.tar.gz
Qt-180d9189e8098d98848367f673fff723ddd1d068.tar.bz2
Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/bytecompiler/Label.h')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecompiler/Label.h14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecompiler/Label.h b/src/3rdparty/webkit/JavaScriptCore/bytecompiler/Label.h
index 0b3d038..8cab1db 100644
--- a/src/3rdparty/webkit/JavaScriptCore/bytecompiler/Label.h
+++ b/src/3rdparty/webkit/JavaScriptCore/bytecompiler/Label.h
@@ -51,19 +51,17 @@ namespace JSC {
m_location = location;
unsigned size = m_unresolvedJumps.size();
- for (unsigned i = 0; i < size; ++i) {
- unsigned j = m_unresolvedJumps[i];
- m_codeBlock->instructions()[j].u.operand = m_location - j;
- }
+ for (unsigned i = 0; i < size; ++i)
+ m_codeBlock->instructions()[m_unresolvedJumps[i].second].u.operand = m_location - m_unresolvedJumps[i].first;
}
- int offsetFrom(int location) const
+ int bind(int opcode, int offset) const
{
if (m_location == invalidLocation) {
- m_unresolvedJumps.append(location);
+ m_unresolvedJumps.append(std::make_pair(opcode, offset));
return 0;
}
- return m_location - location;
+ return m_location - opcode;
}
void ref() { ++m_refCount; }
@@ -77,7 +75,7 @@ namespace JSC {
bool isForward() const { return m_location == invalidLocation; }
private:
- typedef Vector<int, 8> JumpVector;
+ typedef Vector<std::pair<int, int>, 8> JumpVector;
static const unsigned invalidLocation = UINT_MAX;