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. release_0_8_9_final-


From: Sandro Santilli
Subject: [Gnash-commit] [SCM] Gnash branch, master, updated. release_0_8_9_final-329-gb20c9d2
Date: Sat, 30 Apr 2011 12:23:56 +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  b20c9d2ccc00a6617840e300a7244020e5e5e894 (commit)
       via  1fb112e943c2913fc61ebc65324a4be4539a6606 (commit)
       via  c3c7f1ad92fb71a46b7578976b416987db9adceb (commit)
       via  dbd46859528ab6597c0a3290bec70161418c009e (commit)
      from  99aadb4ecf91182750f2999ac80a5a9997f4069d (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=b20c9d2ccc00a6617840e300a7244020e5e5e894


commit b20c9d2ccc00a6617840e300a7244020e5e5e894
Author: Sandro Santilli <address@hidden>
Date:   Sat Apr 30 14:02:17 2011 +0200

    Expect success in test for frames after last expected showframe

diff --git a/testsuite/misc-swfmill.all/Makefile.am 
b/testsuite/misc-swfmill.all/Makefile.am
index 2ce2eb5..57c4c62 100644
--- a/testsuite/misc-swfmill.all/Makefile.am
+++ b/testsuite/misc-swfmill.all/Makefile.am
@@ -141,7 +141,7 @@ Try-without-jump-runner: $(srcdir)/../generic-testrunner.sh 
Try-without-jump.swf
        chmod 755 $@
 
 tags_after_last_showframe-runner: $(srcdir)/../generic-testrunner.sh 
tags_after_last_showframe.swf Makefile
-       sh $(srcdir)/../generic-testrunner.sh -r 50 -C "\<a1-i1-a2-a3-1\>" 
$(top_builddir) tags_after_last_showframe.swf > $@
+       sh $(srcdir)/../generic-testrunner.sh -r 50 -c "\<a1-i1-a2-a3-1\>" 
$(top_builddir) tags_after_last_showframe.swf > $@
        chmod 755 $@
 
 backgroundTestRunner_SOURCES = \

http://git.savannah.gnu.org/cgit//commit/?id=1fb112e943c2913fc61ebc65324a4be4539a6606


commit 1fb112e943c2913fc61ebc65324a4be4539a6606
Author: Sandro Santilli <address@hidden>
Date:   Sat Apr 30 13:50:54 2011 +0200

    Properly distribute tags_after_last_showframe.xml testcase

diff --git a/testsuite/misc-swfmill.all/Makefile.am 
b/testsuite/misc-swfmill.all/Makefile.am
index 9c8a786..2ce2eb5 100644
--- a/testsuite/misc-swfmill.all/Makefile.am
+++ b/testsuite/misc-swfmill.all/Makefile.am
@@ -51,7 +51,7 @@ SC_AS2_XMLTESTS = \
        registers.xml \
        Try-without-jump.xml \
        missing_bitmap.xml \
-       tags_after_last_showframe \
+       tags_after_last_showframe.xml \
        $(NULL)
 
 SC_AS3_XMLTESTS = \

http://git.savannah.gnu.org/cgit//commit/?id=c3c7f1ad92fb71a46b7578976b416987db9adceb


commit c3c7f1ad92fb71a46b7578976b416987db9adceb
Author: Sandro Santilli <address@hidden>
Date:   Sat Apr 30 13:47:08 2011 +0200

    Flush "orphaned" tags (tags found after last expected showframe) right 
before executing tags of first frame. Fixes bug #33176 (SWF9/AVM1/April3.swf)

diff --git a/libcore/MovieClip.cpp b/libcore/MovieClip.cpp
index b046f86..5c9da2d 100644
--- a/libcore/MovieClip.cpp
+++ b/libcore/MovieClip.cpp
@@ -484,6 +484,7 @@ MovieClip::MovieClip(as_object* object, const 
movie_definition* def,
     _currentFrame(0),
     m_sound_stream_id(-1),
     _hasLooped(false),
+    _flushedOrphanedTags(false),
     _callingFrameActions(false),
     _lockroot(false)
 {
@@ -819,7 +820,7 @@ MovieClip::advance()
 {
 #ifdef GNASH_DEBUG
     log_debug(_("Advance movieclip '%s' at frame %u/%u"),
-        getTargetPath(), _currentFrame,
+        getTargetPath(), _currentFrame+1,
         get_frame_count());
 #endif
 
@@ -844,7 +845,7 @@ MovieClip::advance()
     size_t frame_count = _def->get_frame_count();
 
     log_debug(_("Advance_movieclip for movieclip '%s' - frame %u/%u "),
-        getTarget(), _currentFrame,
+        getTarget(), _currentFrame+1,
         frame_count);
 #endif
 
@@ -867,6 +868,25 @@ MovieClip::advance()
         log_debug(_("after increment we are at frame %u/%u"), _currentFrame, 
frame_count);
 #endif
 
+        // Flush any orphaned tags
+        // See https://savannah.gnu.org/bugs/index.php?33176
+        // WARNING: we might be executing these while a parser
+        //          is still pushing on it. The _hasLooped is
+        //          trying to avoid that.
+        // TODO: find a better way to ensure nobody will be pushing
+        //       to orphaned playlist while we execute it.
+        if (_currentFrame == 0 && _hasLooped) {
+
+                const size_t frame_count = get_loaded_frames(); 
+                if ( frame_count != 1 || ! _flushedOrphanedTags ) {
+                    log_debug("Flushing orphaned tags. _currentFrame:%d, 
_hasLooped:%d, frame_count:%d", _currentFrame, _hasLooped, frame_count);
+                    _flushedOrphanedTags = true;
+                    executeFrameTags(frame_count, _displayList,
+                            SWF::ControlTag::TAG_DLIST |
+                            SWF::ControlTag::TAG_ACTION);
+                }
+        }
+
         // Execute the current frame's tags.
         // First time executeFrameTags(0) executed in dlist.cpp(child) or
         // SWFMovieDefinition(root)
diff --git a/libcore/MovieClip.h b/libcore/MovieClip.h
index dd8d593..60ae754 100644
--- a/libcore/MovieClip.h
+++ b/libcore/MovieClip.h
@@ -752,6 +752,10 @@ private:
     // true if this sprite reached the last frame and restarted
     bool _hasLooped;
 
+    // true if orphaned tags (tags found after last advertised showframe)
+    // have been executed at least once.
+    bool _flushedOrphanedTags;
+
     // true is we're calling frame actions
     bool _callingFrameActions;
 

http://git.savannah.gnu.org/cgit//commit/?id=dbd46859528ab6597c0a3290bec70161418c009e


commit dbd46859528ab6597c0a3290bec70161418c009e
Author: Sandro Santilli <address@hidden>
Date:   Sat Apr 30 13:03:24 2011 +0200

    Make success condition pattern of last test (tags after last showframe) 
stricter (I've seen it give a false success otherwise)

diff --git a/testsuite/misc-swfmill.all/Makefile.am 
b/testsuite/misc-swfmill.all/Makefile.am
index 4721b88..9c8a786 100644
--- a/testsuite/misc-swfmill.all/Makefile.am
+++ b/testsuite/misc-swfmill.all/Makefile.am
@@ -141,7 +141,7 @@ Try-without-jump-runner: $(srcdir)/../generic-testrunner.sh 
Try-without-jump.swf
        chmod 755 $@
 
 tags_after_last_showframe-runner: $(srcdir)/../generic-testrunner.sh 
tags_after_last_showframe.swf Makefile
-       sh $(srcdir)/../generic-testrunner.sh -r 50 -C "a1-i1-a2-a3-1" 
$(top_builddir) tags_after_last_showframe.swf > $@
+       sh $(srcdir)/../generic-testrunner.sh -r 50 -C "\<a1-i1-a2-a3-1\>" 
$(top_builddir) tags_after_last_showframe.swf > $@
        chmod 755 $@
 
 backgroundTestRunner_SOURCES = \

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

Summary of changes:
 libcore/MovieClip.cpp                  |   24 ++++++++++++++++++++++--
 libcore/MovieClip.h                    |    4 ++++
 testsuite/misc-swfmill.all/Makefile.am |    4 ++--
 3 files changed, 28 insertions(+), 4 deletions(-)


hooks/post-receive
-- 
Gnash



reply via email to

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