[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/asobj/Stage.cpp server/a...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/asobj/Stage.cpp server/a... |
Date: |
Fri, 03 Aug 2007 21:56:59 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/08/03 21:56:59
Modified files:
. : ChangeLog
server/asobj : Stage.cpp Stage.h
Log message:
* server/asobj/Stage.{cpp,h}: Mark all listeners as reachable,
drop the unused dropDanglingListeners (since it's verified
the Stage doesn't store *weak* pointers).
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3942&r2=1.3943
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Stage.cpp?cvsroot=gnash&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Stage.h?cvsroot=gnash&r1=1.9&r2=1.10
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.3942
retrieving revision 1.3943
diff -u -b -r1.3942 -r1.3943
--- ChangeLog 3 Aug 2007 21:44:31 -0000 1.3942
+++ ChangeLog 3 Aug 2007 21:56:58 -0000 1.3943
@@ -1,5 +1,11 @@
2007-08-03 Sandro Santilli <address@hidden>
+ * server/asobj/Stage.{cpp,h}: Mark all listeners as reachable,
+ drop the unused dropDanglingListeners (since it's verified
+ the Stage doesn't store *weak* pointers).
+
+2007-08-03 Sandro Santilli <address@hidden>
+
* server/movie_root.cpp (getStage): properly convert case when
fetching the "Stage" object from SWF6 or lower.
* server/asobj/Stage.cpp (onResize): properly convert case
Index: server/asobj/Stage.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Stage.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- server/asobj/Stage.cpp 3 Aug 2007 21:44:32 -0000 1.17
+++ server/asobj/Stage.cpp 3 Aug 2007 21:56:59 -0000 1.18
@@ -137,25 +137,6 @@
_listeners.remove(obj);
}
-/// Remove listeners with a refcount == 1
-//
-/// This function should be called before marking
-/// objects to keep alive (when GC gets in effect)
-///
-void
-Stage::dropDanglingListeners()
-{
- // TODO: find a way to find dangling listeners
-#ifndef GNASH_USE_GC
- for (ListenersList::iterator it=_listeners.begin(),
- itEnd=_listeners.end();
- it != itEnd; ++it)
- {
- if ( (*it)->get_ref_count() == 1 ) it=_listeners.erase(it);
- }
-#endif
-}
-
const char*
Stage::getScaleModeString()
{
@@ -302,4 +283,18 @@
global.init_member("Stage", obj.get());
}
+#ifdef GNASH_USE_GC
+void
+Stage::markReachableResources() const
+{
+ for (ListenersList::const_iterator i=_listeners.begin(),
e=_listeners.end(); i!=e; ++i)
+ {
+ (*i)->setReachable();
+ }
+
+ // Invoke generic as_object marker
+ markAsObjectReachable();
+}
+#endif // def GNASH_USE_GC
+
} // end of gnash namespace
Index: server/asobj/Stage.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Stage.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- server/asobj/Stage.h 1 Jul 2007 10:54:31 -0000 1.9
+++ server/asobj/Stage.h 3 Aug 2007 21:56:59 -0000 1.10
@@ -86,6 +86,13 @@
///
const char* getScaleModeString();
+protected:
+
+#ifdef GNASH_USE_GC
+ /// Mark all Stage listeners as reachable
+ void markReachableResources() const;
+#endif
+
private:
/// Notify all listeners about a resize event
@@ -99,13 +106,6 @@
/// Notify an object about an resize event
void notifyResize(boost::intrusive_ptr<as_object> obj, as_environment*
env);
- /// Remove listeners with a refcount == 1
- //
- /// This function should be called before marking
- /// objects to keep alive (when GC gets in effect)
- ///
- void dropDanglingListeners();
-
typedef std::list<boost::intrusive_ptr<as_object> > ListenersList;
ListenersList _listeners;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/asobj/Stage.cpp server/a...,
Sandro Santilli <=