gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/fill_style.cpp server/fi...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/fill_style.cpp server/fi...
Date: Wed, 20 Jun 2007 14:23:50 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/06/20 14:23:50

Modified files:
        .              : ChangeLog 
        server         : fill_style.cpp fill_style.h 
        server/parser  : shape_character_def.cpp shape_character_def.h 

Log message:
                * server/fill_style.{cpp,h}: add an markReachableResources()
                  function to keep alive eventual bitmap and character fills.
                * server/parser/shape_character_def.{cpp,h}: implement resource
                  marking function, marking fill styles.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3587&r2=1.3588
http://cvs.savannah.gnu.org/viewcvs/gnash/server/fill_style.cpp?cvsroot=gnash&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/gnash/server/fill_style.h?cvsroot=gnash&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/shape_character_def.cpp?cvsroot=gnash&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/shape_character_def.h?cvsroot=gnash&r1=1.12&r2=1.13

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.3587
retrieving revision 1.3588
diff -u -b -r1.3587 -r1.3588
--- ChangeLog   19 Jun 2007 22:54:31 -0000      1.3587
+++ ChangeLog   20 Jun 2007 14:23:49 -0000      1.3588
@@ -1,3 +1,10 @@
+2007-06-20 Sandro Santilli <address@hidden>
+
+       * server/fill_style.{cpp,h}: add an markReachableResources()
+         function to keep alive eventual bitmap and character fills.
+       * server/parser/shape_character_def.{cpp,h}: implement resource
+         marking function, marking fill styles.
+
 2007-06-19 Sandro Santilli <address@hidden>
 
        * server/StreamProvider.cpp (getStream): transfer ownerhip of 

Index: server/fill_style.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/fill_style.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- server/fill_style.cpp       14 May 2007 20:15:03 -0000      1.4
+++ server/fill_style.cpp       20 Jun 2007 14:23:50 -0000      1.5
@@ -457,8 +457,16 @@
 }
 
 
-// end of namespace
+#ifdef GNASH_USE_GC
+void
+fill_style::markReachableResources() const
+{
+       if ( m_gradient_bitmap_info ) m_gradient_bitmap_info->setReachable();
+       if ( m_bitmap_character ) m_bitmap_character->setReachable();
 }
+#endif // GNASH_USE_GC
+
+} // end of namespace
 
 
 // Local Variables:

Index: server/fill_style.h
===================================================================
RCS file: /sources/gnash/gnash/server/fill_style.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- server/fill_style.h 28 May 2007 15:41:06 -0000      1.5
+++ server/fill_style.h 20 Jun 2007 14:23:50 -0000      1.6
@@ -17,7 +17,7 @@
 
 // Based on work of Thatcher Ulrich <address@hidden> 2003
 
-/* $Id: fill_style.h,v 1.5 2007/05/28 15:41:06 ann Exp $ */
+/* $Id: fill_style.h,v 1.6 2007/06/20 14:23:50 strk Exp $ */
 
 #ifndef GNASH_FILL_STYLE_H
 #define GNASH_FILL_STYLE_H
@@ -117,6 +117,17 @@
        /// Returns the color stop value at a specified index
        const gradient_record& get_color_stop(int index) const;
        
+#ifdef GNASH_USE_GC
+       /// Mark reachable resources (for the GC)
+       //
+       /// fill_style specific reachable resources are:
+       ///
+       ///     - gradient bitmap info (m_gradient_bitmap_info)
+       ///     - bitmap character (m_bitmap_character)
+       ///
+       void markReachableResources() const;
+#endif // GNASH_USE_GC
+
 private:
 
        /// Return the color at the specified ratio into our gradient.

Index: server/parser/shape_character_def.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/shape_character_def.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- server/parser/shape_character_def.cpp       15 Jun 2007 18:47:00 -0000      
1.28
+++ server/parser/shape_character_def.cpp       20 Jun 2007 14:23:50 -0000      
1.29
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: shape_character_def.cpp,v 1.28 2007/06/15 18:47:00 strk Exp $ */
+/* $Id: shape_character_def.cpp,v 1.29 2007/06/20 14:23:50 strk Exp $ */
 
 // Based on the public domain shape.cpp of Thatcher Ulrich <address@hidden> 
2003
 
@@ -822,6 +822,19 @@
     }
 }
 
+#ifdef GNASH_USE_GC
+void
+shape_character_def::markReachableResources() const
+{
+       assert(isReachable());
+       for (FillStyleVect::const_iterator i=m_fill_styles.begin(), 
e=m_fill_styles.end();
+                       i != e; ++i)
+       {
+               i->markReachableResources();
+       }
+}
+#endif // GNASH_USE_GC
+
 }      // end namespace gnash
 
 // Local Variables:

Index: server/parser/shape_character_def.h
===================================================================
RCS file: /sources/gnash/gnash/server/parser/shape_character_def.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- server/parser/shape_character_def.h 14 May 2007 17:23:16 -0000      1.12
+++ server/parser/shape_character_def.h 20 Jun 2007 14:23:50 -0000      1.13
@@ -5,7 +5,7 @@
 
 // Quadratic bezier outline shapes, the basis for most SWF rendering.
 
-/* $Id: shape_character_def.h,v 1.12 2007/05/14 17:23:16 strk Exp $ */
+/* $Id: shape_character_def.h,v 1.13 2007/06/20 14:23:50 strk Exp $ */
 
 #ifndef GNASH_SHAPE_CHARACTER_DEF_H
 #define GNASH_SHAPE_CHARACTER_DEF_H
@@ -33,6 +33,7 @@
 
                typedef std::vector<fill_style> FillStyleVect;
                typedef std::vector<line_style> LineStyleVect;
+               typedef std::vector<path> PathVect;
 
                shape_character_def();
                virtual ~shape_character_def();
@@ -72,10 +73,20 @@
        protected:
                friend class morph2_character_def;
 
+#ifdef GNASH_USE_GC
+               /// Mark reachable resources (for the GC)
+               //
+               /// Reachable resources are:
+               ///     - Associated fill styles (m_fill_styles).
+               ///       These are not actual resources, but may contain some.
+               ///
+               virtual void markReachableResources() const;
+#endif // GNASH_USE_GC
+
                // derived morph classes changes these
-               std::vector<fill_style> m_fill_styles;
-               std::vector<line_style> m_line_styles;
-               std::vector<path>       m_paths;
+               FillStyleVect m_fill_styles;
+               LineStyleVect m_line_styles;
+               PathVect m_paths;
                rect    m_bound;
 
                /// Free all meshes




reply via email to

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