gnash-commit
[Top][All Lists]
Advanced

[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]);


reply via email to

[Prev in Thread] Current Thread [Next in Thread]