gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/as_object.h server/as_ob...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/as_object.h server/as_ob...
Date: Fri, 07 Jul 2006 23:29:51 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/07/07 23:29:51

Modified files:
        .              : ChangeLog 
        server         : as_object.h as_object.cpp 

Log message:
        added public dump_members() and private set_prototype() methods.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.480&r2=1.481
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_object.h?cvsroot=gnash&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_object.cpp?cvsroot=gnash&r1=1.6&r2=1.7

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.480
retrieving revision 1.481
diff -u -b -r1.480 -r1.481
--- ChangeLog   7 Jul 2006 15:10:15 -0000       1.480
+++ ChangeLog   7 Jul 2006 23:29:51 -0000       1.481
@@ -1,3 +1,9 @@
+2006-07-08 Sandro Santilli <address@hidden>
+
+       * server/as_object.h, server/as_object.cpp:
+       added public dump_members() and private set_prototype()
+       methods.
+
 2006-07-07 Stefan Schweizer <address@hidden>
 
        * libamf/Makefile.am, libgeometry/Makefile.am, plugin/Makefile.am,

Index: server/as_object.h
===================================================================
RCS file: /sources/gnash/gnash/server/as_object.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- server/as_object.h  5 Jul 2006 17:10:39 -0000       1.4
+++ server/as_object.h  7 Jul 2006 23:29:51 -0000       1.5
@@ -67,9 +67,15 @@
 public:
 
        /// Members of this objects in an hash
+       //
+       /// TODO: make this private or protected and provide
+       ///       visitor pattern interface
        stringi_hash<as_member> m_members;
 
+       void dump_members() const;
+
        /// Reference to this object's '__proto__'
+       // TODO: make private (or protected)
        as_object*      m_prototype;
 
        /// Construct an ActionScript object with no prototype associated.
@@ -128,11 +134,18 @@
        bool instanceOf(as_function* ctor);
 
 protected:
+
        /// Get a member as_value by name
        bool get_member_default(const tu_stringi& name, as_value* val);
 
        /// Set a member value
        void set_member_default(const tu_stringi& name, const as_value& val);
+
+private:
+
+       /// Set this object's '__proto__' member
+       void set_prototype(as_object* proto);
+
 };
 
 } // namespace gnash

Index: server/as_object.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_object.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- server/as_object.cpp        7 Jul 2006 13:49:40 -0000       1.6
+++ server/as_object.cpp        7 Jul 2006 23:29:51 -0000       1.7
@@ -110,14 +110,20 @@
 }
 
 void
+as_object::set_prototype(as_object* proto)
+{
+       if (m_prototype) m_prototype->drop_ref();
+       m_prototype = proto;
+       if (m_prototype) m_prototype->add_ref();
+}
+
+void
 as_object::set_member_default(const tu_stringi& name, const as_value& val )
 {
        //printf("SET MEMBER: %s at %p for object %p\n", name.c_str(), 
val.to_object(), this);
        if (name == "__proto__") 
        {
-               if (m_prototype) m_prototype->drop_ref();
-               m_prototype = val.to_object();
-               if (m_prototype) m_prototype->add_ref();
+               set_prototype(val.to_object());
        }
        else
        {
@@ -178,5 +184,19 @@
        return false;
 }
 
+void
+as_object::dump_members() const
+{
+       typedef stringi_hash<as_member>::const_iterator members_iterator;
+
+       log_msg("%d Members of object %p follow",
+               m_members.size(), (void*)this);
+       for ( members_iterator it=m_members.begin(), itEnd=m_members.end();
+               it != itEnd; ++it )
+       {
+               log_msg("  %s: %s", it->first.c_str(), 
it->second.get_member_value().to_string());
+       }
+}
+
 } // end of gnash namespace
 




reply via email to

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