gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] /srv/bzr/gnash/trunk r11062: Made some changes to help Sh


From: Bob Naugle
Subject: [Gnash-commit] /srv/bzr/gnash/trunk r11062: Made some changes to help SharedObject tests
Date: Wed, 10 Jun 2009 13:54:27 -0600
User-agent: Bazaar (1.13.1)

------------------------------------------------------------
revno: 11062
committer: Bob Naugle <address@hidden>
branch nick: trunk
timestamp: Wed 2009-06-10 13:54:27 -0600
message:
  Made some changes to help SharedObject tests
modified:
  libcore/ClassHierarchy.cpp
  libcore/asobj/flash/net/netclasses.h
=== modified file 'libcore/ClassHierarchy.cpp'
--- a/libcore/ClassHierarchy.cpp        2009-06-09 21:58:09 +0000
+++ b/libcore/ClassHierarchy.cpp        2009-06-10 19:54:27 +0000
@@ -99,141 +99,141 @@
 class declare_extension_function : public as_function
 {
 private:
-       ClassHierarchy::extensionClass mDeclaration;
-       as_object *mTarget;
-       Extension *mExtension;
+    ClassHierarchy::extensionClass mDeclaration;
+    as_object *mTarget;
+    Extension *mExtension;
 
 public:
-       bool isBuiltin() { return true; }
-
-       declare_extension_function(ClassHierarchy::extensionClass &c,
-               as_object *g, Extension* e) :
-               as_function(getObjectInterface()),
-               mDeclaration(c), mTarget(g), mExtension(e)
-       {
-               init_member("constructor", 
as_function::getFunctionConstructor().get());
-       }
-
-       virtual as_value operator()(const fn_call& fn)
-       {
-               string_table& st = fn.getVM().getStringTable();
-               log_debug("Loading extension class %s", 
st.value(mDeclaration.name));
-
-               as_value super;
-               if (mDeclaration.super_name)
-               {
-                       // Check to be sure our super exists.
-                       // This will trigger its instantiation if necessary.
-                       if (!mTarget->get_member(mDeclaration.super_name, 
&super))
-                       {
-                               // Error here -- doesn't exist.
-                               log_error("Can't find %s (Superclass of %s)",
-                                       st.value(mDeclaration.super_name),
-                                       st.value(mDeclaration.name));
-                               super.set_undefined();
-                               return super;
-                       }
-                       if (!super.is_as_function())
-                       {
-                               // Error here -- not an object.
-                               log_error("%s (Superclass of %s) is not a 
function (%s)",
-                                       st.value(mDeclaration.super_name),
-                                       st.value(mDeclaration.name), super);
-                               super.set_undefined();
-                               return super;
-                       }
-               }
-               if (mExtension->initModuleWithFunc(mDeclaration.file_name,
-                       mDeclaration.init_name, *mTarget))
-               {
-                       // Successfully loaded it, now find it, set its proto, 
and return.
-                       as_value us;
-                       mTarget->get_member(mDeclaration.name, &us);
-                       if (mDeclaration.super_name && 
!us.to_object()->hasOwnProperty(NSV::PROP_uuPROTOuu))
-                       {
-                               
us.to_object()->set_prototype(super.to_as_function()->getPrototype());
-                       }
-                       return us;
-               }
-               // Error here -- not successful in loading.
-               log_error("Could not load class %s", 
st.value(mDeclaration.name));
-               super.set_undefined();
-               return super;
-       }
+    bool isBuiltin() { return true; }
+
+    declare_extension_function(ClassHierarchy::extensionClass &c,
+        as_object *g, Extension* e) :
+        as_function(getObjectInterface()),
+        mDeclaration(c), mTarget(g), mExtension(e)
+    {
+        init_member("constructor", 
as_function::getFunctionConstructor().get());
+    }
+
+    virtual as_value operator()(const fn_call& fn)
+    {
+        string_table& st = fn.getVM().getStringTable();
+        log_debug("Loading extension class %s", st.value(mDeclaration.name));
+
+        as_value super;
+        if (mDeclaration.super_name)
+        {
+            // Check to be sure our super exists.
+            // This will trigger its instantiation if necessary.
+            if (!mTarget->get_member(mDeclaration.super_name, &super))
+            {
+                // Error here -- doesn't exist.
+                log_error("Can't find %s (Superclass of %s)",
+                    st.value(mDeclaration.super_name),
+                    st.value(mDeclaration.name));
+                super.set_undefined();
+                return super;
+            }
+            if (!super.is_as_function())
+            {
+                // Error here -- not an object.
+                log_error("%s (Superclass of %s) is not a function (%s)",
+                    st.value(mDeclaration.super_name),
+                    st.value(mDeclaration.name), super);
+                super.set_undefined();
+                return super;
+            }
+        }
+        if (mExtension->initModuleWithFunc(mDeclaration.file_name,
+            mDeclaration.init_name, *mTarget))
+        {
+            // Successfully loaded it, now find it, set its proto, and return.
+            as_value us;
+            mTarget->get_member(mDeclaration.name, &us);
+            if (mDeclaration.super_name && 
!us.to_object()->hasOwnProperty(NSV::PROP_uuPROTOuu))
+            {
+                
us.to_object()->set_prototype(super.to_as_function()->getPrototype());
+            }
+            return us;
+        }
+        // Error here -- not successful in loading.
+        log_error("Could not load class %s", st.value(mDeclaration.name));
+        super.set_undefined();
+        return super;
+    }
 };
 
 class declare_native_function : public as_function
 {
 private:
-       ClassHierarchy::nativeClass mDeclaration;
-       as_object *mTarget;
-       Extension *mExtension;
+    ClassHierarchy::nativeClass mDeclaration;
+    as_object *mTarget;
+    Extension *mExtension;
 
 public:
-       bool isBuiltin() { return true; }
-
-       declare_native_function(const ClassHierarchy::nativeClass &c,
-               as_object *g, Extension *e) :
-               as_function(getObjectInterface()),
-               mDeclaration(c), mTarget(g), mExtension(e)
-       {
-               // does it make any sense to set a 'constructor' here ??
-               //init_member("constructor", this);
-               //init_member("constructor", 
as_function::getFunctionConstructor().get());
-       }
-
-       virtual as_value operator()(const fn_call& /*fn*/)
-       {
-               string_table& st = VM::get().getStringTable();
-               log_debug("Loading native class %s", 
st.value(mDeclaration.name));
-
-               mDeclaration.initializer(*mTarget);
-               // Successfully loaded it, now find it, set its proto, and 
return.
-               as_value us;
-               if ( mTarget->get_member(mDeclaration.name, &us) )
-               {
-                       as_value super;
-                       if (mDeclaration.super_name)
-                       {
-                               // Check to be sure our super exists.
-                               // This will trigger its instantiation if 
necessary.
-                               if 
(!mTarget->get_member(mDeclaration.super_name, &super))
-                               {
-                                       // Error here -- doesn't exist.
-                                       log_error("Can't find %s (Superclass of 
%s)",
-                                               
st.value(mDeclaration.super_name),
-                                               st.value(mDeclaration.name));
-                                       super.set_undefined();
-                                       return super;
-                               }
-                               if (!super.is_as_function())
-                               {
-                                       // Error here -- not an object.
-                                       log_error("%s (Superclass of %s) is not 
a function (%s)",
-                                               
st.value(mDeclaration.super_name),
-                                               st.value(mDeclaration.name), 
super);
-                                       super.set_undefined();
-                                       return super;
-                               }
-                               assert(super.to_as_function());
-                       }
-                       if ( ! us.to_object() )
-                       {
-                               log_error("Native class %s is not an object 
after initialization (%s)",
-                                       st.value(mDeclaration.name), us);
-                       }
-                       if (mDeclaration.super_name && 
!us.to_object()->hasOwnProperty(NSV::PROP_uuPROTOuu))
-                       {
-                               
us.to_object()->set_prototype(super.to_as_function()->getPrototype());
-                       }
-               }
-               else
-               {
-                       log_error("Native class %s is not found after 
initialization", 
-                               st.value(mDeclaration.name));
-               }
-               return us;
-       }
+    bool isBuiltin() { return true; }
+
+    declare_native_function(const ClassHierarchy::nativeClass &c,
+        as_object *g, Extension *e) :
+        as_function(getObjectInterface()),
+        mDeclaration(c), mTarget(g), mExtension(e)
+    {
+        // does it make any sense to set a 'constructor' here ??
+        //init_member("constructor", this);
+        //init_member("constructor", 
as_function::getFunctionConstructor().get());
+    }
+
+    virtual as_value operator()(const fn_call& /*fn*/)
+    {
+        string_table& st = VM::get().getStringTable();
+        log_debug("Loading native class %s", st.value(mDeclaration.name));
+
+        mDeclaration.initializer(*mTarget);
+        // Successfully loaded it, now find it, set its proto, and return.
+        as_value us;
+        if ( mTarget->get_member(mDeclaration.name, &us) )
+        {
+            as_value super;
+            if (mDeclaration.super_name)
+            {
+                // Check to be sure our super exists.
+                // This will trigger its instantiation if necessary.
+                if (!mTarget->get_member(mDeclaration.super_name, &super))
+                {
+                    // Error here -- doesn't exist.
+                    log_error("Can't find %s (Superclass of %s)",
+                        st.value(mDeclaration.super_name),
+                        st.value(mDeclaration.name));
+                    super.set_undefined();
+                    return super;
+                }
+                if (!super.is_as_function())
+                {
+                    // Error here -- not an object.
+                    log_error("%s (Superclass of %s) is not a function (%s)",
+                        st.value(mDeclaration.super_name),
+                        st.value(mDeclaration.name), super);
+                    super.set_undefined();
+                    return super;
+                }
+                assert(super.to_as_function());
+            }
+            if ( ! us.to_object() )
+            {
+                log_error("Native class %s is not an object after 
initialization (%s)",
+                    st.value(mDeclaration.name), us);
+            }
+            if (mDeclaration.super_name && 
!us.to_object()->hasOwnProperty(NSV::PROP_uuPROTOuu))
+            {
+                
us.to_object()->set_prototype(super.to_as_function()->getPrototype());
+            }
+        }
+        else
+        {
+            log_error("Native class %s is not found after initialization", 
+                st.value(mDeclaration.name));
+        }
+        return us;
+    }
 };
 
 } // end anonymous namespace
