[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] /srv/bzr/gnash/trunk r9501: Tom Stellard patches for AVM2
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] /srv/bzr/gnash/trunk r9501: Tom Stellard patches for AVM2 (sorry, I missed to use the 'avm2' branch, |
Date: |
Fri, 18 Jul 2008 22:32:33 +0200 |
User-agent: |
Bazaar (1.5) |
------------------------------------------------------------
revno: 9501
committer: Sandro Santilli <address@hidden>
branch nick: trunk
timestamp: Fri 2008-07-18 22:32:33 +0200
message:
Tom Stellard patches for AVM2 (sorry, I missed to use the 'avm2' branch,
still learning)
modified:
server/asClass.cpp
server/parser/abc_block.cpp
------------------------------------------------------------
revno: 9495.1.4
author: Tom Stellard <address@hidden>
committer: Sandro Santilli <address@hidden>
branch nick: mybranch
timestamp: Fri 2008-07-18 22:14:53 +0200
message:
Fix AVM2 multiname parser (patch #6573)
modified:
server/parser/abc_block.cpp
------------------------------------------------------------
revno: 9495.1.5
author: Tom Stellard <address@hidden>
committer: Sandro Santilli <address@hidden>
branch nick: mybranch
timestamp: Fri 2008-07-18 22:16:19 +0200
message:
Use flag value from abc block for multinames (patch #6574)
modified:
server/parser/abc_block.cpp
------------------------------------------------------------
revno: 9495.1.6
author: Tom Stellard <address@hidden>
committer: Sandro Santilli <address@hidden>
branch nick: mybranch
timestamp: Fri 2008-07-18 22:17:31 +0200
message:
Use string constant pool index for namespace names (patch #6575)
modified:
server/parser/abc_block.cpp
------------------------------------------------------------
revno: 9495.1.7
author: Tom Stellard <address@hidden>
committer: Sandro Santilli <address@hidden>
branch nick: mybranch
timestamp: Fri 2008-07-18 22:18:28 +0200
message:
asMethod.mBody needs to be initialized to null,
otherwise the abc parser will think a method already has a body
when it really doesn't (patch #6576)
modified:
server/asClass.cpp
=== modified file 'server/asClass.cpp'
--- a/server/asClass.cpp 2008-04-01 15:55:10 +0000
+++ b/server/asClass.cpp 2008-07-18 20:18:28 +0000
@@ -29,7 +29,7 @@
namespace gnash {
#define STV(x) VM::get().getStringTable().value(x).c_str()
-asMethod::asMethod()
+asMethod::asMethod():mBody()
{
//TODO
}
=== modified file 'server/parser/abc_block.cpp'
--- a/server/parser/abc_block.cpp 2008-07-17 17:14:59 +0000
+++ b/server/parser/abc_block.cpp 2008-07-18 20:32:33 +0000
@@ -398,14 +398,7 @@
boost::uint8_t kind = mS->read_u8();
boost::uint32_t nameIndex = mS->read_V32();
- if (nameIndex && nameIndex < mStringPool.size())
- {
- if (mStringPoolTableIds[nameIndex] == 0)
- mStringPoolTableIds[nameIndex] =
-
mStringTable->find(mStringPool[nameIndex]);
- nameIndex = mStringPoolTableIds[nameIndex];
- }
- else if (nameIndex >= mStringPool.size())
+ if (nameIndex >= mStringPool.size())
{
ERR((_("ABC: Out of bounds string given for
namespace.\n")));
return false;
@@ -427,6 +420,7 @@
{
mNamespacePool[i]->setProtected();
}
+ mNamespacePool[i]->setURI(nameIndex);
}
return true;
}
@@ -477,8 +471,6 @@
boost::uint32_t name = 0;
boost::uint32_t nsset = 0;
- mMultinamePool[i].mFlags = 0;
-
// Read, but don't upper validate until after the switch.
switch (kind)
{
@@ -487,29 +479,17 @@
{
ns = mS->read_V32();
name = mS->read_V32();
- mMultinamePool[i].setQName();
- if (kind == asName::KIND_QnameA)
- mMultinamePool[i].setAttr();
break;
}
case asName::KIND_RTQname:
case asName::KIND_RTQnameA:
{
name = mS->read_V32();
- mMultinamePool[i].mFlags |= asName::FLAG_QNAME
- | asName::FLAG_RTNS;
- if (kind == asName::KIND_RTQnameA)
- mMultinamePool[i].setAttr();
break;
}
case asName::KIND_RTQnameL:
case asName::KIND_RTQnameLA:
{
- mMultinamePool[i].mFlags |= asName::FLAG_QNAME
- | asName::FLAG_RTNAME
- | asName::FLAG_RTNS;
- if (kind == asName::KIND_RTQnameLA)
- mMultinamePool[i].setAttr();
break;
}
case asName::KIND_Multiname:
@@ -523,9 +503,6 @@
ERR((_("ABC: 0 selection for namespace set is invalid.\n")));
return false;
}
- mMultinamePool[i].mFlags |= asName::FLAG_NSSET;
- if (kind == asName::KIND_MultinameA)
- mMultinamePool[i].mFlags |= asName::FLAG_ATTR;
break;
}
case asName::KIND_MultinameL:
@@ -538,10 +515,6 @@
ERR((_("ABC: 0 selection for namespace set is invalid.\n")));
return false;
}
- mMultinamePool[i].mFlags |= asName::FLAG_RTNAME
- | asName::FLAG_NSSET;
- if (kind == asName::KIND_MultinameLA)
- mMultinamePool[i].setAttr();
break;
}
default:
@@ -568,12 +541,8 @@
return false;
}
- // Load the string table with the name if not already there.
- if (name && mStringPoolTableIds[name] == 0)
- {
- mStringPoolTableIds[name] =
mStringTable->find(mStringPool[name]);
- }
- mMultinamePool[i].setName(mStringPoolTableIds[name]);
+ mMultinamePool[i].mFlags = kind;
+ mMultinamePool[i].setName(name);
if (ns)
mMultinamePool[i].setNamespace(mNamespacePool[ns]);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] /srv/bzr/gnash/trunk r9501: Tom Stellard patches for AVM2 (sorry, I missed to use the 'avm2' branch,,
Sandro Santilli <=