gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] [SCM] Gnash branch, master, updated. c22769f0ab28ceed5763


From: Benjamin Wolsey
Subject: [Gnash-commit] [SCM] Gnash branch, master, updated. c22769f0ab28ceed5763a73a46fbb6829f2b6ee8
Date: Mon, 27 Sep 2010 09:32:30 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Gnash".

The branch, master has been updated
       via  c22769f0ab28ceed5763a73a46fbb6829f2b6ee8 (commit)
      from  38be50cecc4648289d7a4820ad188ee7d2db4ab2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit//commit/?id=c22769f0ab28ceed5763a73a46fbb6829f2b6ee8


commit c22769f0ab28ceed5763a73a46fbb6829f2b6ee8
Author: Benjamin Wolsey <address@hidden>
Date:   Mon Sep 27 11:26:44 2010 +0200

    Drop assertion, handle the case instead.

diff --git a/libcore/DisplayList.cpp b/libcore/DisplayList.cpp
index ccf9e1b..fbaf3d1 100644
--- a/libcore/DisplayList.cpp
+++ b/libcore/DisplayList.cpp
@@ -46,15 +46,11 @@ namespace {
     DisplayList::const_iterator beginNonRemoved(
             const DisplayList::container_type& c);
 
-       /// Return an iterator succeeding the last element in zone
-    /// (-16384, 0xffff-16384)
+    /// Return the first element in the DisplayList whose depth exceeds
+    /// 65535 (-16384).
     DisplayList::iterator dlistTagsEffectiveZoneEnd(
             DisplayList::container_type& c);
        
-       /// Return an constant iterator succeeding the last element
-    /// in (-16384, 0xffff-16384)
-    DisplayList::const_iterator dlistTagsEffectiveZoneEnd(
-            const DisplayList::container_type& c);
 }
 
 /// Anonymous namespace for generic algorithm functors.
@@ -865,21 +861,27 @@ DisplayList::sort()
 }
 
 void
-DisplayList::mergeDisplayList(DisplayList & newList)
+DisplayList::mergeDisplayList(DisplayList& newList)
 {
     testInvariant();
 
+    log_debug("New list size: %s", newList.size());
+
     iterator itOld = beginNonRemoved(_charsByDepth);
     iterator itNew = beginNonRemoved(newList._charsByDepth);
 
     iterator itOldEnd = dlistTagsEffectiveZoneEnd(_charsByDepth);
-    iterator itNewEnd = newList._charsByDepth.end(); 
-    assert(itNewEnd == dlistTagsEffectiveZoneEnd(newList._charsByDepth) );
+
+    // There used to be an assertion here that no character in the new list
+    // is at depth 65535 or higher. There's no reason why the tags executed
+    // on the new list shouldn't do this though. Bug #29282 does this.
+    // TODO: check whether we should be ignoring that character.
+    iterator itNewEnd = dlistTagsEffectiveZoneEnd(newList._charsByDepth); 
 
     // step1. 
     // starting scanning both lists.
-    while (itOld != itOldEnd)
-    {
+    while (itOld != itOldEnd) {
+
         iterator itOldBackup = itOld;
         
         DisplayObject* chOld = *itOldBackup;
@@ -1094,13 +1096,6 @@ dlistTagsEffectiveZoneEnd(DisplayList::container_type& c)
              DepthGreaterOrEqual(0xffff + DisplayObject::staticDepthOffset));
 }
 
-DisplayList::const_iterator
-dlistTagsEffectiveZoneEnd(const DisplayList::container_type& c)
-{
-    return std::find_if(c.begin(), c.end(), 
-             DepthGreaterOrEqual(0xffff + DisplayObject::staticDepthOffset));
-}
-
 } // anonymous namespace
 
 

-----------------------------------------------------------------------

Summary of changes:
 libcore/DisplayList.cpp |   31 +++++++++++++------------------
 1 files changed, 13 insertions(+), 18 deletions(-)


hooks/post-receive
-- 
Gnash



reply via email to

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