@@ -245,39 +245,39 @@
 bool
 ClassHierarchy::declareClass(extensionClass& c)
 {
-       if (!mExtension) return false; 
-
-       mGlobalNamespace->stubPrototype(c.name);
-       mGlobalNamespace->getClass(c.name)->setDeclared();
-       mGlobalNamespace->getClass(c.name)->setSystem();
-
-       boost::intrusive_ptr<as_function> getter =
-               new declare_extension_function(c, mGlobal, mExtension);
-
-       int flags=as_prop_flags::dontEnum;
-       addVisibilityFlag(flags, c.version);
-       return mGlobal->init_destructive_property(c.name, *getter, flags);
+    if (!mExtension) return false; 
+
+    mGlobalNamespace->stubPrototype(c.name);
+    mGlobalNamespace->getClass(c.name)->setDeclared();
+    mGlobalNamespace->getClass(c.name)->setSystem();
+
+    boost::intrusive_ptr<as_function> getter =
+        new declare_extension_function(c, mGlobal, mExtension);
+
+    int flags=as_prop_flags::dontEnum;
+    addVisibilityFlag(flags, c.version);
+    return mGlobal->init_destructive_property(c.name, *getter, flags);
 }
 
 bool
 ClassHierarchy::declareClass(const nativeClass& c)
 {
-       // For AS2 and below, registering with mGlobal _should_ make it 
equivalent
-       // to being in the global namespace, since everything is global there.
-       asNamespace *nso = findNamespace(c.namespace_name);
-
-       if (!nso) nso = addNamespace(c.namespace_name);
-
-       nso->stubPrototype(c.name);
-       nso->getClass(c.name)->setDeclared();
-       nso->getClass(c.name)->setSystem();
-
-       boost::intrusive_ptr<as_function> getter =
-               new declare_native_function(c, mGlobal, mExtension);
-
-       int flags = as_prop_flags::dontEnum;
-       addVisibilityFlag(flags, c.version);
-       return mGlobal->init_destructive_property(c.name, *getter, flags);
+    // For AS2 and below, registering with mGlobal _should_ make it equivalent
+    // to being in the global namespace, since everything is global there.
+    asNamespace *nso = findNamespace(c.namespace_name);
+
+    if (!nso) nso = addNamespace(c.namespace_name);
+
+    nso->stubPrototype(c.name);
+    nso->getClass(c.name)->setDeclared();
+    nso->getClass(c.name)->setSystem();
+
+    boost::intrusive_ptr<as_function> getter =
+        new declare_native_function(c, mGlobal, mExtension);
+
+    int flags = as_prop_flags::dontEnum;
+    addVisibilityFlag(flags, c.version);
+    return mGlobal->init_destructive_property(c.name, *getter, flags);
 }
 
 static const ClassHierarchy::nativeClass knownClasses[] =
@@ -289,132 +289,132 @@
     #define NS_UNKNOWN 0
 
 //  { function_name, name key, super name key, lowest version },
-       { system_class_init, NSV::CLASS_SYSTEM, 0, NSV::NS_FLASH_SYSTEM, 1 },
-       { stage_class_init, NSV::CLASS_STAGE, 0, NSV::NS_FLASH_DISPLAY, 1 },
-       { movieclip_class_init, NSV::CLASS_MOVIE_CLIP, 0, 
NSV::NS_FLASH_DISPLAY, 3 },
-       { textfield_class_init, NSV::CLASS_TEXT_FIELD, 0, NSV::NS_FLASH_TEXT, 3 
},
-       { math_class_init, NSV::CLASS_MATH, 0, NS_GLOBAL, 4 },
-       { boolean_class_init, NSV::CLASS_BOOLEAN, NSV::CLASS_OBJECT, NS_GLOBAL, 
5 },
-       { Button::init, NSV::CLASS_BUTTON, NSV::CLASS_OBJECT, NS_GLOBAL, 5 },
-       { color_class_init, NSV::CLASS_COLOR, NSV::CLASS_OBJECT, NS_GLOBAL, 5 },
-       { selection_class_init, NSV::CLASS_SELECTION, NSV::CLASS_OBJECT,
+    { system_class_init, NSV::CLASS_SYSTEM, 0, NSV::NS_FLASH_SYSTEM, 1 },
+    { stage_class_init, NSV::CLASS_STAGE, 0, NSV::NS_FLASH_DISPLAY, 1 },
+    { movieclip_class_init, NSV::CLASS_MOVIE_CLIP, 0, NSV::NS_FLASH_DISPLAY, 3 
},
+    { textfield_class_init, NSV::CLASS_TEXT_FIELD, 0, NSV::NS_FLASH_TEXT, 3 },
+    { math_class_init, NSV::CLASS_MATH, 0, NS_GLOBAL, 4 },
+    { boolean_class_init, NSV::CLASS_BOOLEAN, NSV::CLASS_OBJECT, NS_GLOBAL, 5 
},
+    { Button::init, NSV::CLASS_BUTTON, NSV::CLASS_OBJECT, NS_GLOBAL, 5 },
+    { color_class_init, NSV::CLASS_COLOR, NSV::CLASS_OBJECT, NS_GLOBAL, 5 },
+    { selection_class_init, NSV::CLASS_SELECTION, NSV::CLASS_OBJECT,
         NS_UNKNOWN, 5 },
-       { Sound_as::init, NSV::CLASS_SOUND, NSV::CLASS_OBJECT,
+    { Sound_as::init, NSV::CLASS_SOUND, NSV::CLASS_OBJECT,
         NSV::NS_FLASH_MEDIA, 5 },
-       { xmlsocket_class_init, NSV::CLASS_XMLSOCKET, NSV::CLASS_OBJECT,
+    { xmlsocket_class_init, NSV::CLASS_XMLSOCKET, NSV::CLASS_OBJECT,
         NSV::NS_FLASH_NET, 5 },
-       { Date_as::init, NSV::CLASS_DATE, NSV::CLASS_OBJECT, NS_GLOBAL, 5 },
-       { XMLDocument_as::init, NSV::CLASS_XML, NSV::CLASS_OBJECT, NS_GLOBAL, 5 
},
-       { XMLNode_as::init, NSV::CLASS_XMLNODE, NSV::CLASS_OBJECT,
+    { Date_as::init, NSV::CLASS_DATE, NSV::CLASS_OBJECT, NS_GLOBAL, 5 },
+    { XMLDocument_as::init, NSV::CLASS_XML, NSV::CLASS_OBJECT, NS_GLOBAL, 5 },
+    { XMLNode_as::init, NSV::CLASS_XMLNODE, NSV::CLASS_OBJECT,
         NSV::NS_FLASH_XML, 5 },
-       { mouse_class_init, NSV::CLASS_MOUSE, NSV::CLASS_OBJECT, 
NSV::NS_FLASH_UI,
+    { mouse_class_init, NSV::CLASS_MOUSE, NSV::CLASS_OBJECT, NSV::NS_FLASH_UI,
         5 },
-       { number_class_init, NSV::CLASS_NUMBER, NSV::CLASS_OBJECT, NS_GLOBAL, 5 
},
-       { TextFormat_as::init, NSV::CLASS_TEXT_FORMAT, NSV::CLASS_OBJECT,
-        NS_GLOBAL, 5 },
-       { Keyboard_as::init, NSV::CLASS_KEY, NSV::CLASS_OBJECT, NS_GLOBAL, 5 },
-       { AsBroadcaster::init, NSV::CLASS_AS_BROADCASTER, NSV::CLASS_OBJECT,
-        NS_GLOBAL, 5 },
-       { TextSnapshot_as::init, NSV::CLASS_TEXT_SNAPSHOT, NSV::CLASS_OBJECT,
+    { number_class_init, NSV::CLASS_NUMBER, NSV::CLASS_OBJECT, NS_GLOBAL, 5 },
+    { TextFormat_as::init, NSV::CLASS_TEXT_FORMAT, NSV::CLASS_OBJECT,
+        NS_GLOBAL, 5 },
+    { Keyboard_as::init, NSV::CLASS_KEY, NSV::CLASS_OBJECT, NS_GLOBAL, 5 },
+    { AsBroadcaster::init, NSV::CLASS_AS_BROADCASTER, NSV::CLASS_OBJECT,
+        NS_GLOBAL, 5 },
+    { TextSnapshot_as::init, NSV::CLASS_TEXT_SNAPSHOT, NSV::CLASS_OBJECT,
         NSV::NS_FLASH_TEXT, 5 },
-       { video_class_init, NSV::CLASS_VIDEO, NSV::CLASS_OBJECT,
+    { video_class_init, NSV::CLASS_VIDEO, NSV::CLASS_OBJECT,
         NSV::NS_FLASH_MEDIA, 6 },
-       { camera_class_init, NSV::CLASS_CAMERA, NSV::CLASS_OBJECT,
-        NSV::NS_FLASH_UI, 6 },
-       { microphone_class_init, NSV::CLASS_MICROPHONE, NSV::CLASS_OBJECT,
-        NSV::NS_FLASH_UI, 6 },
-       { sharedobject_class_init, NSV::CLASS_SHARED_OBJECT, NSV::CLASS_OBJECT,
-        NSV::NS_FLASH_NET, 5 },
-       { loadvars_class_init, NSV::CLASS_LOAD_VARS, NSV::CLASS_OBJECT, 
NS_GLOBAL,
+    { camera_class_init, NSV::CLASS_CAMERA, NSV::CLASS_OBJECT,
+        NSV::NS_FLASH_UI, 6 },
+    { microphone_class_init, NSV::CLASS_MICROPHONE, NSV::CLASS_OBJECT,
+        NSV::NS_FLASH_UI, 6 },
+    { sharedobject_class_init, NSV::CLASS_SHARED_OBJECT, NSV::CLASS_OBJECT,
+        NSV::NS_FLASH_NET, 6 },
+    { loadvars_class_init, NSV::CLASS_LOAD_VARS, NSV::CLASS_OBJECT, NS_GLOBAL,
         6 },
-       { LocalConnection_as::init, NSV::CLASS_LOCALCONNECTION, 
NSV::CLASS_OBJECT,
+    { LocalConnection_as::init, NSV::CLASS_LOCALCONNECTION, NSV::CLASS_OBJECT,
         NS_GLOBAL, 6 },
-       { customactions_class_init, NSV::CLASS_CUSTOM_ACTIONS, 
NSV::CLASS_OBJECT,
+    { customactions_class_init, NSV::CLASS_CUSTOM_ACTIONS, NSV::CLASS_OBJECT,
         NSV::NS_ADOBE_UTILS, 6 },
-       { NetConnection_as::init, NSV::CLASS_NET_CONNECTION, NSV::CLASS_OBJECT,
-        NSV::NS_FLASH_NET, 6 },
-       { NetStream_as::init, NSV::CLASS_NET_STREAM, NSV::CLASS_OBJECT,
-        NSV::NS_FLASH_NET, 6 },
-       { contextmenu_class_init, NSV::CLASS_CONTEXTMENU, NSV::CLASS_OBJECT,
+    { NetConnection_as::init, NSV::CLASS_NET_CONNECTION, NSV::CLASS_OBJECT,
+        NSV::NS_FLASH_NET, 6 },
+    { NetStream_as::init, NSV::CLASS_NET_STREAM, NSV::CLASS_OBJECT,
+        NSV::NS_FLASH_NET, 6 },
+    { contextmenu_class_init, NSV::CLASS_CONTEXTMENU, NSV::CLASS_OBJECT,
         NSV::NS_FLASH_UI, 7 },
-       { moviecliploader_class_init, NSV::CLASS_MOVIE_CLIP_LOADER,
+    { moviecliploader_class_init, NSV::CLASS_MOVIE_CLIP_LOADER,
         NSV::CLASS_OBJECT, NS_GLOBAL, 7 },
-       { Error_class_init, NSV::CLASS_ERROR, NSV::CLASS_OBJECT, NS_GLOBAL, 5 },
-       { accessibility_class_init, NSV::CLASS_ACCESSIBILITY, NSV::CLASS_OBJECT,
+    { Error_class_init, NSV::CLASS_ERROR, NSV::CLASS_OBJECT, NS_GLOBAL, 5 },
+    { accessibility_class_init, NSV::CLASS_ACCESSIBILITY, NSV::CLASS_OBJECT,
           NSV::NS_FLASH_ACCESSIBILITY, 5 },
-       { int_class_init, NSV::CLASS_INT, NSV::CLASS_OBJECT, NS_GLOBAL, 9 },
-       { namespace_class_init, NSV::CLASS_NAMESPACE, NSV::CLASS_OBJECT,
+    { int_class_init, NSV::CLASS_INT, NSV::CLASS_OBJECT, NS_GLOBAL, 9 },
+    { namespace_class_init, NSV::CLASS_NAMESPACE, NSV::CLASS_OBJECT,
         NS_GLOBAL, 9 }
 //  { function_name, name key, super name key, lowest version },
 
 // These classes are all implicitly constructed; that is, it is not necessary 
for
 // the class name to be used to construct the class, so they must always be 
available.
-//     { object_class_init, NSV::CLASS_OBJECT, 0, NS_GLOBAL, 5 }
-//     { function_class_init, NSV::CLASS_FUNCTION, NSV::CLASS_OBJECT,
-//     NS_GLOBAL, 6 }
-//     { array_class_init, NSV::CLASS_ARRAY, NSV::CLASS_OBJECT, NS_GLOBAL, 5 }
-//     { string_class_init, NSV::CLASS_STRING, NSV::CLASS_OBJECT, NS_GLOBAL, 5 
}
+//  { object_class_init, NSV::CLASS_OBJECT, 0, NS_GLOBAL, 5 }
+//  { function_class_init, NSV::CLASS_FUNCTION, NSV::CLASS_OBJECT,
+//  NS_GLOBAL, 6 }
+//  { array_class_init, NSV::CLASS_ARRAY, NSV::CLASS_OBJECT, NS_GLOBAL, 5 }
+//  { string_class_init, NSV::CLASS_STRING, NSV::CLASS_OBJECT, NS_GLOBAL, 5 }
 
 };
 
 void
 ClassHierarchy::massDeclare()
 {
-       // Natives get declared first. It doesn't make any sense for a native
-       // to depend on an extension, but it does make sense the other way
-       // around.
-       const size_t size = sizeof (knownClasses) / sizeof (nativeClass);
-       for (size_t i = 0; i < size; ++i)
-       {
-               const nativeClass& c = knownClasses[i];
-
-               if ( ! declareClass(c) )
-               {
-                       log_error("Could not declare class %s", c);
-               }
-       }
-
-       if (mExtension != NULL)
-       {
-               /* Load extensions here */
-       }
+    // Natives get declared first. It doesn't make any sense for a native
+    // to depend on an extension, but it does make sense the other way
+    // around.
+    const size_t size = sizeof (knownClasses) / sizeof (nativeClass);
+    for (size_t i = 0; i < size; ++i)
+    {
+        const nativeClass& c = knownClasses[i];
+
+        if ( ! declareClass(c) )
+        {
+            log_error("Could not declare class %s", c);
+        }
+    }
+
+    if (mExtension != NULL)
+    {
+        /* Load extensions here */
+    }
 }
 
 void
 ClassHierarchy::markReachableResources() const
 {
-       // TODO
+    // TODO
 }
 
 std::ostream&
 operator<<(std::ostream& os, const ClassHierarchy::nativeClass& c)
 {
-       string_table& st = VM::get().getStringTable();
-
-       os << "("
-               << " name:" << st.value(c.name)
-               << " super:" << st.value(c.super_name)
-               << " namespace:" << st.value(c.namespace_name)
-               << " version:" << c.version
-               << ")";
-
-       return os;
+    string_table& st = VM::get().getStringTable();
+
+    os << "("
+        << " name:" << st.value(c.name)
+        << " super:" << st.value(c.super_name)
+        << " namespace:" << st.value(c.namespace_name)
+        << " version:" << c.version
+        << ")";
+
+    return os;
 }
 
 std::ostream&
 operator<<(std::ostream& os, const ClassHierarchy::extensionClass& c)
 {
-       string_table& st = VM::get().getStringTable();
-
-       os << "(file:" << c.file_name
-               << " init:" << c.init_name
-               << " name:" << st.value(c.name)
-               << " super:" << st.value(c.super_name)
-               << " namespace:" << st.value(c.namespace_name)
-               << " version:" << c.version
-               << ")";
-
-       return os;
+    string_table& st = VM::get().getStringTable();
+
+    os << "(file:" << c.file_name
+        << " init:" << c.init_name
+        << " name:" << st.value(c.name)
+        << " super:" << st.value(c.super_name)
+        << " namespace:" << st.value(c.namespace_name)
+        << " version:" << c.version
+        << ")";
+
+    return os;
 }
 
 } // end of namespace gnash

=== modified file 'libcore/asobj/flash/net/netclasses.h'
--- a/libcore/asobj/flash/net/netclasses.h      2009-06-07 00:49:02 +0000
+++ b/libcore/asobj/flash/net/netclasses.h      2009-06-10 19:54:27 +0000
@@ -3,23 +3,24 @@
 #define GNASH_ASOBJ_FLASH_NET_H 1
 #include "sharedlib.h"
 static gnash::SharedLib::initentry *as3netclasses[] = {
-       gnash::filefilter_class_init,
-       gnash::idynamicpropertyoutput_class_init,
-       gnash::idynamicpropertywriter_class_init,
-       gnash::objectencoding_class_init,
-       gnash::responder_class_init,
-       gnash::sharedobjectflushstatus_class_init,
-       gnash::socket_class_init,
-       gnash::urlloader_class_init,
-       gnash::urlrequestheader_class_init,
-       gnash::urlrequestmethod_class_init,
-       gnash::urlstream_class_init,
-       gnash::filereferencelist_class_init,
-       gnash::filereference_class_init,
-       0
+    gnash::filefilter_class_init,
+    gnash::idynamicpropertyoutput_class_init,
+    gnash::idynamicpropertywriter_class_init,
+    gnash::objectencoding_class_init,
+    gnash::responder_class_init,
+    gnash::sharedobject_class_init,
+    gnash::sharedobjectflushstatus_class_init,
+    gnash::socket_class_init,
+    gnash::urlloader_class_init,
+    gnash::urlrequestheader_class_init,
+    gnash::urlrequestmethod_class_init,
+    gnash::urlstream_class_init,
+    gnash::filereferencelist_class_init,
+    gnash::filereference_class_init,
+    0
 };
 static gnash::SharedLib::initentry *as2netclasses[] = {
-       gnash::filereference_class_init,
-       0
+    gnash::filereference_class_init,
+    0
 };
 #endif // end of GNASH_ASOBJ_FLASH_NET_H


reply via email to

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