gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] /srv/bzr/gnash/trunk r11326: Separate prototype object re


From: Benjamin Wolsey
Subject: [Gnash-commit] /srv/bzr/gnash/trunk r11326: Separate prototype object retrieval from class/object creation for clarity
Date: Wed, 29 Jul 2009 12:54:47 +0200
User-agent: Bazaar (1.13.1)

------------------------------------------------------------
revno: 11326
committer: Benjamin Wolsey <address@hidden>
branch nick: trunk
timestamp: Wed 2009-07-29 12:54:47 +0200
message:
  Separate prototype object retrieval from class/object creation for clarity
  and easier refactoring.
modified:
  extensions/dbus/dbus_ext.cpp
  extensions/dejagnu/dejagnu.cpp
  extensions/fileio/fileio.cpp
  extensions/gtk2/gtkext.cpp
  extensions/launcher/launcher_ext.cpp
  extensions/lirc/lirc_ext.cpp
  extensions/metome/metome_ext.cpp
  extensions/mysql/mysql_db.cpp
  libcore/Button.cpp
  libcore/asobj/Array_as.cpp
  libcore/asobj/AsBroadcaster.cpp
  libcore/asobj/Boolean_as.cpp
  libcore/asobj/Color_as.cpp
  libcore/asobj/CustomActions.cpp
  libcore/asobj/Date_as.cpp
  libcore/asobj/LoadVars_as.cpp
  libcore/asobj/Namespace_as.cpp
  libcore/asobj/NetConnection_as.cpp
  libcore/asobj/NetStream_as.cpp
  libcore/asobj/Number_as.cpp
  libcore/asobj/Object.cpp
  libcore/asobj/QName_as.cpp
  libcore/asobj/String_as.cpp
  libcore/asobj/TextFormat_as.cpp
  libcore/asobj/flash/accessibility/AccessibilityProperties_as.cpp
  libcore/asobj/flash/desktop/ClipboardFormats_as.cpp
  libcore/asobj/flash/desktop/Clipboard_as.cpp
  libcore/asobj/flash/display/AVM1Movie_as.cpp
  libcore/asobj/flash/display/BitmapData_as.cpp
  libcore/asobj/flash/display/Bitmap_as.cpp
  libcore/asobj/flash/display/BlendMode_as.cpp
  libcore/asobj/flash/display/DisplayObjectContainer_as.cpp
  libcore/asobj/flash/display/DisplayObject_as.cpp
  libcore/asobj/flash/display/FrameLabel_as.cpp
  libcore/asobj/flash/display/Graphics_as.cpp
  libcore/asobj/flash/display/IBitmapDrawable_as.cpp
  libcore/asobj/flash/display/InteractiveObject_as.cpp
  libcore/asobj/flash/display/LoaderInfo_as.cpp
  libcore/asobj/flash/display/Loader_as.cpp
  libcore/asobj/flash/display/MorphShape_as.cpp
  libcore/asobj/flash/display/MovieClip_as.cpp
  libcore/asobj/flash/display/Scene_as.cpp
  libcore/asobj/flash/display/Shape_as.cpp
  libcore/asobj/flash/display/SimpleButton_as.cpp
  libcore/asobj/flash/display/Sprite_as.cpp
  libcore/asobj/flash/display/StageDisplayState_as.cpp
  libcore/asobj/flash/display/StageQuality_as.cpp
  libcore/asobj/flash/errors/EOFError_as.cpp
  libcore/asobj/flash/errors/IOError_as.cpp
  libcore/asobj/flash/errors/IllegalOperationError_as.cpp
  libcore/asobj/flash/errors/InvalidSWFError_as.cpp
  libcore/asobj/flash/errors/MemoryError_as.cpp
  libcore/asobj/flash/errors/ScriptTimeoutError_as.cpp
  libcore/asobj/flash/errors/StackOverflowError_as.cpp
  libcore/asobj/flash/events/ActivityEvent_as.cpp
  libcore/asobj/flash/events/AsyncErrorEvent_as.cpp
  libcore/asobj/flash/events/ContextMenuEvent_as.cpp
  libcore/asobj/flash/events/DataEvent_as.cpp
  libcore/asobj/flash/events/ErrorEvent_as.cpp
  libcore/asobj/flash/events/EventDispatcher_as.cpp
  libcore/asobj/flash/events/EventPhase_as.cpp
  libcore/asobj/flash/events/Event_as.cpp
  libcore/asobj/flash/events/FocusEvent_as.cpp
  libcore/asobj/flash/events/FullScreenEvent_as.cpp
  libcore/asobj/flash/events/HTTPStatusEvent_as.cpp
  libcore/asobj/flash/events/IEventDispatcher_as.cpp
  libcore/asobj/flash/events/IMEEvent_as.cpp
  libcore/asobj/flash/events/IOErrorEvent_as.cpp
  libcore/asobj/flash/events/KeyboardEvent_as.cpp
  libcore/asobj/flash/events/MouseEvent_as.cpp
  libcore/asobj/flash/events/NetStatusEvent_as.cpp
  libcore/asobj/flash/events/ProgressEvent_as.cpp
  libcore/asobj/flash/events/SecurityErrorEvent_as.cpp
  libcore/asobj/flash/events/StatusEvent_as.cpp
  libcore/asobj/flash/events/SyncEvent_as.cpp
  libcore/asobj/flash/events/TextEvent_as.cpp
  libcore/asobj/flash/events/TimerEvent_as.cpp
  libcore/asobj/flash/external/ExternalInterface_as.cpp
  libcore/asobj/flash/filters/BitmapFilter_as.cpp
  libcore/asobj/flash/filters/DisplacementMapFilter_as.cpp
  libcore/asobj/flash/geom/ColorTransform_as.cpp
  libcore/asobj/flash/geom/Matrix_as.cpp
  libcore/asobj/flash/geom/Point_as.cpp
  libcore/asobj/flash/geom/Point_as.h
  libcore/asobj/flash/geom/Rectangle_as.cpp
  libcore/asobj/flash/media/Camera_as.cpp
  libcore/asobj/flash/media/ID3Info_as.cpp
  libcore/asobj/flash/media/Microphone_as.cpp
  libcore/asobj/flash/media/SoundChannel_as.cpp
  libcore/asobj/flash/media/SoundLoaderContext_as.cpp
  libcore/asobj/flash/media/SoundMixer_as.cpp
  libcore/asobj/flash/media/SoundTransform_as.cpp
  libcore/asobj/flash/media/Video_as.cpp
  libcore/asobj/flash/media/media_as.cpp
  libcore/asobj/flash/net/FileFilter_as.cpp
  libcore/asobj/flash/net/FileReferenceList_as.cpp
  libcore/asobj/flash/net/FileReference_as.cpp
  libcore/asobj/flash/net/IDynamicPropertyOutput_as.cpp
  libcore/asobj/flash/net/IDynamicPropertyWriter_as.cpp
  libcore/asobj/flash/net/NetConnection_as.cpp
  libcore/asobj/flash/net/NetStream_as.cpp
  libcore/asobj/flash/net/ObjectEncoding_as.cpp
  libcore/asobj/flash/net/Responder_as.cpp
  libcore/asobj/flash/net/SharedObject_as.cpp
  libcore/asobj/flash/net/Socket_as.cpp
  libcore/asobj/flash/net/URLLoader_as.cpp
  libcore/asobj/flash/net/URLRequestHeader_as.cpp
  libcore/asobj/flash/net/URLRequest_as.cpp
  libcore/asobj/flash/net/URLStream_as.cpp
  libcore/asobj/flash/net/URLVariables_as.cpp
  libcore/asobj/flash/net/XMLSocket_as.cpp
  libcore/asobj/flash/printing/PrintJobOptions_as.cpp
  libcore/asobj/flash/printing/PrintJob_as.cpp
  libcore/asobj/flash/sampler/DeleteObjectSample_as.cpp
  libcore/asobj/flash/sampler/NewObjectSample_as.cpp
  libcore/asobj/flash/sampler/Sample_as.cpp
  libcore/asobj/flash/sampler/StackFrame_as.cpp
  libcore/asobj/flash/system/ApplicationDomain_as.cpp
  libcore/asobj/flash/system/Capabilities_as.cpp
  libcore/asobj/flash/system/IME_as.cpp
  libcore/asobj/flash/system/LoaderContext_as.cpp
  libcore/asobj/flash/system/SecurityDomain_as.cpp
  libcore/asobj/flash/system/SecurityPanel_as.cpp
  libcore/asobj/flash/system/Security_as.cpp
  libcore/asobj/flash/text/CSMSettings_as.cpp
  libcore/asobj/flash/text/FontStyle_as.cpp
  libcore/asobj/flash/text/FontType_as.cpp
  libcore/asobj/flash/text/Font_as.cpp
  libcore/asobj/flash/text/StaticText_as.cpp
  libcore/asobj/flash/text/StyleSheet_as.cpp
  libcore/asobj/flash/text/TextField_as.cpp
  libcore/asobj/flash/text/TextFormatAlign_as.cpp
  libcore/asobj/flash/text/TextFormat_as.cpp
  libcore/asobj/flash/text/TextLineMetrics_as.cpp
  libcore/asobj/flash/text/TextRenderer_as.cpp
  libcore/asobj/flash/text/TextSnapshot_as.cpp
  libcore/asobj/flash/ui/ContextMenuBuiltInItems_as.cpp
  libcore/asobj/flash/ui/ContextMenuItem_as.cpp
  libcore/asobj/flash/ui/ContextMenu_as.cpp
  libcore/asobj/flash/ui/KeyLocation_as.cpp
  libcore/asobj/flash/utils/ByteArray_as.cpp
  libcore/asobj/flash/utils/Dictionary_as.cpp
  libcore/asobj/flash/utils/Endian_as.cpp
  libcore/asobj/flash/utils/IDataInput_as.cpp
  libcore/asobj/flash/utils/IDataOutput_as.cpp
  libcore/asobj/flash/utils/IExternalizable_as.cpp
  libcore/asobj/flash/utils/Proxy_as.cpp
  libcore/asobj/flash/utils/Timer_as.cpp
  libcore/asobj/flash/xml/XMLDocument_as.cpp
  libcore/asobj/flash/xml/XMLNode_as.cpp
  libcore/asobj/int_as.cpp
    ------------------------------------------------------------
    revno: 11325.1.1
    committer: Benjamin Wolsey <address@hidden>
    branch nick: work
    timestamp: Wed 2009-07-29 07:31:28 +0200
    message:
      Change more as_objects creation.
    modified:
      libcore/asobj/flash/desktop/ClipboardFormats_as.cpp
      libcore/asobj/flash/display/StageDisplayState_as.cpp
      libcore/asobj/flash/display/StageQuality_as.cpp
      libcore/asobj/flash/text/TextFormatAlign_as.cpp
    ------------------------------------------------------------
    revno: 11325.1.2
    committer: Benjamin Wolsey <address@hidden>
    branch nick: work
    timestamp: Wed 2009-07-29 07:40:20 +0200
    message:
      Part 2: separate prototype retrieval.
    modified:
      libcore/Button.cpp
      libcore/asobj/Color_as.cpp
      libcore/asobj/CustomActions.cpp
      libcore/asobj/Date_as.cpp
      libcore/asobj/LoadVars_as.cpp
      libcore/asobj/Namespace_as.cpp
      libcore/asobj/NetConnection_as.cpp
      libcore/asobj/NetStream_as.cpp
      libcore/asobj/Object.cpp
      libcore/asobj/QName_as.cpp
      libcore/asobj/TextFormat_as.cpp
      libcore/asobj/flash/accessibility/AccessibilityProperties_as.cpp
      libcore/asobj/flash/desktop/Clipboard_as.cpp
      libcore/asobj/flash/display/AVM1Movie_as.cpp
      libcore/asobj/flash/display/BitmapData_as.cpp
      libcore/asobj/flash/display/Bitmap_as.cpp
      libcore/asobj/flash/display/BlendMode_as.cpp
      libcore/asobj/flash/display/DisplayObject_as.cpp
      libcore/asobj/flash/display/FrameLabel_as.cpp
      libcore/asobj/flash/display/Graphics_as.cpp
      libcore/asobj/flash/display/IBitmapDrawable_as.cpp
      libcore/asobj/flash/display/InteractiveObject_as.cpp
      libcore/asobj/flash/display/LoaderInfo_as.cpp
      libcore/asobj/flash/display/Loader_as.cpp
      libcore/asobj/flash/display/MorphShape_as.cpp
      libcore/asobj/flash/display/MovieClip_as.cpp
      libcore/asobj/flash/display/Scene_as.cpp
      libcore/asobj/flash/display/Shape_as.cpp
      libcore/asobj/flash/display/SimpleButton_as.cpp
      libcore/asobj/flash/display/Sprite_as.cpp
      libcore/asobj/flash/errors/EOFError_as.cpp
      libcore/asobj/flash/errors/IOError_as.cpp
      libcore/asobj/flash/errors/IllegalOperationError_as.cpp
      libcore/asobj/flash/errors/InvalidSWFError_as.cpp
      libcore/asobj/flash/errors/MemoryError_as.cpp
      libcore/asobj/flash/errors/ScriptTimeoutError_as.cpp
      libcore/asobj/flash/errors/StackOverflowError_as.cpp
      libcore/asobj/flash/events/ActivityEvent_as.cpp
      libcore/asobj/flash/events/AsyncErrorEvent_as.cpp
      libcore/asobj/flash/events/ContextMenuEvent_as.cpp
      libcore/asobj/flash/events/DataEvent_as.cpp
      libcore/asobj/flash/events/ErrorEvent_as.cpp
      libcore/asobj/flash/events/EventDispatcher_as.cpp
      libcore/asobj/flash/events/EventPhase_as.cpp
      libcore/asobj/flash/events/Event_as.cpp
      libcore/asobj/flash/events/FocusEvent_as.cpp
      libcore/asobj/flash/events/FullScreenEvent_as.cpp
      libcore/asobj/flash/events/HTTPStatusEvent_as.cpp
      libcore/asobj/flash/events/IEventDispatcher_as.cpp
      libcore/asobj/flash/events/IMEEvent_as.cpp
      libcore/asobj/flash/events/IOErrorEvent_as.cpp
      libcore/asobj/flash/events/KeyboardEvent_as.cpp
      libcore/asobj/flash/events/MouseEvent_as.cpp
      libcore/asobj/flash/events/NetStatusEvent_as.cpp
      libcore/asobj/flash/events/ProgressEvent_as.cpp
      libcore/asobj/flash/events/SecurityErrorEvent_as.cpp
      libcore/asobj/flash/events/StatusEvent_as.cpp
      libcore/asobj/flash/events/SyncEvent_as.cpp
      libcore/asobj/flash/events/TextEvent_as.cpp
      libcore/asobj/flash/events/TimerEvent_as.cpp
      libcore/asobj/flash/filters/DisplacementMapFilter_as.cpp
      libcore/asobj/flash/geom/Point_as.cpp
      libcore/asobj/flash/media/Camera_as.cpp
      libcore/asobj/flash/media/ID3Info_as.cpp
      libcore/asobj/flash/media/Microphone_as.cpp
      libcore/asobj/flash/media/SoundChannel_as.cpp
      libcore/asobj/flash/media/SoundLoaderContext_as.cpp
      libcore/asobj/flash/media/SoundMixer_as.cpp
      libcore/asobj/flash/media/SoundTransform_as.cpp
      libcore/asobj/flash/media/Video_as.cpp
      libcore/asobj/flash/media/media_as.cpp
      libcore/asobj/flash/net/FileFilter_as.cpp
      libcore/asobj/flash/net/FileReferenceList_as.cpp
      libcore/asobj/flash/net/FileReference_as.cpp
      libcore/asobj/flash/net/IDynamicPropertyOutput_as.cpp
      libcore/asobj/flash/net/IDynamicPropertyWriter_as.cpp
      libcore/asobj/flash/net/NetConnection_as.cpp
      libcore/asobj/flash/net/NetStream_as.cpp
      libcore/asobj/flash/net/ObjectEncoding_as.cpp
      libcore/asobj/flash/net/Responder_as.cpp
      libcore/asobj/flash/net/SharedObject_as.cpp
      libcore/asobj/flash/net/Socket_as.cpp
      libcore/asobj/flash/net/URLLoader_as.cpp
      libcore/asobj/flash/net/URLRequestHeader_as.cpp
      libcore/asobj/flash/net/URLRequest_as.cpp
      libcore/asobj/flash/net/URLStream_as.cpp
      libcore/asobj/flash/net/URLVariables_as.cpp
      libcore/asobj/flash/net/XMLSocket_as.cpp
      libcore/asobj/flash/printing/PrintJobOptions_as.cpp
      libcore/asobj/flash/printing/PrintJob_as.cpp
      libcore/asobj/flash/sampler/DeleteObjectSample_as.cpp
      libcore/asobj/flash/sampler/NewObjectSample_as.cpp
      libcore/asobj/flash/sampler/Sample_as.cpp
      libcore/asobj/flash/sampler/StackFrame_as.cpp
      libcore/asobj/flash/system/ApplicationDomain_as.cpp
      libcore/asobj/flash/system/Capabilities_as.cpp
      libcore/asobj/flash/system/IME_as.cpp
      libcore/asobj/flash/system/LoaderContext_as.cpp
      libcore/asobj/flash/system/SecurityDomain_as.cpp
      libcore/asobj/flash/system/SecurityPanel_as.cpp
      libcore/asobj/flash/system/Security_as.cpp
      libcore/asobj/flash/text/CSMSettings_as.cpp
      libcore/asobj/flash/text/FontStyle_as.cpp
      libcore/asobj/flash/text/FontType_as.cpp
      libcore/asobj/flash/text/Font_as.cpp
      libcore/asobj/flash/text/StaticText_as.cpp
      libcore/asobj/flash/text/StyleSheet_as.cpp
      libcore/asobj/flash/text/TextField_as.cpp
      libcore/asobj/flash/text/TextFormat_as.cpp
      libcore/asobj/flash/text/TextLineMetrics_as.cpp
      libcore/asobj/flash/text/TextRenderer_as.cpp
      libcore/asobj/flash/text/TextSnapshot_as.cpp
      libcore/asobj/flash/ui/ContextMenuBuiltInItems_as.cpp
      libcore/asobj/flash/ui/ContextMenu_as.cpp
      libcore/asobj/flash/ui/KeyLocation_as.cpp
      libcore/asobj/flash/utils/ByteArray_as.cpp
      libcore/asobj/flash/utils/Dictionary_as.cpp
      libcore/asobj/flash/utils/Endian_as.cpp
      libcore/asobj/flash/utils/IDataInput_as.cpp
      libcore/asobj/flash/utils/IDataOutput_as.cpp
      libcore/asobj/flash/utils/IExternalizable_as.cpp
      libcore/asobj/flash/utils/Proxy_as.cpp
      libcore/asobj/flash/utils/Timer_as.cpp
      libcore/asobj/flash/xml/XMLDocument_as.cpp
      libcore/asobj/flash/xml/XMLNode_as.cpp
      libcore/asobj/int_as.cpp
    ------------------------------------------------------------
    revno: 11325.1.3
    committer: Benjamin Wolsey <address@hidden>
    branch nick: work
    timestamp: Wed 2009-07-29 07:56:36 +0200
    message:
      Fix Point_as, tabs to spaces.
    modified:
      libcore/asobj/flash/geom/Point_as.cpp
    ------------------------------------------------------------
    revno: 11325.1.4
    committer: Benjamin Wolsey <address@hidden>
    branch nick: work
    timestamp: Wed 2009-07-29 07:59:24 +0200
    message:
      Separate more prototypes.
    modified:
      libcore/asobj/Array_as.cpp
      libcore/asobj/AsBroadcaster.cpp
      libcore/asobj/Boolean_as.cpp
      libcore/asobj/Number_as.cpp
      libcore/asobj/String_as.cpp
      libcore/asobj/flash/display/DisplayObjectContainer_as.cpp
      libcore/asobj/flash/external/ExternalInterface_as.cpp
      libcore/asobj/flash/filters/BitmapFilter_as.cpp
      libcore/asobj/flash/geom/ColorTransform_as.cpp
      libcore/asobj/flash/geom/Matrix_as.cpp
      libcore/asobj/flash/geom/Rectangle_as.cpp
      libcore/asobj/flash/ui/ContextMenuItem_as.cpp
    ------------------------------------------------------------
    revno: 11325.1.5
    committer: Benjamin Wolsey <address@hidden>
    branch nick: work
    timestamp: Wed 2009-07-29 08:12:04 +0200
    message:
      Do Point construction properly. Tabs to spaces.
    modified:
      libcore/asobj/flash/geom/Matrix_as.cpp
      libcore/asobj/flash/geom/Point_as.h
      libcore/asobj/flash/geom/Rectangle_as.cpp
    ------------------------------------------------------------
    revno: 11325.1.6
    committer: Benjamin Wolsey <address@hidden>
    branch nick: work
    timestamp: Wed 2009-07-29 08:12:26 +0200
    message:
      Do extension prototypes as well.
    modified:
      extensions/dbus/dbus_ext.cpp
      extensions/dejagnu/dejagnu.cpp
      extensions/fileio/fileio.cpp
      extensions/gtk2/gtkext.cpp
      extensions/launcher/launcher_ext.cpp
      extensions/lirc/lirc_ext.cpp
      extensions/metome/metome_ext.cpp
      extensions/mysql/mysql_db.cpp
    ------------------------------------------------------------
    revno: 11325.1.7
    committer: Benjamin Wolsey <address@hidden>
    branch nick: work
    timestamp: Wed 2009-07-29 08:12:35 +0200
    message:
      Rename variable.
    modified:
      libcore/asobj/Number_as.cpp
=== modified file 'extensions/dbus/dbus_ext.cpp'
--- a/extensions/dbus/dbus_ext.cpp      2009-07-14 13:40:32 +0000
+++ b/extensions/dbus/dbus_ext.cpp      2009-07-29 06:12:26 +0000
@@ -124,7 +124,8 @@
        static boost::intrusive_ptr<builtin_function> cl;
        if (cl == NULL) {
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&dbus_ctor, getInterface());
+        as_object* proto = getInterface();
+        cl = gl->createClass(&dbus_ctor, proto);
 //         // replicate all interface to class, to be able to access
 //         // all methods as static functions
            attachInterface(cl.get());

=== modified file 'extensions/dejagnu/dejagnu.cpp'
--- a/extensions/dejagnu/dejagnu.cpp    2009-07-14 13:40:32 +0000
+++ b/extensions/dejagnu/dejagnu.cpp    2009-07-29 06:12:26 +0000
@@ -160,8 +160,9 @@
        // This is going to be the global "class"/"function"
        static boost::intrusive_ptr<builtin_function> cl;
        if (cl == NULL) {
+        as_object* proto = getInterface();
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&dejagnu_ctor, getInterface());
+        cl = gl->createClass(&dejagnu_ctor, proto);
 //         // replicate all interface to class, to be able to access
 //         // all methods as static functions
            attachInterface(cl.get());

=== modified file 'extensions/fileio/fileio.cpp'
--- a/extensions/fileio/fileio.cpp      2009-07-14 13:40:32 +0000
+++ b/extensions/fileio/fileio.cpp      2009-07-29 06:12:26 +0000
@@ -604,8 +604,9 @@
        // This is going to be the global "class"/"function"
        static boost::intrusive_ptr<builtin_function> cl;
        if (cl == NULL) {
+        as_object* proto = getInterface();
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&fileio_ctor, getInterface());
+        cl = gl->createClass(&fileio_ctor, proto);
 //         // replicate all interface to class, to be able to access
 //         // all methods as static functions
            //attachInterface(*cl);

=== modified file 'extensions/gtk2/gtkext.cpp'
--- a/extensions/gtk2/gtkext.cpp        2009-07-14 15:40:58 +0000
+++ b/extensions/gtk2/gtkext.cpp        2009-07-29 06:12:26 +0000
@@ -356,8 +356,9 @@
        // This is going to be the global "class"/"function"
        static boost::intrusive_ptr<builtin_function> cl;
        if (cl == NULL) {
+        as_object* proto = getInterface();
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&gtkext_ctor, getInterface());
+        cl = gl->createClass(&gtkext_ctor, proto);
            // replicate all interface to class, to be able to access
            // all methods as static functions
            attachInterface(cl.get());

=== modified file 'extensions/launcher/launcher_ext.cpp'
--- a/extensions/launcher/launcher_ext.cpp      2009-07-14 13:40:32 +0000
+++ b/extensions/launcher/launcher_ext.cpp      2009-07-29 06:12:26 +0000
@@ -150,7 +150,8 @@
        static boost::intrusive_ptr<builtin_function> cl;
        if (cl == NULL) {
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&launcher_ctor, getInterface());
+        as_object* proto = getInterface();
+        cl = gl->createClass(&launcher_ctor, proto);
 //         // replicate all interface to class, to be able to access
 //         // all methods as static functions
            attachInterface(cl.get());

=== modified file 'extensions/lirc/lirc_ext.cpp'
--- a/extensions/lirc/lirc_ext.cpp      2009-07-14 13:40:32 +0000
+++ b/extensions/lirc/lirc_ext.cpp      2009-07-29 06:12:26 +0000
@@ -146,7 +146,8 @@
        static boost::intrusive_ptr<builtin_function> cl;
        if (cl == NULL) {
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&lirc_ctor, getInterface());
+        as_object* proto = getInterface();
+        cl = gl->createClass(&lirc_ctor, proto);
 //         // replicate all interface to class, to be able to access
 //         // all methods as static functions
            attachInterface(cl.get());

=== modified file 'extensions/metome/metome_ext.cpp'
--- a/extensions/metome/metome_ext.cpp  2009-07-14 13:40:32 +0000
+++ b/extensions/metome/metome_ext.cpp  2009-07-29 06:12:26 +0000
@@ -124,7 +124,8 @@
        static boost::intrusive_ptr<builtin_function> cl;
        if (cl == NULL) {
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&metome_ctor, getInterface());
+        as_object* proto = getInterface();
+        cl = gl->createClass(&metome_ctor, proto);
 //         // replicate all interface to class, to be able to access
 //         // all methods as static functions
            attachInterface(cl.get());

=== modified file 'extensions/mysql/mysql_db.cpp'
--- a/extensions/mysql/mysql_db.cpp     2009-07-14 15:40:58 +0000
+++ b/extensions/mysql/mysql_db.cpp     2009-07-29 06:12:26 +0000
@@ -422,7 +422,8 @@
        static boost::intrusive_ptr<builtin_function> cl;
        if (cl == NULL) {
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&mysql_ctor, getInterface());
+        as_object* proto = getInterface();
+        cl = gl->createClass(&mysql_ctor, proto);
 //         // replicate all interface to class, to be able to access
 //         // all methods as static functions
            attachInterface(cl.get());

=== modified file 'libcore/Button.cpp'
--- a/libcore/Button.cpp        2009-07-16 09:02:35 +0000
+++ b/libcore/Button.cpp        2009-07-29 05:40:20 +0000
@@ -1127,7 +1127,8 @@
   if ( cl == NULL )
   {
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&button_ctor, getButtonInterface());
+        as_object* proto = getButtonInterface();
+        cl = gl->createClass(&button_ctor, proto);
     VM::get().addStatic(cl.get());
   }
 

=== modified file 'libcore/asobj/Array_as.cpp'
--- a/libcore/asobj/Array_as.cpp        2009-07-16 09:37:37 +0000
+++ b/libcore/asobj/Array_as.cpp        2009-07-29 05:59:24 +0000
@@ -1564,7 +1564,8 @@
     if ( ar == NULL )
     {
         Global_as* gl = getGlobal(glob);
-        ar = gl->createClass(&array_new, getArrayInterface());
+        as_object* proto = getArrayInterface();
+        ar = gl->createClass(&array_new, proto);
 
         // Attach static members
         attachArrayStatics(*ar);

=== modified file 'libcore/asobj/AsBroadcaster.cpp'
--- a/libcore/asobj/AsBroadcaster.cpp   2009-07-16 09:37:37 +0000
+++ b/libcore/asobj/AsBroadcaster.cpp   2009-07-29 05:59:24 +0000
@@ -154,8 +154,9 @@
     static boost::intrusive_ptr<as_object> obj = NULL;
     if ( ! obj )
     {
+        as_object* proto = getAsBroadcasterInterface();
         Global_as* gl = vm.getGlobal();
-        obj = gl->createClass(asbroadcaster_ctor, 
getAsBroadcasterInterface()); 
+        obj = gl->createClass(asbroadcaster_ctor, proto); 
         vm.addStatic(obj.get()); // correct ?
 
         const int flags = PropFlags::dontEnum |

=== modified file 'libcore/asobj/Boolean_as.cpp'
--- a/libcore/asobj/Boolean_as.cpp      2009-07-16 09:02:35 +0000
+++ b/libcore/asobj/Boolean_as.cpp      2009-07-29 05:59:24 +0000
@@ -102,7 +102,8 @@
     static as_object* cl = 0;
 
     if (!cl) {
-        cl = g.createClass(&boolean_ctor, getBooleanInterface());
+        as_object* proto = getBooleanInterface();
+        cl = g.createClass(&boolean_ctor, proto);
         VM::get().addStatic(cl);
     }
     return cl;

=== modified file 'libcore/asobj/Color_as.cpp'
--- a/libcore/asobj/Color_as.cpp        2009-07-16 09:02:35 +0000
+++ b/libcore/asobj/Color_as.cpp        2009-07-29 05:40:20 +0000
@@ -144,7 +144,8 @@
        if ( cl == NULL )
        {
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&color_ctor, getColorInterface());
+        as_object* proto = getColorInterface();
+        cl = gl->createClass(&color_ctor, proto);
        }
 
        // Register _global.Color

=== modified file 'libcore/asobj/CustomActions.cpp'
--- a/libcore/asobj/CustomActions.cpp   2009-07-16 09:02:35 +0000
+++ b/libcore/asobj/CustomActions.cpp   2009-07-29 05:40:20 +0000
@@ -111,7 +111,8 @@
        if ( cl == NULL )
        {
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&customactions_ctor, getCustomActionsInterface());
+        as_object* proto = getCustomActionsInterface();
+        cl = gl->createClass(&customactions_ctor, proto);
                // replicate all interface to class, to be able to access
                // all methods as static functions
                attachCustomActionsInterface(*cl);

=== modified file 'libcore/asobj/Date_as.cpp'
--- a/libcore/asobj/Date_as.cpp 2009-07-16 09:02:35 +0000
+++ b/libcore/asobj/Date_as.cpp 2009-07-29 05:40:20 +0000
@@ -215,7 +215,8 @@
 
     if ( cl == NULL ) {
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&date_new, getDateInterface());
+        as_object* proto = getDateInterface();
+        cl = gl->createClass(&date_new, proto);
         
         // replicate static interface to class (Date.UTC)
         attachDateStaticInterface(*cl);

=== modified file 'libcore/asobj/LoadVars_as.cpp'
--- a/libcore/asobj/LoadVars_as.cpp     2009-07-16 09:37:37 +0000
+++ b/libcore/asobj/LoadVars_as.cpp     2009-07-29 05:40:20 +0000
@@ -147,7 +147,8 @@
        if ( cl == NULL )
        {
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&loadvars_ctor, getLoadVarsInterface());
+        as_object* proto = getLoadVarsInterface();
+        cl = gl->createClass(&loadvars_ctor, proto);
        }
 
        // Register _global.LoadVars, only visible for SWF6 up

=== modified file 'libcore/asobj/Namespace_as.cpp'
--- a/libcore/asobj/Namespace_as.cpp    2009-07-16 09:02:35 +0000
+++ b/libcore/asobj/Namespace_as.cpp    2009-07-29 05:40:20 +0000
@@ -66,7 +66,8 @@
     boost::intrusive_ptr<as_object> cl;
     
     Global_as* gl = getGlobal(where);
-    cl = gl->createClass(&namespace_ctor, getNamespaceInterface());
+    as_object* proto = getNamespaceInterface();
+    cl = gl->createClass(&namespace_ctor, proto);
 
     where.init_member(getName(uri), cl.get(), as_object::DefaultFlags,
             getNamespace(uri));

=== modified file 'libcore/asobj/NetConnection_as.cpp'
--- a/libcore/asobj/NetConnection_as.cpp        2009-07-16 09:02:35 +0000
+++ b/libcore/asobj/NetConnection_as.cpp        2009-07-29 05:40:20 +0000
@@ -696,7 +696,8 @@
     if ( cl == NULL )
     {
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&netconnection_new, getNetConnectionInterface());
+        as_object* proto = getNetConnectionInterface();
+        cl = gl->createClass(&netconnection_new, proto);
 
         // replicate all interface to class, to be able to access
         // all methods as static functions

=== modified file 'libcore/asobj/NetStream_as.cpp'
--- a/libcore/asobj/NetStream_as.cpp    2009-07-16 09:02:35 +0000
+++ b/libcore/asobj/NetStream_as.cpp    2009-07-29 05:40:20 +0000
@@ -115,7 +115,8 @@
     if ( cl == NULL )
     {
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&netstream_new, getNetStreamInterface());
+        as_object* proto = getNetStreamInterface();
+        cl = gl->createClass(&netstream_new, proto);
         // replicate all interface to class, to be able to access
         // all methods as static functions
         attachNetStreamInterface(*cl);

=== modified file 'libcore/asobj/Number_as.cpp'
--- a/libcore/asobj/Number_as.cpp       2009-07-16 09:02:35 +0000
+++ b/libcore/asobj/Number_as.cpp       2009-07-29 06:12:35 +0000
@@ -165,13 +165,14 @@
 }
 
 as_object*
-getNumberClass(Global_as& g)
+getNumberClass(Global_as& gl)
 {
     // This is going to be the global Number "class"/"function"
     static as_object* cl = 0;
 
+    as_object* proto = getNumberInterface();
     if (!cl) {
-        cl = g.createClass(&number_ctor, getNumberInterface());
+        cl = gl.createClass(&number_ctor, proto);
         attachNumberStaticInterface(*cl);
         VM::get().addStatic(cl);
     }

=== modified file 'libcore/asobj/Object.cpp'
--- a/libcore/asobj/Object.cpp  2009-07-16 09:37:37 +0000
+++ b/libcore/asobj/Object.cpp  2009-07-29 05:40:20 +0000
@@ -73,7 +73,8 @@
        if ( cl == NULL )
        {
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&object_ctor, getObjectInterface());
+        as_object* proto = getObjectInterface();
+        cl = gl->createClass(&object_ctor, proto);
 
                // Object.registerClass() --
         // TODO: should this only be in SWF6 or higher ?

=== modified file 'libcore/asobj/QName_as.cpp'
--- a/libcore/asobj/QName_as.cpp        2009-07-16 09:02:35 +0000
+++ b/libcore/asobj/QName_as.cpp        2009-07-29 05:40:20 +0000
@@ -65,7 +65,8 @@
     boost::intrusive_ptr<as_object> cl;
 
     Global_as* gl = getGlobal(where);
-    cl = gl->createClass(&qname_ctor, getQNameInterface());
+    as_object* proto = getQNameInterface();
+    cl = gl->createClass(&qname_ctor, proto);
 
     where.init_member(getName(uri), cl.get(), as_object::DefaultFlags,
             getNamespace(uri));

=== modified file 'libcore/asobj/String_as.cpp'
--- a/libcore/asobj/String_as.cpp       2009-07-16 09:37:37 +0000
+++ b/libcore/asobj/String_as.cpp       2009-07-29 05:59:24 +0000
@@ -872,8 +872,9 @@
 
     static as_object* cl = 0;
 
+    as_object* proto = getStringInterface();
     if (!cl) {
-        cl = gl.createClass(&string_ctor, getStringInterface());
+        cl = gl.createClass(&string_ctor, proto);
            cl->init_member("fromCharCode", getVM(gl).getNative(251, 14)); 
     }
 

=== modified file 'libcore/asobj/TextFormat_as.cpp'
--- a/libcore/asobj/TextFormat_as.cpp   2009-07-28 08:50:43 +0000
+++ b/libcore/asobj/TextFormat_as.cpp   2009-07-29 05:40:20 +0000
@@ -172,7 +172,8 @@
        if ( cl == NULL )
        {
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&textformat_new, getTextFormatInterface());
+        as_object* proto = getTextFormatInterface();
+        cl = gl->createClass(&textformat_new, proto);
        }
 
        // Register _global.Color

=== modified file 
'libcore/asobj/flash/accessibility/AccessibilityProperties_as.cpp'
--- a/libcore/asobj/flash/accessibility/AccessibilityProperties_as.cpp  
2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/accessibility/AccessibilityProperties_as.cpp  
2009-07-29 05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&accessibilityproperties_ctor, 
getAccessibilityPropertiesInterface());
+        as_object* proto = getAccessibilityPropertiesInterface();
+        cl = gl->createClass(&accessibilityproperties_ctor, proto);
         attachAccessibilityPropertiesStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/desktop/ClipboardFormats_as.cpp'
--- a/libcore/asobj/flash/desktop/ClipboardFormats_as.cpp       2009-07-16 
09:37:37 +0000
+++ b/libcore/asobj/flash/desktop/ClipboardFormats_as.cpp       2009-07-29 
05:31:28 +0000
@@ -41,7 +41,9 @@
 clipboardformats_class_init(as_object& where, const ObjectURI& uri)
 {
 
-    static as_object* obj = new as_object(getObjectInterface());
+    Global_as* gl = getGlobal(where);
+    as_object* proto = getObjectInterface();
+    static as_object* obj = gl->createObject(proto);
     attachClipboardFormatsStaticInterface(*obj);
     where.init_member(getName(uri), obj, as_object::DefaultFlags,
             getNamespace(uri));

=== modified file 'libcore/asobj/flash/desktop/Clipboard_as.cpp'
--- a/libcore/asobj/flash/desktop/Clipboard_as.cpp      2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/desktop/Clipboard_as.cpp      2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&clipboard_ctor, getClipboardInterface());
+        as_object* proto = getClipboardInterface();
+        cl = gl->createClass(&clipboard_ctor, proto);
         attachClipboardStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/AVM1Movie_as.cpp'
--- a/libcore/asobj/flash/display/AVM1Movie_as.cpp      2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/display/AVM1Movie_as.cpp      2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&avm1movie_ctor, getAVM1MovieInterface());
+        as_object* proto = getAVM1MovieInterface();
+        cl = gl->createClass(&avm1movie_ctor, proto);
         attachAVM1MovieStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/BitmapData_as.cpp'
--- a/libcore/asobj/flash/display/BitmapData_as.cpp     2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/display/BitmapData_as.cpp     2009-07-29 05:40:20 
+0000
@@ -231,7 +231,8 @@
     if ( ! cl )
     {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&BitmapData_ctor, getBitmapDataInterface());
+        as_object* proto = getBitmapDataInterface();
+        cl = gl->createClass(&BitmapData_ctor, proto);
         VM::get().addStatic(cl);
         attachBitmapDataStaticProperties(*cl);
     }

=== modified file 'libcore/asobj/flash/display/Bitmap_as.cpp'
--- a/libcore/asobj/flash/display/Bitmap_as.cpp 2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/display/Bitmap_as.cpp 2009-07-29 05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&bitmap_ctor, getBitmapInterface());
+        as_object* proto = getBitmapInterface();
+        cl = gl->createClass(&bitmap_ctor, proto);
         attachBitmapStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/BlendMode_as.cpp'
--- a/libcore/asobj/flash/display/BlendMode_as.cpp      2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/display/BlendMode_as.cpp      2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&blendmode_ctor, getBlendModeInterface());
+        as_object* proto = getBlendModeInterface();
+        cl = gl->createClass(&blendmode_ctor, proto);
         attachBlendModeStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/DisplayObjectContainer_as.cpp'
--- a/libcore/asobj/flash/display/DisplayObjectContainer_as.cpp 2009-07-16 
09:02:35 +0000
+++ b/libcore/asobj/flash/display/DisplayObjectContainer_as.cpp 2009-07-29 
05:59:24 +0000
@@ -64,8 +64,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&displayobjectcontainer_ctor,
-                getDisplayObjectContainerInterface());
+        as_object* proto = getDisplayObjectContainerInterface();
+        cl = gl->createClass(&displayobjectcontainer_ctor, proto);
     }
 
     // Register _global.DisplayObjectContainer

=== modified file 'libcore/asobj/flash/display/DisplayObject_as.cpp'
--- a/libcore/asobj/flash/display/DisplayObject_as.cpp  2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/display/DisplayObject_as.cpp  2009-07-29 05:40:20 
+0000
@@ -69,7 +69,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&displayobject_ctor, getDisplayObjectInterface());
+        as_object* proto = getDisplayObjectInterface();
+        cl = gl->createClass(&displayobject_ctor, proto);
         attachDisplayObjectStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/FrameLabel_as.cpp'
--- a/libcore/asobj/flash/display/FrameLabel_as.cpp     2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/display/FrameLabel_as.cpp     2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&framelabel_ctor, getFrameLabelInterface());
+        as_object* proto = getFrameLabelInterface();
+        cl = gl->createClass(&framelabel_ctor, proto);
         attachFrameLabelStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/Graphics_as.cpp'
--- a/libcore/asobj/flash/display/Graphics_as.cpp       2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/display/Graphics_as.cpp       2009-07-29 05:40:20 
+0000
@@ -71,7 +71,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&graphics_ctor, getGraphicsInterface());
+        as_object* proto = getGraphicsInterface();
+        cl = gl->createClass(&graphics_ctor, proto);
         attachGraphicsStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/IBitmapDrawable_as.cpp'
--- a/libcore/asobj/flash/display/IBitmapDrawable_as.cpp        2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/display/IBitmapDrawable_as.cpp        2009-07-29 
05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&ibitmapdrawable_ctor, 
getIBitmapDrawableInterface());
+        as_object* proto = getIBitmapDrawableInterface();
+        cl = gl->createClass(&ibitmapdrawable_ctor, proto);
         attachIBitmapDrawableStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/InteractiveObject_as.cpp'
--- a/libcore/asobj/flash/display/InteractiveObject_as.cpp      2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/display/InteractiveObject_as.cpp      2009-07-29 
05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&interactiveobject_ctor, 
getInteractiveObjectInterface());
+        as_object* proto = getInteractiveObjectInterface();
+        cl = gl->createClass(&interactiveobject_ctor, proto);
         attachInteractiveObjectStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/LoaderInfo_as.cpp'
--- a/libcore/asobj/flash/display/LoaderInfo_as.cpp     2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/display/LoaderInfo_as.cpp     2009-07-29 05:40:20 
+0000
@@ -65,7 +65,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&loaderinfo_ctor, getLoaderInfoInterface());
+        as_object* proto = getLoaderInfoInterface();
+        cl = gl->createClass(&loaderinfo_ctor, proto);
         attachLoaderInfoStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/Loader_as.cpp'
--- a/libcore/asobj/flash/display/Loader_as.cpp 2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/display/Loader_as.cpp 2009-07-29 05:40:20 +0000
@@ -61,7 +61,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&loader_ctor, getLoaderInterface());
+        as_object* proto = getLoaderInterface();
+        cl = gl->createClass(&loader_ctor, proto);
         attachLoaderStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/MorphShape_as.cpp'
--- a/libcore/asobj/flash/display/MorphShape_as.cpp     2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/display/MorphShape_as.cpp     2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&morphshape_ctor, getMorphShapeInterface());
+        as_object* proto = getMorphShapeInterface();
+        cl = gl->createClass(&morphshape_ctor, proto);
         attachMorphShapeStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/MovieClip_as.cpp'
--- a/libcore/asobj/flash/display/MovieClip_as.cpp      2009-07-28 13:32:07 
+0000
+++ b/libcore/asobj/flash/display/MovieClip_as.cpp      2009-07-29 05:40:20 
+0000
@@ -144,7 +144,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&movieclip_as2_ctor, getMovieClipAS2Interface());
+        as_object* proto = getMovieClipAS2Interface();
+        cl = gl->createClass(&movieclip_as2_ctor, proto);
         getVM(where).addStatic(cl.get());
     }
 

=== modified file 'libcore/asobj/flash/display/Scene_as.cpp'
--- a/libcore/asobj/flash/display/Scene_as.cpp  2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/display/Scene_as.cpp  2009-07-29 05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&scene_ctor, getSceneInterface());
+        as_object* proto = getSceneInterface();
+        cl = gl->createClass(&scene_ctor, proto);
         attachSceneStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/Shape_as.cpp'
--- a/libcore/asobj/flash/display/Shape_as.cpp  2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/display/Shape_as.cpp  2009-07-29 05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&shape_ctor, getShapeInterface());
+        as_object* proto = getShapeInterface();
+        cl = gl->createClass(&shape_ctor, proto);
         attachShapeStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/SimpleButton_as.cpp'
--- a/libcore/asobj/flash/display/SimpleButton_as.cpp   2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/display/SimpleButton_as.cpp   2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&simplebutton_ctor, getSimpleButtonInterface());
+        as_object* proto = getSimpleButtonInterface();
+        cl = gl->createClass(&simplebutton_ctor, proto);
         attachSimpleButtonStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/Sprite_as.cpp'
--- a/libcore/asobj/flash/display/Sprite_as.cpp 2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/display/Sprite_as.cpp 2009-07-29 05:40:20 +0000
@@ -59,7 +59,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&sprite_ctor, getSpriteInterface());
+        as_object* proto = getSpriteInterface();
+        cl = gl->createClass(&sprite_ctor, proto);
         attachSpriteStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/display/StageDisplayState_as.cpp'
--- a/libcore/asobj/flash/display/StageDisplayState_as.cpp      2009-07-16 
09:37:37 +0000
+++ b/libcore/asobj/flash/display/StageDisplayState_as.cpp      2009-07-29 
05:31:28 +0000
@@ -41,8 +41,10 @@
 void
 stagedisplaystate_class_init(as_object& where, const ObjectURI& uri)
 {
+    Global_as* gl = getGlobal(where);
+    as_object* proto = getObjectInterface();
     static boost::intrusive_ptr<as_object> obj =
-        new as_object(getObjectInterface());
+        gl->createObject(proto);
 
     attachStageDisplayStateStaticInterface(*obj);
     where.init_member(getName(uri), obj.get(), as_object::DefaultFlags,

=== modified file 'libcore/asobj/flash/display/StageQuality_as.cpp'
--- a/libcore/asobj/flash/display/StageQuality_as.cpp   2009-07-16 09:37:37 
+0000
+++ b/libcore/asobj/flash/display/StageQuality_as.cpp   2009-07-29 05:31:28 
+0000
@@ -40,8 +40,10 @@
 void
 stagequality_class_init(as_object& where, const ObjectURI& uri)
 {
+    Global_as* gl = getGlobal(where);
+    as_object* proto = getObjectInterface();
     static boost::intrusive_ptr<as_object> obj =
-        new as_object(getObjectInterface());
+        gl->createObject(proto);
 
     attachStageQualityStaticInterface(*obj);
     where.init_member(getName(uri), obj.get(), as_object::DefaultFlags,

=== modified file 'libcore/asobj/flash/errors/EOFError_as.cpp'
--- a/libcore/asobj/flash/errors/EOFError_as.cpp        2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/errors/EOFError_as.cpp        2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&eoferror_ctor, getEOFErrorInterface());
+        as_object* proto = getEOFErrorInterface();
+        cl = gl->createClass(&eoferror_ctor, proto);
         attachEOFErrorStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/errors/IOError_as.cpp'
--- a/libcore/asobj/flash/errors/IOError_as.cpp 2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/errors/IOError_as.cpp 2009-07-29 05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&ioerror_ctor, getIOErrorInterface());
+        as_object* proto = getIOErrorInterface();
+        cl = gl->createClass(&ioerror_ctor, proto);
         attachIOErrorStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/errors/IllegalOperationError_as.cpp'
--- a/libcore/asobj/flash/errors/IllegalOperationError_as.cpp   2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/errors/IllegalOperationError_as.cpp   2009-07-29 
05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&illegaloperationerror_ctor, 
getIllegalOperationErrorInterface());
+        as_object* proto = getIllegalOperationErrorInterface();
+        cl = gl->createClass(&illegaloperationerror_ctor, proto);
         attachIllegalOperationErrorStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/errors/InvalidSWFError_as.cpp'
--- a/libcore/asobj/flash/errors/InvalidSWFError_as.cpp 2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/errors/InvalidSWFError_as.cpp 2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&invalidswferror_ctor, 
getInvalidSWFErrorInterface());
+        as_object* proto = getInvalidSWFErrorInterface();
+        cl = gl->createClass(&invalidswferror_ctor, proto);
         attachInvalidSWFErrorStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/errors/MemoryError_as.cpp'
--- a/libcore/asobj/flash/errors/MemoryError_as.cpp     2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/errors/MemoryError_as.cpp     2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&memoryerror_ctor, getMemoryErrorInterface());
+        as_object* proto = getMemoryErrorInterface();
+        cl = gl->createClass(&memoryerror_ctor, proto);
         attachMemoryErrorStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/errors/ScriptTimeoutError_as.cpp'
--- a/libcore/asobj/flash/errors/ScriptTimeoutError_as.cpp      2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/errors/ScriptTimeoutError_as.cpp      2009-07-29 
05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&scripttimeouterror_ctor, 
getScriptTimeoutErrorInterface());
+        as_object* proto = getScriptTimeoutErrorInterface();
+        cl = gl->createClass(&scripttimeouterror_ctor, proto);
         attachScriptTimeoutErrorStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/errors/StackOverflowError_as.cpp'
--- a/libcore/asobj/flash/errors/StackOverflowError_as.cpp      2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/errors/StackOverflowError_as.cpp      2009-07-29 
05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&stackoverflowerror_ctor, 
getStackOverflowErrorInterface());
+        as_object* proto = getStackOverflowErrorInterface();
+        cl = gl->createClass(&stackoverflowerror_ctor, proto);
         attachStackOverflowErrorStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/ActivityEvent_as.cpp'
--- a/libcore/asobj/flash/events/ActivityEvent_as.cpp   2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/ActivityEvent_as.cpp   2009-07-29 05:40:20 
+0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&activityevent_ctor, getActivityEventInterface());
+        as_object* proto = getActivityEventInterface();
+        cl = gl->createClass(&activityevent_ctor, proto);
         attachActivityEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/AsyncErrorEvent_as.cpp'
--- a/libcore/asobj/flash/events/AsyncErrorEvent_as.cpp 2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/AsyncErrorEvent_as.cpp 2009-07-29 05:40:20 
+0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&asyncerrorevent_ctor, 
getAsyncErrorEventInterface());
+        as_object* proto = getAsyncErrorEventInterface();
+        cl = gl->createClass(&asyncerrorevent_ctor, proto);
         attachAsyncErrorEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/ContextMenuEvent_as.cpp'
--- a/libcore/asobj/flash/events/ContextMenuEvent_as.cpp        2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/events/ContextMenuEvent_as.cpp        2009-07-29 
05:40:20 +0000
@@ -61,7 +61,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&contextmenuevent_ctor, 
getContextMenuEventInterface());
+        as_object* proto = getContextMenuEventInterface();
+        cl = gl->createClass(&contextmenuevent_ctor, proto);
         attachContextMenuEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/DataEvent_as.cpp'
--- a/libcore/asobj/flash/events/DataEvent_as.cpp       2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/DataEvent_as.cpp       2009-07-29 05:40:20 
+0000
@@ -61,7 +61,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&dataevent_ctor, getDataEventInterface());
+        as_object* proto = getDataEventInterface();
+        cl = gl->createClass(&dataevent_ctor, proto);
         attachDataEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/ErrorEvent_as.cpp'
--- a/libcore/asobj/flash/events/ErrorEvent_as.cpp      2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/ErrorEvent_as.cpp      2009-07-29 05:40:20 
+0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&errorevent_ctor, getErrorEventInterface());
+        as_object* proto = getErrorEventInterface();
+        cl = gl->createClass(&errorevent_ctor, proto);
         attachErrorEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/EventDispatcher_as.cpp'
--- a/libcore/asobj/flash/events/EventDispatcher_as.cpp 2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/EventDispatcher_as.cpp 2009-07-29 05:40:20 
+0000
@@ -64,7 +64,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&eventdispatcher_ctor, 
getEventDispatcherInterface());
+        as_object* proto = getEventDispatcherInterface();
+        cl = gl->createClass(&eventdispatcher_ctor, proto);
         attachEventDispatcherStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/EventPhase_as.cpp'
--- a/libcore/asobj/flash/events/EventPhase_as.cpp      2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/EventPhase_as.cpp      2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&eventphase_ctor, getEventPhaseInterface());
+        as_object* proto = getEventPhaseInterface();
+        cl = gl->createClass(&eventphase_ctor, proto);
         attachEventPhaseStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/Event_as.cpp'
--- a/libcore/asobj/flash/events/Event_as.cpp   2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/events/Event_as.cpp   2009-07-29 05:40:20 +0000
@@ -91,7 +91,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&event_ctor, getEventInterface());
+        as_object* proto = getEventInterface();
+        cl = gl->createClass(&event_ctor, proto);
         attachEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/FocusEvent_as.cpp'
--- a/libcore/asobj/flash/events/FocusEvent_as.cpp      2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/FocusEvent_as.cpp      2009-07-29 05:40:20 
+0000
@@ -63,7 +63,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&focusevent_ctor, getFocusEventInterface());
+        as_object* proto = getFocusEventInterface();
+        cl = gl->createClass(&focusevent_ctor, proto);
         attachFocusEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/FullScreenEvent_as.cpp'
--- a/libcore/asobj/flash/events/FullScreenEvent_as.cpp 2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/FullScreenEvent_as.cpp 2009-07-29 05:40:20 
+0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&fullscreenevent_ctor, 
getFullScreenEventInterface());
+        as_object* proto = getFullScreenEventInterface();
+        cl = gl->createClass(&fullscreenevent_ctor, proto);
         attachFullScreenEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/HTTPStatusEvent_as.cpp'
--- a/libcore/asobj/flash/events/HTTPStatusEvent_as.cpp 2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/HTTPStatusEvent_as.cpp 2009-07-29 05:40:20 
+0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&httpstatusevent_ctor, 
getHTTPStatusEventInterface());
+        as_object* proto = getHTTPStatusEventInterface();
+        cl = gl->createClass(&httpstatusevent_ctor, proto);
         attachHTTPStatusEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/IEventDispatcher_as.cpp'
--- a/libcore/asobj/flash/events/IEventDispatcher_as.cpp        2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/events/IEventDispatcher_as.cpp        2009-07-29 
05:40:20 +0000
@@ -62,7 +62,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&ieventdispatcher_ctor, 
getIEventDispatcherInterface());
+        as_object* proto = getIEventDispatcherInterface();
+        cl = gl->createClass(&ieventdispatcher_ctor, proto);
         attachIEventDispatcherStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/IMEEvent_as.cpp'
--- a/libcore/asobj/flash/events/IMEEvent_as.cpp        2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/IMEEvent_as.cpp        2009-07-29 05:40:20 
+0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&imeevent_ctor, getIMEEventInterface());
+        as_object* proto = getIMEEventInterface();
+        cl = gl->createClass(&imeevent_ctor, proto);
         attachIMEEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/IOErrorEvent_as.cpp'
--- a/libcore/asobj/flash/events/IOErrorEvent_as.cpp    2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/IOErrorEvent_as.cpp    2009-07-29 05:40:20 
+0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&ioerrorevent_ctor, getIOErrorEventInterface());
+        as_object* proto = getIOErrorEventInterface();
+        cl = gl->createClass(&ioerrorevent_ctor, proto);
         attachIOErrorEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/KeyboardEvent_as.cpp'
--- a/libcore/asobj/flash/events/KeyboardEvent_as.cpp   2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/KeyboardEvent_as.cpp   2009-07-29 05:40:20 
+0000
@@ -62,7 +62,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&keyboardevent_ctor, getKeyboardEventInterface());
+        as_object* proto = getKeyboardEventInterface();
+        cl = gl->createClass(&keyboardevent_ctor, proto);
         attachKeyboardEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/MouseEvent_as.cpp'
--- a/libcore/asobj/flash/events/MouseEvent_as.cpp      2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/MouseEvent_as.cpp      2009-07-29 05:40:20 
+0000
@@ -70,7 +70,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&mouseevent_ctor, getMouseEventInterface());
+        as_object* proto = getMouseEventInterface();
+        cl = gl->createClass(&mouseevent_ctor, proto);
         attachMouseEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/NetStatusEvent_as.cpp'
--- a/libcore/asobj/flash/events/NetStatusEvent_as.cpp  2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/NetStatusEvent_as.cpp  2009-07-29 05:40:20 
+0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&netstatusevent_ctor, 
getNetStatusEventInterface());
+        as_object* proto = getNetStatusEventInterface();
+        cl = gl->createClass(&netstatusevent_ctor, proto);
         attachNetStatusEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/ProgressEvent_as.cpp'
--- a/libcore/asobj/flash/events/ProgressEvent_as.cpp   2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/ProgressEvent_as.cpp   2009-07-29 05:40:20 
+0000
@@ -61,7 +61,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&progressevent_ctor, getProgressEventInterface());
+        as_object* proto = getProgressEventInterface();
+        cl = gl->createClass(&progressevent_ctor, proto);
         attachProgressEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/SecurityErrorEvent_as.cpp'
--- a/libcore/asobj/flash/events/SecurityErrorEvent_as.cpp      2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/events/SecurityErrorEvent_as.cpp      2009-07-29 
05:40:20 +0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&securityerrorevent_ctor, 
getSecurityErrorEventInterface());
+        as_object* proto = getSecurityErrorEventInterface();
+        cl = gl->createClass(&securityerrorevent_ctor, proto);
         attachSecurityErrorEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/StatusEvent_as.cpp'
--- a/libcore/asobj/flash/events/StatusEvent_as.cpp     2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/StatusEvent_as.cpp     2009-07-29 05:40:20 
+0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&statusevent_ctor, getStatusEventInterface());
+        as_object* proto = getStatusEventInterface();
+        cl = gl->createClass(&statusevent_ctor, proto);
         attachStatusEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/SyncEvent_as.cpp'
--- a/libcore/asobj/flash/events/SyncEvent_as.cpp       2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/SyncEvent_as.cpp       2009-07-29 05:40:20 
+0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&syncevent_ctor, getSyncEventInterface());
+        as_object* proto = getSyncEventInterface();
+        cl = gl->createClass(&syncevent_ctor, proto);
         attachSyncEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/TextEvent_as.cpp'
--- a/libcore/asobj/flash/events/TextEvent_as.cpp       2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/TextEvent_as.cpp       2009-07-29 05:40:20 
+0000
@@ -61,7 +61,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&textevent_ctor, getTextEventInterface());
+        as_object* proto = getTextEventInterface();
+        cl = gl->createClass(&textevent_ctor, proto);
         attachTextEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/events/TimerEvent_as.cpp'
--- a/libcore/asobj/flash/events/TimerEvent_as.cpp      2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/events/TimerEvent_as.cpp      2009-07-29 05:40:20 
+0000
@@ -62,7 +62,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&timerevent_ctor, getTimerEventInterface());
+        as_object* proto = getTimerEventInterface();
+        cl = gl->createClass(&timerevent_ctor, proto);
         attachTimerEventStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/external/ExternalInterface_as.cpp'
--- a/libcore/asobj/flash/external/ExternalInterface_as.cpp     2009-07-16 
09:37:37 +0000
+++ b/libcore/asobj/flash/external/ExternalInterface_as.cpp     2009-07-29 
05:59:24 +0000
@@ -348,8 +348,8 @@
     static as_object* cl=NULL;
     if ( ! cl )
     {
-        cl = global.createClass(&ExternalInterface_ctor,
-                getExternalInterfaceInterface());
+        as_object* proto = getExternalInterfaceInterface();
+        cl = global.createClass(&ExternalInterface_ctor, proto);
         VM::get().addStatic(cl);
            attachExternalInterfaceStaticProperties(*cl);
     }

=== modified file 'libcore/asobj/flash/filters/BitmapFilter_as.cpp'
--- a/libcore/asobj/flash/filters/BitmapFilter_as.cpp   2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/filters/BitmapFilter_as.cpp   2009-07-29 05:59:24 
+0000
@@ -78,8 +78,9 @@
 as_value
 getBitmapFilterConstructor(const fn_call& fn)
 {
+    as_object* proto = getBitmapFilterInterface();
     Global_as* gl = getGlobal(fn);
-    return gl->createClass(&bitmapfilter_ctor, getBitmapFilterInterface());
+    return gl->createClass(&bitmapfilter_ctor, proto);
 }
 
 as_value

=== modified file 'libcore/asobj/flash/filters/DisplacementMapFilter_as.cpp'
--- a/libcore/asobj/flash/filters/DisplacementMapFilter_as.cpp  2009-07-16 
09:02:35 +0000
+++ b/libcore/asobj/flash/filters/DisplacementMapFilter_as.cpp  2009-07-29 
05:40:20 +0000
@@ -222,7 +222,8 @@
        // in the 'where' package
        boost::intrusive_ptr<as_object> cl;
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&DisplacementMapFilter_ctor, 
getDisplacementMapFilterInterface());
+        as_object* proto = getDisplacementMapFilterInterface();
+        cl = gl->createClass(&DisplacementMapFilter_ctor, proto);
        attachDisplacementMapFilterStaticProperties(*cl);
 
        // Register _global.DisplacementMapFilter

=== modified file 'libcore/asobj/flash/geom/ColorTransform_as.cpp'
--- a/libcore/asobj/flash/geom/ColorTransform_as.cpp    2009-07-16 09:37:37 
+0000
+++ b/libcore/asobj/flash/geom/ColorTransform_as.cpp    2009-07-29 05:59:24 
+0000
@@ -358,8 +358,9 @@
 get_flash_geom_color_transform_constructor(const fn_call& fn)
 {
     log_debug("Loading flash.geom.ColorTransform class");
+    as_object* proto = getColorTransformInterface();
     Global_as* gl = getGlobal(fn);
-    return gl->createClass(&ColorTransform_ctor, getColorTransformInterface());
+    return gl->createClass(&ColorTransform_ctor, proto);
 }
 
 

=== modified file 'libcore/asobj/flash/geom/Matrix_as.cpp'
--- a/libcore/asobj/flash/geom/Matrix_as.cpp    2009-07-16 09:37:37 +0000
+++ b/libcore/asobj/flash/geom/Matrix_as.cpp    2009-07-29 06:12:04 +0000
@@ -26,8 +26,8 @@
 #include "builtin_function.h" // need builtin_function
 #include "GnashException.h" // for ActionException
 #include "Object.h" // for AS inheritance
-#include "VM.h" // for addStatics
-#include "Point_as.h" // Matrix needs to operate on Points.
+#include "VM.h" 
+#include "Point_as.h"
 
 #include <cmath>
 #include <boost/numeric/ublas/matrix.hpp> // boost matrix
@@ -410,11 +410,22 @@
     const PointType& point = transformPoint(obj, ptr.get());
 
     // Construct a Point and set its properties.
-    boost::intrusive_ptr<as_object> ret = init_Point_instance();
-    ret->set_member(NSV::PROP_X, point(0));
-    ret->set_member(NSV::PROP_Y, point(1));
-
-    return as_value(ret.get());
+    as_value pointClass(fn.env().find_object("flash.geom.Point"));
+
+    boost::intrusive_ptr<as_function> pointCtor = pointClass.to_as_function();
+
+    if (!pointCtor) {
+        log_error("Failed to construct flash.geom.Point!");
+        return as_value();
+    }
+
+    std::auto_ptr<std::vector<as_value> > args(new std::vector<as_value>);
+    args->push_back(point(0));
+    args->push_back(point(1));
+
+    as_value ret = pointCtor->constructInstance(fn.env(), args);
+
+    return as_value(ret);
 }
 
 
@@ -713,11 +724,23 @@
     
     const PointType& point = transformPoint(obj, ptr.get());
 
-    boost::intrusive_ptr<as_object> ret = init_Point_instance();
-    ret->set_member(NSV::PROP_X, point(0) + tx.to_number());
-    ret->set_member(NSV::PROP_Y, point(1) + ty.to_number());
-
-    return as_value(ret.get());
+    // Construct a Point and set its properties.
+    as_value pointClass(fn.env().find_object("flash.geom.Point"));
+
+    boost::intrusive_ptr<as_function> pointCtor = pointClass.to_as_function();
+
+    if (!pointCtor) {
+        log_error("Failed to construct flash.geom.Point!");
+        return as_value();
+    }
+
+    std::auto_ptr<std::vector<as_value> > args(new std::vector<as_value>);
+    args->push_back(point(0) + tx.to_number());
+    args->push_back(point(1) + ty.to_number());
+
+    as_value ret = pointCtor->constructInstance(fn.env(), args);
+
+    return as_value(ret);
 }
 
 static as_value
@@ -896,8 +919,9 @@
 get_flash_geom_matrix_constructor(const fn_call& fn)
 {
     log_debug("Loading flash.geom.Matrix class");
+    as_object* proto = getMatrixInterface();
     Global_as* gl = getGlobal(fn);
-    return gl->createClass(&Matrix_ctor, getMatrixInterface());
+    return gl->createClass(&Matrix_ctor, proto);
 }
 
 // extern 

=== modified file 'libcore/asobj/flash/geom/Point_as.cpp'
--- a/libcore/asobj/flash/geom/Point_as.cpp     2009-07-16 09:37:37 +0000
+++ b/libcore/asobj/flash/geom/Point_as.cpp     2009-07-29 05:56:36 +0000
@@ -76,586 +76,586 @@
 static as_object*
 getPointInterface()
 {
-       static boost::intrusive_ptr<as_object> o;
-
-       if ( ! o )
-       {
-               // TODO: check if this class should inherit from Object
-               //       or from a different class
-               o = new as_object(getObjectInterface());
-               VM::get().addStatic(o.get());
-
-               attachPointInterface(*o);
-
-       }
-
-       return o.get();
+    static boost::intrusive_ptr<as_object> o;
+
+    if ( ! o )
+    {
+        // TODO: check if this class should inherit from Object
+        //       or from a different class
+        o = new as_object(getObjectInterface());
+        VM::get().addStatic(o.get());
+
+        attachPointInterface(*o);
+
+    }
+
+    return o.get();
 }
 
 
 class Point_as: public as_object
 {
 public:
-       Point_as()
-           :
-           as_object(getPointInterface())
-       {}
-           
+    Point_as()
+        :
+        as_object(getPointInterface())
+    {}
+        
 };
 
 
 static as_value
 Point_add(const fn_call& fn)
 {
-       boost::intrusive_ptr<as_object> ptr = 
ensureType<as_object>(fn.this_ptr);
-
-       as_value x, y;
-       ptr->get_member(NSV::PROP_X, &x);
-       ptr->get_member(NSV::PROP_Y, &y);
-
-       as_value x1, y1;
-
-       if ( ! fn.nargs )
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror(_("%s: missing arguments"), "Point.add()");
-               );
-       }
-       else
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               if ( fn.nargs > 1 )
-               {
-                       std::stringstream ss; fn.dump_args(ss);
-                       log_aserror("Point.add(%s): %s", ss.str(), _("arguments 
after first discarded"));
-               }
-               );
-               const as_value& arg1 = fn.arg(0);
-               as_object* o = arg1.to_object(*getGlobal(fn)).get();
-               if ( ! o )
-               {
-                       IF_VERBOSE_ASCODING_ERRORS(
-                       std::stringstream ss; fn.dump_args(ss);
-                       log_aserror("Point.add(%s): %s", ss.str(), _("first 
argument doesn't cast to object"));
-                       );
-               }
-               else
-               {
-                       if ( ! o->get_member(NSV::PROP_X, &x1) )
-                       {
-                               IF_VERBOSE_ASCODING_ERRORS(
-                               std::stringstream ss; fn.dump_args(ss);
-                               log_aserror("Point.add(%s): %s", ss.str(),
-                                       _("first argument cast to object 
doesn't contain an 'x' member"));
-                               );
-                       }
-                       if ( ! o->get_member(NSV::PROP_Y, &y1) )
-                       {
-                               IF_VERBOSE_ASCODING_ERRORS(
-                               std::stringstream ss; fn.dump_args(ss);
-                               log_aserror("Point.add(%s): %s", ss.str(),
-                                       _("first argument cast to object 
doesn't contain an 'y' member"));
-                               );
-                       }
-               }
-       }
-
-       x.newAdd(x1);
-       y.newAdd(y1);
-
-       boost::intrusive_ptr<as_object> ret = new Point_as;
-       ret->set_member(NSV::PROP_X, x);
-       ret->set_member(NSV::PROP_Y, y);
-
-       return as_value(ret.get());
+    boost::intrusive_ptr<as_object> ptr = ensureType<as_object>(fn.this_ptr);
+
+    as_value x, y;
+    ptr->get_member(NSV::PROP_X, &x);
+    ptr->get_member(NSV::PROP_Y, &y);
+
+    as_value x1, y1;
+
+    if ( ! fn.nargs )
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        log_aserror(_("%s: missing arguments"), "Point.add()");
+        );
+    }
+    else
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        if ( fn.nargs > 1 )
+        {
+            std::stringstream ss; fn.dump_args(ss);
+            log_aserror("Point.add(%s): %s", ss.str(), _("arguments after 
first discarded"));
+        }
+        );
+        const as_value& arg1 = fn.arg(0);
+        as_object* o = arg1.to_object(*getGlobal(fn)).get();
+        if ( ! o )
+        {
+            IF_VERBOSE_ASCODING_ERRORS(
+            std::stringstream ss; fn.dump_args(ss);
+            log_aserror("Point.add(%s): %s", ss.str(), _("first argument 
doesn't cast to object"));
+            );
+        }
+        else
+        {
+            if ( ! o->get_member(NSV::PROP_X, &x1) )
+            {
+                IF_VERBOSE_ASCODING_ERRORS(
+                std::stringstream ss; fn.dump_args(ss);
+                log_aserror("Point.add(%s): %s", ss.str(),
+                    _("first argument cast to object doesn't contain an 'x' 
member"));
+                );
+            }
+            if ( ! o->get_member(NSV::PROP_Y, &y1) )
+            {
+                IF_VERBOSE_ASCODING_ERRORS(
+                std::stringstream ss; fn.dump_args(ss);
+                log_aserror("Point.add(%s): %s", ss.str(),
+                    _("first argument cast to object doesn't contain an 'y' 
member"));
+                );
+            }
+        }
+    }
+
+    x.newAdd(x1);
+    y.newAdd(y1);
+
+    boost::intrusive_ptr<as_object> ret = new Point_as;
+    ret->set_member(NSV::PROP_X, x);
+    ret->set_member(NSV::PROP_Y, y);
+
+    return as_value(ret.get());
 }
 
 static as_value
 Point_clone(const fn_call& fn)
 {
-       boost::intrusive_ptr<as_object> ptr = 
ensureType<as_object>(fn.this_ptr);
-
-       as_value x, y;
-       ptr->get_member(NSV::PROP_X, &x);
-       ptr->get_member(NSV::PROP_Y, &y);
-
-       boost::intrusive_ptr<as_object> ret = new Point_as;
-       ret->set_member(NSV::PROP_X, x);
-       ret->set_member(NSV::PROP_Y, y);
-
-       return as_value(ret.get());
+    boost::intrusive_ptr<as_object> ptr = ensureType<as_object>(fn.this_ptr);
+
+    as_value x, y;
+    ptr->get_member(NSV::PROP_X, &x);
+    ptr->get_member(NSV::PROP_Y, &y);
+
+    boost::intrusive_ptr<as_object> ret = new Point_as;
+    ret->set_member(NSV::PROP_X, x);
+    ret->set_member(NSV::PROP_Y, y);
+
+    return as_value(ret.get());
 }
 
 static as_value
 Point_equals(const fn_call& fn)
 {
-       boost::intrusive_ptr<as_object> ptr = 
ensureType<as_object>(fn.this_ptr);
-
-       if ( ! fn.nargs )
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror(_("%s: missing arguments"), "Point.equals()");
-               );
-               return as_value(false);
-       }
-
-       const as_value& arg1 = fn.arg(0);
-       if ( ! arg1.is_object() )
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               std::stringstream ss; fn.dump_args(ss);
-               log_aserror("Point.equals(%s): %s", ss.str(),
+    boost::intrusive_ptr<as_object> ptr = ensureType<as_object>(fn.this_ptr);
+
+    if ( ! fn.nargs )
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        log_aserror(_("%s: missing arguments"), "Point.equals()");
+        );
+        return as_value(false);
+    }
+
+    const as_value& arg1 = fn.arg(0);
+    if ( ! arg1.is_object() )
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        std::stringstream ss; fn.dump_args(ss);
+        log_aserror("Point.equals(%s): %s", ss.str(),
             _("First arg must be an object"));
-               );
-               return as_value(false);
-       }
-       as_object* o = arg1.to_object(*getGlobal(fn)).get();
-       assert(o);
-       if ( ! o->instanceOf(getFlashGeomPointConstructor(fn)) )
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               std::stringstream ss; fn.dump_args(ss);
-               log_aserror("Point.equals(%s): %s %s", ss.str(),
+        );
+        return as_value(false);
+    }
+    as_object* o = arg1.to_object(*getGlobal(fn)).get();
+    assert(o);
+    if ( ! o->instanceOf(getFlashGeomPointConstructor(fn)) )
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        std::stringstream ss; fn.dump_args(ss);
+        log_aserror("Point.equals(%s): %s %s", ss.str(),
             _("First arg must be an instance of"), "flash.geom.Point");
-               );
-               return as_value(false);
-       }
-
-       as_value x, y;
-       ptr->get_member(NSV::PROP_X, &x);
-       ptr->get_member(NSV::PROP_Y, &y);
-
-       as_value x1, y1;
-       o->get_member(NSV::PROP_X, &x1);
-       o->get_member(NSV::PROP_Y, &y1);
-
-       return as_value(x.equals(x1) && y.equals(y1));
+        );
+        return as_value(false);
+    }
+
+    as_value x, y;
+    ptr->get_member(NSV::PROP_X, &x);
+    ptr->get_member(NSV::PROP_Y, &y);
+
+    as_value x1, y1;
+    o->get_member(NSV::PROP_X, &x1);
+    o->get_member(NSV::PROP_Y, &y1);
+
+    return as_value(x.equals(x1) && y.equals(y1));
 }
 
 static as_value
 Point_normalize(const fn_call& fn)
 {
-       boost::intrusive_ptr<Point_as> ptr = ensureType<Point_as>(fn.this_ptr);
-
-       as_value argval;
-
-       if ( ! fn.nargs )
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror(_("%s: missing arguments"), "Point.normalize()");
-               );
-               return as_value();
-       }
-       else
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               if ( fn.nargs > 1 )
-               {
-                       std::stringstream ss; fn.dump_args(ss);
-                       log_aserror("Point.normalize(%s): %s", ss.str(), 
_("arguments after first discarded"));
-               }
-               );
-
-               argval = fn.arg(0);
-       }
-
-       // newlen may be NaN, and we'd still be updating x/y
-       // see actionscript.all/Point.as
-       double newlen = argval.to_number();
-
-       as_value xval, yval;
-       ptr->get_member(NSV::PROP_X, &xval);
-       ptr->get_member(NSV::PROP_Y, &yval);
-
-       double x = xval.to_number();
-       if (!isFinite(x)) return as_value();
-       double y = yval.to_number();
-       if (!isFinite(y)) return as_value();
-
-       if ( x == 0 && y == 0 ) return as_value();
-
-       double curlen = std::sqrt(x*x+y*y);
-       double fact = newlen/curlen;
-
-
-       xval.set_double( xval.to_number() * fact );
-       yval.set_double( yval.to_number() * fact );
-       ptr->set_member(NSV::PROP_X, xval);
-       ptr->set_member(NSV::PROP_Y, yval);
-
-       return as_value();
+    boost::intrusive_ptr<Point_as> ptr = ensureType<Point_as>(fn.this_ptr);
+
+    as_value argval;
+
+    if ( ! fn.nargs )
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        log_aserror(_("%s: missing arguments"), "Point.normalize()");
+        );
+        return as_value();
+    }
+    else
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        if ( fn.nargs > 1 )
+        {
+            std::stringstream ss; fn.dump_args(ss);
+            log_aserror("Point.normalize(%s): %s", ss.str(), _("arguments 
after first discarded"));
+        }
+        );
+
+        argval = fn.arg(0);
+    }
+
+    // newlen may be NaN, and we'd still be updating x/y
+    // see actionscript.all/Point.as
+    double newlen = argval.to_number();
+
+    as_value xval, yval;
+    ptr->get_member(NSV::PROP_X, &xval);
+    ptr->get_member(NSV::PROP_Y, &yval);
+
+    double x = xval.to_number();
+    if (!isFinite(x)) return as_value();
+    double y = yval.to_number();
+    if (!isFinite(y)) return as_value();
+
+    if ( x == 0 && y == 0 ) return as_value();
+
+    double curlen = std::sqrt(x*x+y*y);
+    double fact = newlen/curlen;
+
+
+    xval.set_double( xval.to_number() * fact );
+    yval.set_double( yval.to_number() * fact );
+    ptr->set_member(NSV::PROP_X, xval);
+    ptr->set_member(NSV::PROP_Y, yval);
+
+    return as_value();
 }
 
 static as_value
 Point_offset(const fn_call& fn)
 {
-       boost::intrusive_ptr<Point_as> ptr = ensureType<Point_as>(fn.this_ptr);
-
-       as_value x, y;
-       ptr->get_member(NSV::PROP_X, &x);
-       ptr->get_member(NSV::PROP_Y, &y);
-
-       as_value xoff, yoff;
-
-       if ( fn.nargs ) {
-               xoff = fn.arg(0);
-               if ( fn.nargs > 1 ) yoff = fn.arg(1);
-       }
-
-       x.newAdd(xoff);
-       y.newAdd(yoff);
-
-       ptr->set_member(NSV::PROP_X, x);
-       ptr->set_member(NSV::PROP_Y, y);
-
-       return as_value();
+    boost::intrusive_ptr<Point_as> ptr = ensureType<Point_as>(fn.this_ptr);
+
+    as_value x, y;
+    ptr->get_member(NSV::PROP_X, &x);
+    ptr->get_member(NSV::PROP_Y, &y);
+
+    as_value xoff, yoff;
+
+    if ( fn.nargs ) {
+        xoff = fn.arg(0);
+        if ( fn.nargs > 1 ) yoff = fn.arg(1);
+    }
+
+    x.newAdd(xoff);
+    y.newAdd(yoff);
+
+    ptr->set_member(NSV::PROP_X, x);
+    ptr->set_member(NSV::PROP_Y, y);
+
+    return as_value();
 }
 
 static as_value
 Point_subtract(const fn_call& fn)
 {
-       boost::intrusive_ptr<Point_as> ptr = ensureType<Point_as>(fn.this_ptr);
-
-       as_value x, y;
-       ptr->get_member(NSV::PROP_X, &x);
-       ptr->get_member(NSV::PROP_Y, &y);
-
-       as_value x1, y1;
-
-       if ( ! fn.nargs )
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror(_("%s: missing arguments"), "Point.add()");
-               );
-       }
-       else
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               if ( fn.nargs > 1 )
-               {
-                       std::stringstream ss; fn.dump_args(ss);
-                       log_aserror("Point.add(%s): %s", ss.str(), _("arguments 
after first discarded"));
-               }
-               );
-               const as_value& arg1 = fn.arg(0);
-               as_object* o = arg1.to_object(*getGlobal(fn)).get();
-               if ( ! o )
-               {
-                       IF_VERBOSE_ASCODING_ERRORS(
-                       std::stringstream ss; fn.dump_args(ss);
-                       log_aserror("Point.add(%s): %s", ss.str(), _("first 
argument doesn't cast to object"));
-                       );
-               }
-               else
-               {
-                       if ( ! o->get_member(NSV::PROP_X, &x1) )
-                       {
-                               IF_VERBOSE_ASCODING_ERRORS(
-                               std::stringstream ss; fn.dump_args(ss);
-                               log_aserror("Point.add(%s): %s", ss.str(),
-                                       _("first argument casted to object 
doesn't contain an 'x' member"));
-                               );
-                       }
-                       if ( ! o->get_member(NSV::PROP_Y, &y1) )
-                       {
-                               IF_VERBOSE_ASCODING_ERRORS(
-                               std::stringstream ss; fn.dump_args(ss);
-                               log_aserror("Point.add(%s): %s", ss.str(),
-                                       _("first argument casted to object 
doesn't contain an 'y' member"));
-                               );
-                       }
-               }
-       }
-
-       x.set_double(x.to_number() - x1.to_number());
-       y.set_double(y.to_number() - y1.to_number());
-
-       boost::intrusive_ptr<as_object> ret = new Point_as;
-       ret->set_member(NSV::PROP_X, x);
-       ret->set_member(NSV::PROP_Y, y);
-
-       return as_value(ret.get());
+    boost::intrusive_ptr<Point_as> ptr = ensureType<Point_as>(fn.this_ptr);
+
+    as_value x, y;
+    ptr->get_member(NSV::PROP_X, &x);
+    ptr->get_member(NSV::PROP_Y, &y);
+
+    as_value x1, y1;
+
+    if ( ! fn.nargs )
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        log_aserror(_("%s: missing arguments"), "Point.add()");
+        );
+    }
+    else
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        if ( fn.nargs > 1 )
+        {
+            std::stringstream ss; fn.dump_args(ss);
+            log_aserror("Point.add(%s): %s", ss.str(), _("arguments after 
first discarded"));
+        }
+        );
+        const as_value& arg1 = fn.arg(0);
+        as_object* o = arg1.to_object(*getGlobal(fn)).get();
+        if ( ! o )
+        {
+            IF_VERBOSE_ASCODING_ERRORS(
+            std::stringstream ss; fn.dump_args(ss);
+            log_aserror("Point.add(%s): %s", ss.str(), _("first argument 
doesn't cast to object"));
+            );
+        }
+        else
+        {
+            if ( ! o->get_member(NSV::PROP_X, &x1) )
+            {
+                IF_VERBOSE_ASCODING_ERRORS(
+                std::stringstream ss; fn.dump_args(ss);
+                log_aserror("Point.add(%s): %s", ss.str(),
+                    _("first argument casted to object doesn't contain an 'x' 
member"));
+                );
+            }
+            if ( ! o->get_member(NSV::PROP_Y, &y1) )
+            {
+                IF_VERBOSE_ASCODING_ERRORS(
+                std::stringstream ss; fn.dump_args(ss);
+                log_aserror("Point.add(%s): %s", ss.str(),
+                    _("first argument casted to object doesn't contain an 'y' 
member"));
+                );
+            }
+        }
+    }
+
+    x.set_double(x.to_number() - x1.to_number());
+    y.set_double(y.to_number() - y1.to_number());
+
+    boost::intrusive_ptr<as_object> ret = new Point_as;
+    ret->set_member(NSV::PROP_X, x);
+    ret->set_member(NSV::PROP_Y, y);
+
+    return as_value(ret.get());
 }
 
 static as_value
 Point_toString(const fn_call& fn)
 {
-       boost::intrusive_ptr<Point_as> ptr = ensureType<Point_as>(fn.this_ptr);
+    boost::intrusive_ptr<Point_as> ptr = ensureType<Point_as>(fn.this_ptr);
 
-       as_value x, y;
-       ptr->get_member(NSV::PROP_X, &x);
-       ptr->get_member(NSV::PROP_Y, &y);
+    as_value x, y;
+    ptr->get_member(NSV::PROP_X, &x);
+    ptr->get_member(NSV::PROP_Y, &y);
 
     int version = getSWFVersion(fn);
 
-       std::stringstream ss;
-       ss << "(x=" << x.to_string_versioned(version)
-               << ", y=" << y.to_string_versioned(version)
-               << ")";
+    std::stringstream ss;
+    ss << "(x=" << x.to_string_versioned(version)
+        << ", y=" << y.to_string_versioned(version)
+        << ")";
 
-       return as_value(ss.str());
+    return as_value(ss.str());
 }
 
 static as_value
 Point_length_getset(const fn_call& fn)
 {
-       boost::intrusive_ptr<Point_as> ptr = ensureType<Point_as>(fn.this_ptr);
-
-       if ( ! fn.nargs ) // getter
-       {
-               as_value xval, yval;
-               ptr->get_member(NSV::PROP_X, &xval);
-               ptr->get_member(NSV::PROP_Y, &yval);
-               double x = xval.to_number();
-               double y = yval.to_number();
-
-               double l = std::sqrt(x*x+y*y);
-               return as_value(l);
-       }
-       else // setter
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror(_("Attempt to set read-only property %s"), 
"Point.length");
-               );
-               return as_value();
-       }
+    boost::intrusive_ptr<Point_as> ptr = ensureType<Point_as>(fn.this_ptr);
+
+    if ( ! fn.nargs ) // getter
+    {
+        as_value xval, yval;
+        ptr->get_member(NSV::PROP_X, &xval);
+        ptr->get_member(NSV::PROP_Y, &yval);
+        double x = xval.to_number();
+        double y = yval.to_number();
+
+        double l = std::sqrt(x*x+y*y);
+        return as_value(l);
+    }
+    else // setter
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        log_aserror(_("Attempt to set read-only property %s"), "Point.length");
+        );
+        return as_value();
+    }
 }
 
 static as_value
 Point_distance(const fn_call& fn)
 {
-       if ( fn.nargs < 2 )
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               std::stringstream ss; fn.dump_args(ss);
-               log_aserror("Point.distance(%s): %s", ss.str(), _("missing 
arguments"));
-               );
-               return as_value();
-       }
-
-       IF_VERBOSE_ASCODING_ERRORS(
-       if ( fn.nargs > 2 )
-       {
-               std::stringstream ss; fn.dump_args(ss);
-               log_aserror("Point.distance(%s): %s", ss.str(), _("arguments 
after first two discarded"));
-       }
-       );
-
-       const as_value& arg1 = fn.arg(0);
-       if ( ! arg1.is_object() )
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               std::stringstream ss; fn.dump_args(ss);
-               log_aserror("Point.distance(%s): %s", ss.str(), _("First arg 
must be an object"));
-               );
-               return as_value();
-       }
-       as_object* o1 = arg1.to_object(*getGlobal(fn)).get();
-       assert(o1);
-       if ( ! o1->instanceOf(getFlashGeomPointConstructor(fn)) )
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               std::stringstream ss; fn.dump_args(ss);
-               log_aserror("Point.equals(%s): %s %s", ss.str(), _("First arg 
must be an instance of"), "flash.geom.Point");
-               );
-               return as_value();
-       }
-
-       const as_value& arg2 = fn.arg(1);
-       as_object* o2 = arg2.to_object(*getGlobal(fn)).get();
-       assert(o2);
-       // it seems there's no need to check arg2 (see 
actionscript.all/Point.as)
-
-       as_value x1val;
-       o1->get_member(NSV::PROP_X, &x1val);
-       double x1 = x1val.to_number();
-       //if ( ! isFinite(x1) ) return as_value(NaN);
-
-       as_value y1val;
-       o1->get_member(NSV::PROP_Y, &y1val);
-       double y1 = y1val.to_number();
-       //if ( ! isFinite(y1) ) return as_value(NaN);
-
-       as_value x2val;
-       o2->get_member(NSV::PROP_X, &x2val);
-       double x2 = x2val.to_number();
-       //if ( ! isFinite(x2) ) return as_value(NaN);
-
-       as_value y2val;
-       o2->get_member(NSV::PROP_Y, &y2val);
-       double y2 = y2val.to_number();
-       //if ( ! utility::isFinite(y2) ) return as_value(NaN);
-
-       double hside = x2 - x1; // p1.x - p0.x;
-       double vside = y2 - y1; // p1.y - p0.y;
-
-       double sqdist = hside*hside + vside*vside;
-       double dist = std::sqrt(sqdist);
-
-       return as_value(dist);
+    if ( fn.nargs < 2 )
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        std::stringstream ss; fn.dump_args(ss);
+        log_aserror("Point.distance(%s): %s", ss.str(), _("missing 
arguments"));
+        );
+        return as_value();
+    }
+
+    IF_VERBOSE_ASCODING_ERRORS(
+    if ( fn.nargs > 2 )
+    {
+        std::stringstream ss; fn.dump_args(ss);
+        log_aserror("Point.distance(%s): %s", ss.str(), _("arguments after 
first two discarded"));
+    }
+    );
+
+    const as_value& arg1 = fn.arg(0);
+    if ( ! arg1.is_object() )
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        std::stringstream ss; fn.dump_args(ss);
+        log_aserror("Point.distance(%s): %s", ss.str(), _("First arg must be 
an object"));
+        );
+        return as_value();
+    }
+    as_object* o1 = arg1.to_object(*getGlobal(fn)).get();
+    assert(o1);
+    if ( ! o1->instanceOf(getFlashGeomPointConstructor(fn)) )
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        std::stringstream ss; fn.dump_args(ss);
+        log_aserror("Point.equals(%s): %s %s", ss.str(), _("First arg must be 
an instance of"), "flash.geom.Point");
+        );
+        return as_value();
+    }
+
+    const as_value& arg2 = fn.arg(1);
+    as_object* o2 = arg2.to_object(*getGlobal(fn)).get();
+    assert(o2);
+    // it seems there's no need to check arg2 (see actionscript.all/Point.as)
+
+    as_value x1val;
+    o1->get_member(NSV::PROP_X, &x1val);
+    double x1 = x1val.to_number();
+    //if ( ! isFinite(x1) ) return as_value(NaN);
+
+    as_value y1val;
+    o1->get_member(NSV::PROP_Y, &y1val);
+    double y1 = y1val.to_number();
+    //if ( ! isFinite(y1) ) return as_value(NaN);
+
+    as_value x2val;
+    o2->get_member(NSV::PROP_X, &x2val);
+    double x2 = x2val.to_number();
+    //if ( ! isFinite(x2) ) return as_value(NaN);
+
+    as_value y2val;
+    o2->get_member(NSV::PROP_Y, &y2val);
+    double y2 = y2val.to_number();
+    //if ( ! utility::isFinite(y2) ) return as_value(NaN);
+
+    double hside = x2 - x1; // p1.x - p0.x;
+    double vside = y2 - y1; // p1.y - p0.y;
+
+    double sqdist = hside*hside + vside*vside;
+    double dist = std::sqrt(sqdist);
+
+    return as_value(dist);
 }
 
 static as_value
 Point_interpolate(const fn_call& fn)
 {
-       as_value x0val;
-       as_value y0val;
-       as_value x1val;
-       as_value y1val;
-       as_value muval;
-
-       if ( fn.nargs < 3 )
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               std::stringstream ss; fn.dump_args(ss);
-               log_aserror("Point.interpolate(%s): %s", ss.str(), _("missing 
arguments"));
-               );
-       }
-       else
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               if ( fn.nargs > 3 )
-               {
-               std::stringstream ss; fn.dump_args(ss);
-               log_aserror("Point.interpolate(%s): %s", ss.str(), _("arguments 
after first three discarded"));
-               }
-               );
-
-               const as_value& p0val = fn.arg(0);
-               as_object* p0 = p0val.to_object(*getGlobal(fn)).get();
-               if ( ! p0 )
-               {
-                       IF_VERBOSE_ASCODING_ERRORS(
-                       std::stringstream ss; fn.dump_args(ss);
-                       log_aserror("Point.interpolate(%s): %s", ss.str(), 
_("first argument doesn't cast to object"));
-                       );
-               }
-               else
-               {
-                       p0->get_member(NSV::PROP_X, &x0val);
-                       p0->get_member(NSV::PROP_Y, &y0val);
-               }
-
-               const as_value& p1val = fn.arg(1);
-               as_object* p1 = p1val.to_object(*getGlobal(fn)).get();
-               if ( ! p1 )
-               {
-                       IF_VERBOSE_ASCODING_ERRORS(
-                       std::stringstream ss; fn.dump_args(ss);
-                       log_aserror("Point.interpolate(%s): %s", ss.str(), 
_("second argument doesn't cast to object"));
-                       );
-               }
-               else
-               {
-                       p1->get_member(NSV::PROP_X, &x1val);
-                       p1->get_member(NSV::PROP_Y, &y1val);
-               }
-
-               muval = fn.arg(2);
-       }
-
-
-       double x0 = x0val.to_number();
-       double y0 = y0val.to_number();
-       double x1 = x1val.to_number();
-       double y1 = y1val.to_number();
-       double mu = muval.to_number();
-
-       // newX = b.x + ( muval * (a.x - b.x) );
-       // newY = b.y + ( muval * (a.y - b.y) );
-
-       as_value xoff = mu * (x0 - x1);
-       as_value yoff = mu * (y0 - y1);
-
-       //log_debug("xoff:%s, yoff:%s, x1val:%s, y1val:%s", xoff, yoff, x1val, 
y1val);
-
-       as_value x = x1val; // copy to avoid changing stack value
-       x.newAdd(xoff);
-       as_value y = y1val; // copy to avoid changing stack value
-       y.newAdd(yoff);
-
-       boost::intrusive_ptr<as_object> ret = new Point_as;
-       ret->set_member(NSV::PROP_X, as_value(x));
-       ret->set_member(NSV::PROP_Y, as_value(y));
-
-       return as_value(ret.get());
+    as_value x0val;
+    as_value y0val;
+    as_value x1val;
+    as_value y1val;
+    as_value muval;
+
+    if ( fn.nargs < 3 )
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        std::stringstream ss; fn.dump_args(ss);
+        log_aserror("Point.interpolate(%s): %s", ss.str(), _("missing 
arguments"));
+        );
+    }
+    else
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        if ( fn.nargs > 3 )
+        {
+        std::stringstream ss; fn.dump_args(ss);
+        log_aserror("Point.interpolate(%s): %s", ss.str(), _("arguments after 
first three discarded"));
+        }
+        );
+
+        const as_value& p0val = fn.arg(0);
+        as_object* p0 = p0val.to_object(*getGlobal(fn)).get();
+        if ( ! p0 )
+        {
+            IF_VERBOSE_ASCODING_ERRORS(
+            std::stringstream ss; fn.dump_args(ss);
+            log_aserror("Point.interpolate(%s): %s", ss.str(), _("first 
argument doesn't cast to object"));
+            );
+        }
+        else
+        {
+            p0->get_member(NSV::PROP_X, &x0val);
+            p0->get_member(NSV::PROP_Y, &y0val);
+        }
+
+        const as_value& p1val = fn.arg(1);
+        as_object* p1 = p1val.to_object(*getGlobal(fn)).get();
+        if ( ! p1 )
+        {
+            IF_VERBOSE_ASCODING_ERRORS(
+            std::stringstream ss; fn.dump_args(ss);
+            log_aserror("Point.interpolate(%s): %s", ss.str(), _("second 
argument doesn't cast to object"));
+            );
+        }
+        else
+        {
+            p1->get_member(NSV::PROP_X, &x1val);
+            p1->get_member(NSV::PROP_Y, &y1val);
+        }
+
+        muval = fn.arg(2);
+    }
+
+
+    double x0 = x0val.to_number();
+    double y0 = y0val.to_number();
+    double x1 = x1val.to_number();
+    double y1 = y1val.to_number();
+    double mu = muval.to_number();
+
+    // newX = b.x + ( muval * (a.x - b.x) );
+    // newY = b.y + ( muval * (a.y - b.y) );
+
+    as_value xoff = mu * (x0 - x1);
+    as_value yoff = mu * (y0 - y1);
+
+    //log_debug("xoff:%s, yoff:%s, x1val:%s, y1val:%s", xoff, yoff, x1val, 
y1val);
+
+    as_value x = x1val; // copy to avoid changing stack value
+    x.newAdd(xoff);
+    as_value y = y1val; // copy to avoid changing stack value
+    y.newAdd(yoff);
+
+    boost::intrusive_ptr<as_object> ret = new Point_as;
+    ret->set_member(NSV::PROP_X, as_value(x));
+    ret->set_member(NSV::PROP_Y, as_value(y));
+
+    return as_value(ret.get());
 }
 
 static as_value
 Point_polar(const fn_call& fn)
 {
-       as_value lval; // length
-       as_value aval; // angle (radians)
-
-       if ( fn.nargs )
-       {
-               lval=fn.arg(0);
-               if ( fn.nargs > 1 ) aval=fn.arg(1);
-               else
-               {
-                       IF_VERBOSE_ASCODING_ERRORS(
-                       std::stringstream ss; fn.dump_args(ss);
-                       log_aserror("Point.polar(%s): %s", ss.str(), _("missing 
arguments"));
-                       );
-               }
-       }
-       else
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               std::stringstream ss; fn.dump_args(ss);
-               log_aserror("Point.polar(%s): %s", ss.str(), _("missing 
arguments"));
-               );
-       }
-       
-       double len = lval.to_number();
-       double angle = aval.to_number();
-
-       double x = len * std::cos(angle);
-       double y = len * std::sin(angle);
-
-       as_value xval(x);
-       as_value yval(y);
-       boost::intrusive_ptr<as_object> obj = new Point_as;
-
-       obj->set_member(NSV::PROP_X, x);
-       obj->set_member(NSV::PROP_Y, y);
-       
-       return as_value(obj.get());
+    as_value lval; // length
+    as_value aval; // angle (radians)
+
+    if ( fn.nargs )
+    {
+        lval=fn.arg(0);
+        if ( fn.nargs > 1 ) aval=fn.arg(1);
+        else
+        {
+            IF_VERBOSE_ASCODING_ERRORS(
+            std::stringstream ss; fn.dump_args(ss);
+            log_aserror("Point.polar(%s): %s", ss.str(), _("missing 
arguments"));
+            );
+        }
+    }
+    else
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        std::stringstream ss; fn.dump_args(ss);
+        log_aserror("Point.polar(%s): %s", ss.str(), _("missing arguments"));
+        );
+    }
+    
+    double len = lval.to_number();
+    double angle = aval.to_number();
+
+    double x = len * std::cos(angle);
+    double y = len * std::sin(angle);
+
+    as_value xval(x);
+    as_value yval(y);
+    boost::intrusive_ptr<as_object> obj = new Point_as;
+
+    obj->set_member(NSV::PROP_X, x);
+    obj->set_member(NSV::PROP_Y, y);
+    
+    return as_value(obj.get());
 }
 
 
 as_value
 Point_ctor(const fn_call& fn)
 {
-       boost::intrusive_ptr<as_object> obj = new Point_as;
-
-       as_value x;
-       as_value y;
-
-       if ( ! fn.nargs )
-       {
-               x.set_double(0);
-               y.set_double(0);
-       }
-       else
-       {
-               do {
-                       x = fn.arg(0);
-                       if ( fn.nargs < 2 ) break;
-                       y = fn.arg(1);
-                       if ( fn.nargs < 3 ) break;
-                       IF_VERBOSE_ASCODING_ERRORS(
-                               std::stringstream ss;
-                               fn.dump_args(ss);
-                               log_aserror("flash.geom.Point(%s): %s", 
ss.str(), _("arguments after the first two discarded"));
-                       );
-               } while(0);
-       }
-
-       obj->set_member(NSV::PROP_X, x);
-       obj->set_member(NSV::PROP_Y, y);
-
-       return as_value(obj.get()); // will keep alive
+    boost::intrusive_ptr<as_object> obj = new Point_as;
+
+    as_value x;
+    as_value y;
+
+    if ( ! fn.nargs )
+    {
+        x.set_double(0);
+        y.set_double(0);
+    }
+    else
+    {
+        do {
+            x = fn.arg(0);
+            if ( fn.nargs < 2 ) break;
+            y = fn.arg(1);
+            if ( fn.nargs < 3 ) break;
+            IF_VERBOSE_ASCODING_ERRORS(
+                std::stringstream ss;
+                fn.dump_args(ss);
+                log_aserror("flash.geom.Point(%s): %s", ss.str(), _("arguments 
after the first two discarded"));
+            );
+        } while(0);
+    }
+
+    obj->set_member(NSV::PROP_X, x);
+    obj->set_member(NSV::PROP_Y, y);
+
+    return as_value(obj.get()); // will keep alive
 }
 
 // extern 
@@ -669,25 +669,21 @@
 static
 as_value get_flash_geom_point_constructor(const fn_call& fn)
 {
-       log_debug("Loading flash.geom.Point class");
+    log_debug("Loading flash.geom.Point class");
     Global_as* gl = getGlobal(fn);
-    as_object* cl = gl->createClass(&Point_ctor, getPointInterface());
+    as_object* proto = getPointInterface();
+    as_object* cl = gl->createClass(&Point_ctor, proto);
     attachPointStaticProperties(*cl);
     return cl;
 }
 
-boost::intrusive_ptr<as_object> init_Point_instance()
-{
-    return boost::intrusive_ptr<as_object>(new Point_as);
-}
-
 // extern 
 void
 point_class_init(as_object& where, const ObjectURI& uri)
 {
     // TODO: this may not be correct, but it should be enumerable.
     const int flags = 0;
-       where.init_destructive_property(getName(uri),
+    where.init_destructive_property(getName(uri),
             get_flash_geom_point_constructor, flags, getNamespace(uri));
 }
 

=== modified file 'libcore/asobj/flash/geom/Point_as.h'
--- a/libcore/asobj/flash/geom/Point_as.h       2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/geom/Point_as.h       2009-07-29 06:12:04 +0000
@@ -36,9 +36,6 @@
 /// Initialize the global Point class
 void point_class_init(as_object& where, const ObjectURI& uri);
 
-/// Return a Point instance (in case the core lib needs it)
-boost::intrusive_ptr<as_object> init_Point_instance();
-
 /// Return the Point constructor, for use by Rectangle 
 as_function* getFlashGeomPointConstructor(const fn_call& fn);
 

=== modified file 'libcore/asobj/flash/geom/Rectangle_as.cpp'
--- a/libcore/asobj/flash/geom/Rectangle_as.cpp 2009-07-16 09:37:37 +0000
+++ b/libcore/asobj/flash/geom/Rectangle_as.cpp 2009-07-29 06:12:04 +0000
@@ -103,17 +103,17 @@
 static as_object*
 getRectangleInterface()
 {
-       static boost::intrusive_ptr<as_object> o;
-
-       if ( ! o )
-       {
-               o = new as_object(getObjectInterface());
-               VM::get().addStatic(o.get());
-
-               attachRectangleInterface(*o);
-       }
-
-       return o.get();
+    static boost::intrusive_ptr<as_object> o;
+
+    if ( ! o )
+    {
+        o = new as_object(getObjectInterface());
+        VM::get().addStatic(o.get());
+
+        attachRectangleInterface(*o);
+    }
+
+    return o.get();
 }
 
 class Rectangle_as: public as_object
@@ -121,16 +121,16 @@
 
 public:
 
-       Rectangle_as()
-               :
-               as_object(getRectangleInterface())
-       {}
-
-       // override from as_object ?
-       //std::string get_text_value() const { return "Rectangle"; }
-
-       // override from as_object ?
-       //double get_numeric_value() const { return 0; }
+    Rectangle_as()
+        :
+        as_object(getRectangleInterface())
+    {}
+
+    // override from as_object ?
+    //std::string get_text_value() const { return "Rectangle"; }
+
+    // override from as_object ?
+    //double get_numeric_value() const { return 0; }
 };
 
 
@@ -139,297 +139,297 @@
 {
     // The object will be interpreted as a rectangle. Any Rectangle
     // properties that the object has (width, height, x, y) are used.
-       boost::intrusive_ptr<as_object> ptr = 
ensureType<as_object>(fn.this_ptr);
-
-       as_value x, y, w, h;
-
-       ptr->get_member(NSV::PROP_X, &x);
-       ptr->get_member(NSV::PROP_Y, &y);
-       ptr->get_member(NSV::PROP_WIDTH, &w);
-       ptr->get_member(NSV::PROP_HEIGHT, &h);
-
-       boost::intrusive_ptr<as_object> obj = new Rectangle_as;
-
-       obj->set_member(NSV::PROP_X, x);
-       obj->set_member(NSV::PROP_Y, y);
-       obj->set_member(NSV::PROP_WIDTH, w);
-       obj->set_member(NSV::PROP_HEIGHT, h);
-
-       return as_value(obj.get()); // will keep alive
+    boost::intrusive_ptr<as_object> ptr = ensureType<as_object>(fn.this_ptr);
+
+    as_value x, y, w, h;
+
+    ptr->get_member(NSV::PROP_X, &x);
+    ptr->get_member(NSV::PROP_Y, &y);
+    ptr->get_member(NSV::PROP_WIDTH, &w);
+    ptr->get_member(NSV::PROP_HEIGHT, &h);
+
+    boost::intrusive_ptr<as_object> obj = new Rectangle_as;
+
+    obj->set_member(NSV::PROP_X, x);
+    obj->set_member(NSV::PROP_Y, y);
+    obj->set_member(NSV::PROP_WIDTH, w);
+    obj->set_member(NSV::PROP_HEIGHT, h);
+
+    return as_value(obj.get()); // will keep alive
 }
 
 static as_value
 Rectangle_contains(const fn_call& fn)
 {
-       //fn.arg(0) => x coordinate
-       //fn.arg(1) => y coordinate
-
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-
-       as_value rect_x_as, rect_width_as, rect_y_as, rect_height_as;
-
-       ptr->get_member(NSV::PROP_X, &rect_x_as);
-       ptr->get_member(NSV::PROP_WIDTH, &rect_width_as);
-       ptr->get_member(NSV::PROP_Y, &rect_y_as);
-       ptr->get_member(NSV::PROP_HEIGHT, &rect_height_as);
-
-       if ( fn.nargs < 2 )
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-                       std::stringstream ss;
-                       fn.dump_args(ss);
-                       log_aserror("flash.geom.Rectangle(%s): %s", ss.str(), 
+    //fn.arg(0) => x coordinate
+    //fn.arg(1) => y coordinate
+
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+
+    as_value rect_x_as, rect_width_as, rect_y_as, rect_height_as;
+
+    ptr->get_member(NSV::PROP_X, &rect_x_as);
+    ptr->get_member(NSV::PROP_WIDTH, &rect_width_as);
+    ptr->get_member(NSV::PROP_Y, &rect_y_as);
+    ptr->get_member(NSV::PROP_HEIGHT, &rect_height_as);
+
+    if ( fn.nargs < 2 )
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+            std::stringstream ss;
+            fn.dump_args(ss);
+            log_aserror("flash.geom.Rectangle(%s): %s", ss.str(), 
                 _("missing arguments"));
-               );
-               return as_value();
-       }
-
-       const as_value& x_as = fn.arg(0);
-       const as_value& y_as = fn.arg(1);
-       if ( x_as.is_null() || x_as.is_undefined() ||
-            y_as.is_null() || y_as.is_undefined() )
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-                       std::stringstream ss;
-                       fn.dump_args(ss);
-                       log_aserror("flash.geom.Rectangle(%s): %s", ss.str(), 
_("invalid arguments"));
-               );
-               return as_value();
-       }
-
-       as_value rect_x1_as = rect_x_as;
-       rect_x1_as.newAdd(rect_width_as);
-
-       as_value rect_y1_as = rect_y_as;
-       rect_y1_as.newAdd(rect_height_as);
-
-       if ( rect_x_as.is_null() || rect_x_as.is_undefined() ||
-            rect_y_as.is_null() || rect_y_as.is_undefined() ||
-            rect_x1_as.is_null() || rect_x1_as.is_undefined() ||
-            rect_y1_as.is_null() || rect_y1_as.is_undefined() )
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-                       std::stringstream ss;
-                       fn.dump_args(ss);
-                       log_aserror("flash.geom.Rectangle(%s): %s", ss.str(), 
_("invalid rectangle"));
-               );
-               return as_value();
-       }
-
-       //Points are contained within the Rectangle IFF they lie
-       //on the top or left borders of the rectangle, but not the right or
-       //bottom borders, or they are not on a border but between all.
-       
-       // NOTE: order of tests is important, see actionscript.all/Rectangle.as
-
-       as_value ret = x_as.newLessThan(rect_x_as);
-       if ( ret.is_undefined() ) return as_value();
-       if ( ret.to_bool() ) return as_value(false); 
-
-       ret = x_as.newLessThan(rect_x1_as);
-       if ( ret.is_undefined() ) return as_value();
-       if ( ! ret.to_bool() ) return as_value(false); 
-
-       ret = y_as.newLessThan(rect_y_as);
-       if ( ret.is_undefined() ) return as_value();
-       if ( ret.to_bool() ) return as_value(false); 
-
-       ret = y_as.newLessThan(rect_y1_as);
-       if ( ret.is_undefined() ) return as_value();
-       if ( ! ret.to_bool() ) return as_value(false); 
-
-       return as_value(true);
+        );
+        return as_value();
+    }
+
+    const as_value& x_as = fn.arg(0);
+    const as_value& y_as = fn.arg(1);
+    if ( x_as.is_null() || x_as.is_undefined() ||
+         y_as.is_null() || y_as.is_undefined() )
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+            std::stringstream ss;
+            fn.dump_args(ss);
+            log_aserror("flash.geom.Rectangle(%s): %s", ss.str(), _("invalid 
arguments"));
+        );
+        return as_value();
+    }
+
+    as_value rect_x1_as = rect_x_as;
+    rect_x1_as.newAdd(rect_width_as);
+
+    as_value rect_y1_as = rect_y_as;
+    rect_y1_as.newAdd(rect_height_as);
+
+    if ( rect_x_as.is_null() || rect_x_as.is_undefined() ||
+         rect_y_as.is_null() || rect_y_as.is_undefined() ||
+         rect_x1_as.is_null() || rect_x1_as.is_undefined() ||
+         rect_y1_as.is_null() || rect_y1_as.is_undefined() )
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+            std::stringstream ss;
+            fn.dump_args(ss);
+            log_aserror("flash.geom.Rectangle(%s): %s", ss.str(), _("invalid 
rectangle"));
+        );
+        return as_value();
+    }
+
+    //Points are contained within the Rectangle IFF they lie
+    //on the top or left borders of the rectangle, but not the right or
+    //bottom borders, or they are not on a border but between all.
+    
+    // NOTE: order of tests is important, see actionscript.all/Rectangle.as
+
+    as_value ret = x_as.newLessThan(rect_x_as);
+    if ( ret.is_undefined() ) return as_value();
+    if ( ret.to_bool() ) return as_value(false); 
+
+    ret = x_as.newLessThan(rect_x1_as);
+    if ( ret.is_undefined() ) return as_value();
+    if ( ! ret.to_bool() ) return as_value(false); 
+
+    ret = y_as.newLessThan(rect_y_as);
+    if ( ret.is_undefined() ) return as_value();
+    if ( ret.to_bool() ) return as_value(false); 
+
+    ret = y_as.newLessThan(rect_y1_as);
+    if ( ret.is_undefined() ) return as_value();
+    if ( ! ret.to_bool() ) return as_value(false); 
+
+    return as_value(true);
 
 }
 
 static as_value
 Rectangle_containsPoint(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-       UNUSED(ptr);
-       LOG_ONCE( log_unimpl (__FUNCTION__) );
-       return as_value();
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+    UNUSED(ptr);
+    LOG_ONCE( log_unimpl (__FUNCTION__) );
+    return as_value();
 }
 
 static as_value
 Rectangle_containsRectangle(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-       UNUSED(ptr);
-       LOG_ONCE( log_unimpl (__FUNCTION__) );
-       return as_value();
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+    UNUSED(ptr);
+    LOG_ONCE( log_unimpl (__FUNCTION__) );
+    return as_value();
 }
 
 static as_value
 Rectangle_equals(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-       UNUSED(ptr);
-       LOG_ONCE( log_unimpl (__FUNCTION__) );
-       return as_value();
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+    UNUSED(ptr);
+    LOG_ONCE( log_unimpl (__FUNCTION__) );
+    return as_value();
 }
 
 static as_value
 Rectangle_inflate(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-       UNUSED(ptr);
-       LOG_ONCE( log_unimpl (__FUNCTION__) );
-       return as_value();
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+    UNUSED(ptr);
+    LOG_ONCE( log_unimpl (__FUNCTION__) );
+    return as_value();
 }
 
 static as_value
 Rectangle_inflatePoint(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-       UNUSED(ptr);
-       LOG_ONCE( log_unimpl (__FUNCTION__) );
-       return as_value();
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+    UNUSED(ptr);
+    LOG_ONCE( log_unimpl (__FUNCTION__) );
+    return as_value();
 }
 
 static as_value
 Rectangle_intersection(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-       UNUSED(ptr);
-       LOG_ONCE( log_unimpl (__FUNCTION__) );
-       return as_value();
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+    UNUSED(ptr);
+    LOG_ONCE( log_unimpl (__FUNCTION__) );
+    return as_value();
 }
 
 static as_value
 Rectangle_intersects(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-       UNUSED(ptr);
-       LOG_ONCE( log_unimpl (__FUNCTION__) );
-       return as_value();
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+    UNUSED(ptr);
+    LOG_ONCE( log_unimpl (__FUNCTION__) );
+    return as_value();
 }
 
 static as_value
 Rectangle_isEmpty(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-
-       as_value w;
-       ptr->get_member(NSV::PROP_WIDTH, &w);
-       if ( w.is_undefined() || w.is_null() ) return as_value(true);
-
-       as_value h;
-       ptr->get_member(NSV::PROP_HEIGHT, &h);
-       if ( h.is_undefined() || h.is_null() ) return as_value(true);
-
-       double wn = w.to_number();
-       if (!isFinite(wn) || wn <= 0) return as_value(true);
-
-       double hn = h.to_number();
-       if (!isFinite(hn) || hn <= 0) return as_value(true);
-
-       log_debug("Width: %g, Height: %g", wn, hn);
-
-       return as_value(false);
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+
+    as_value w;
+    ptr->get_member(NSV::PROP_WIDTH, &w);
+    if ( w.is_undefined() || w.is_null() ) return as_value(true);
+
+    as_value h;
+    ptr->get_member(NSV::PROP_HEIGHT, &h);
+    if ( h.is_undefined() || h.is_null() ) return as_value(true);
+
+    double wn = w.to_number();
+    if (!isFinite(wn) || wn <= 0) return as_value(true);
+
+    double hn = h.to_number();
+    if (!isFinite(hn) || hn <= 0) return as_value(true);
+
+    log_debug("Width: %g, Height: %g", wn, hn);
+
+    return as_value(false);
 }
 
 static as_value
 Rectangle_offset(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-       UNUSED(ptr);
-       LOG_ONCE( log_unimpl (__FUNCTION__) );
-       return as_value();
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+    UNUSED(ptr);
+    LOG_ONCE( log_unimpl (__FUNCTION__) );
+    return as_value();
 }
 
 static as_value
 Rectangle_offsetPoint(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-       UNUSED(ptr);
-       LOG_ONCE( log_unimpl (__FUNCTION__) );
-       return as_value();
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+    UNUSED(ptr);
+    LOG_ONCE( log_unimpl (__FUNCTION__) );
+    return as_value();
 }
 
 static as_value
 Rectangle_setEmpty(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-       UNUSED(ptr);
-       LOG_ONCE( log_unimpl (__FUNCTION__) );
-       return as_value();
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+    UNUSED(ptr);
+    LOG_ONCE( log_unimpl (__FUNCTION__) );
+    return as_value();
 }
 
 static as_value
 Rectangle_toString(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-
-       as_value x, y, w, h;
-
-       ptr->get_member(NSV::PROP_X, &x);
-       ptr->get_member(NSV::PROP_Y, &y);
-       ptr->get_member(NSV::PROP_WIDTH, &w);
-       ptr->get_member(NSV::PROP_HEIGHT, &h);
-
-       std::stringstream ss;
-       ss << "(x=" << x.to_string()
-               << ", y=" << y.to_string()
-               << ", w=" << w.to_string()
-               << ", h=" << h.to_string()
-                << ")";
-
-       return as_value(ss.str());
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+
+    as_value x, y, w, h;
+
+    ptr->get_member(NSV::PROP_X, &x);
+    ptr->get_member(NSV::PROP_Y, &y);
+    ptr->get_member(NSV::PROP_WIDTH, &w);
+    ptr->get_member(NSV::PROP_HEIGHT, &h);
+
+    std::stringstream ss;
+    ss << "(x=" << x.to_string()
+        << ", y=" << y.to_string()
+        << ", w=" << w.to_string()
+        << ", h=" << h.to_string()
+         << ")";
+
+    return as_value(ss.str());
 }
 
 static as_value
 Rectangle_union(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-       UNUSED(ptr);
-       LOG_ONCE( log_unimpl (__FUNCTION__) );
-       return as_value();
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+    UNUSED(ptr);
+    LOG_ONCE( log_unimpl (__FUNCTION__) );
+    return as_value();
 }
 
 static as_value
 Rectangle_bottom_getset(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-
-       as_value ret;
-
-       if ( ! fn.nargs ) // getter
-       {
-               as_value height;
-               ptr->get_member(NSV::PROP_Y, &ret);
-               ptr->get_member(NSV::PROP_HEIGHT, &height);
-               ret.newAdd(height);
-       }
-       else // setter
-       {
-               as_value y;
-               ptr->get_member(NSV::PROP_Y, &y);
-
-               as_value bottom = fn.arg(0);
-               as_value newh = bottom.subtract(y);
-               ptr->set_member(NSV::PROP_HEIGHT, newh);
-       }
-
-       return ret;
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+
+    as_value ret;
+
+    if ( ! fn.nargs ) // getter
+    {
+        as_value height;
+        ptr->get_member(NSV::PROP_Y, &ret);
+        ptr->get_member(NSV::PROP_HEIGHT, &height);
+        ret.newAdd(height);
+    }
+    else // setter
+    {
+        as_value y;
+        ptr->get_member(NSV::PROP_Y, &y);
+
+        as_value bottom = fn.arg(0);
+        as_value newh = bottom.subtract(y);
+        ptr->set_member(NSV::PROP_HEIGHT, newh);
+    }
+
+    return ret;
 }
 
 static as_value
 Rectangle_bottomRight_getset(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
+    boost::intrusive_ptr<Rectangle_as> ptr = 
         ensureType<Rectangle_as>(fn.this_ptr);
 
-       if (!fn.nargs) {
-
-               as_value x,y,w,h;
-               ptr->get_member(NSV::PROP_X, &x);
-               ptr->get_member(NSV::PROP_Y, &y);
-               ptr->get_member(NSV::PROP_WIDTH, &w);
-               ptr->get_member(NSV::PROP_HEIGHT, &h);
-
-               as_value right = x.newAdd(w);
-               as_value bottom = y.newAdd(h);
+    if (!fn.nargs) {
+
+        as_value x,y,w,h;
+        ptr->get_member(NSV::PROP_X, &x);
+        ptr->get_member(NSV::PROP_Y, &y);
+        ptr->get_member(NSV::PROP_WIDTH, &w);
+        ptr->get_member(NSV::PROP_HEIGHT, &h);
+
+        as_value right = x.newAdd(w);
+        as_value bottom = y.newAdd(h);
 
         as_value point(fn.env().find_object("flash.geom.Point"));
 
@@ -440,13 +440,13 @@
             return as_value();
         }
 
-               std::auto_ptr<std::vector<as_value> > args(new 
std::vector<as_value>);
-               args->push_back(right);
-               args->push_back(bottom);
+        std::auto_ptr<std::vector<as_value> > args(new std::vector<as_value>);
+        args->push_back(right);
+        args->push_back(bottom);
 
-               as_value ret = pointCtor->constructInstance(fn.env(), args);
+        as_value ret = pointCtor->constructInstance(fn.env(), args);
         return ret;
-       }
+    }
 
     IF_VERBOSE_ASCODING_ERRORS(
     log_aserror(_("Attempt to set read-only property %s"),
@@ -459,71 +459,71 @@
 static as_value
 Rectangle_left_getset(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-
-       as_value ret;
-
-       if ( ! fn.nargs ) // getter
-       {
-               ptr->get_member(NSV::PROP_X, &ret);
-       }
-       else // setter
-       {
-               as_value oldx;
-               ptr->get_member(NSV::PROP_X, &oldx);
-
-               as_value newx = fn.arg(0);
-               ptr->set_member(NSV::PROP_X, newx);
-
-               as_value w;
-               ptr->get_member(NSV::PROP_WIDTH, &w);
-
-               w.newAdd(oldx.subtract(newx));
-               ptr->set_member(NSV::PROP_WIDTH, w);
-       }
-
-       return ret;
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+
+    as_value ret;
+
+    if ( ! fn.nargs ) // getter
+    {
+        ptr->get_member(NSV::PROP_X, &ret);
+    }
+    else // setter
+    {
+        as_value oldx;
+        ptr->get_member(NSV::PROP_X, &oldx);
+
+        as_value newx = fn.arg(0);
+        ptr->set_member(NSV::PROP_X, newx);
+
+        as_value w;
+        ptr->get_member(NSV::PROP_WIDTH, &w);
+
+        w.newAdd(oldx.subtract(newx));
+        ptr->set_member(NSV::PROP_WIDTH, w);
+    }
+
+    return ret;
 }
 
 static as_value
 Rectangle_right_getset(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-
-       as_value ret;
-
-       if ( ! fn.nargs ) // getter
-       {
-               as_value width;
-               ptr->get_member(NSV::PROP_X, &ret);
-               ptr->get_member(NSV::PROP_WIDTH, &width);
-               ret.newAdd(width);
-       }
-       else // setter
-       {
-               as_value x;
-               ptr->get_member(NSV::PROP_X, &x);
-
-               as_value right = fn.arg(0);
-               as_value neww = right.subtract(x);
-               ptr->set_member(NSV::PROP_WIDTH, neww);
-       }
-
-       return ret;
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+
+    as_value ret;
+
+    if ( ! fn.nargs ) // getter
+    {
+        as_value width;
+        ptr->get_member(NSV::PROP_X, &ret);
+        ptr->get_member(NSV::PROP_WIDTH, &width);
+        ret.newAdd(width);
+    }
+    else // setter
+    {
+        as_value x;
+        ptr->get_member(NSV::PROP_X, &x);
+
+        as_value right = fn.arg(0);
+        as_value neww = right.subtract(x);
+        ptr->set_member(NSV::PROP_WIDTH, neww);
+    }
+
+    return ret;
 }
 
 static as_value
 Rectangle_size_getset(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-
-       as_value ret;
-
-       if ( ! fn.nargs ) // getter
-       {
-               as_value w,h;
-               ptr->get_member(NSV::PROP_WIDTH, &w);
-               ptr->get_member(NSV::PROP_HEIGHT, &h);
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+
+    as_value ret;
+
+    if ( ! fn.nargs ) // getter
+    {
+        as_value w,h;
+        ptr->get_member(NSV::PROP_WIDTH, &w);
+        ptr->get_member(NSV::PROP_HEIGHT, &h);
 
         as_value point(fn.env().find_object("flash.geom.Point"));
 
@@ -534,63 +534,63 @@
             return as_value();
         }
 
-               std::auto_ptr<std::vector<as_value> > args(new 
std::vector<as_value>);
-               args->push_back(w);
-               args->push_back(h);
-
-               ret = pointCtor->constructInstance(fn.env(), args);
-       }
-       else // setter
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror(_("Attempt to set read-only property %s"), 
"Rectangle.size");
-               );
-       }
-
-       return ret;
+        std::auto_ptr<std::vector<as_value> > args(new std::vector<as_value>);
+        args->push_back(w);
+        args->push_back(h);
+
+        ret = pointCtor->constructInstance(fn.env(), args);
+    }
+    else // setter
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        log_aserror(_("Attempt to set read-only property %s"), 
"Rectangle.size");
+        );
+    }
+
+    return ret;
 }
 
 static as_value
 Rectangle_top_getset(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-
-       as_value ret;
-
-       if ( ! fn.nargs ) // getter
-       {
-               ptr->get_member(NSV::PROP_Y, &ret);
-       }
-       else // setter
-       {
-               as_value oldy;
-               ptr->get_member(NSV::PROP_Y, &oldy);
-
-               as_value newy = fn.arg(0);
-               ptr->set_member(NSV::PROP_Y, newy);
-
-               as_value h;
-               ptr->get_member(NSV::PROP_HEIGHT, &h);
-
-               h.newAdd(oldy.subtract(newy));
-               ptr->set_member(NSV::PROP_HEIGHT, h);
-       }
-
-       return ret;
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+
+    as_value ret;
+
+    if ( ! fn.nargs ) // getter
+    {
+        ptr->get_member(NSV::PROP_Y, &ret);
+    }
+    else // setter
+    {
+        as_value oldy;
+        ptr->get_member(NSV::PROP_Y, &oldy);
+
+        as_value newy = fn.arg(0);
+        ptr->set_member(NSV::PROP_Y, newy);
+
+        as_value h;
+        ptr->get_member(NSV::PROP_HEIGHT, &h);
+
+        h.newAdd(oldy.subtract(newy));
+        ptr->set_member(NSV::PROP_HEIGHT, h);
+    }
+
+    return ret;
 }
 
 static as_value
 Rectangle_topLeft_getset(const fn_call& fn)
 {
-       boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
-
-       as_value ret;
-
-       if ( ! fn.nargs ) // getter
-       {
-               as_value x,y;
-               ptr->get_member(NSV::PROP_X, &x);
-               ptr->get_member(NSV::PROP_Y, &y);
+    boost::intrusive_ptr<Rectangle_as> ptr = 
ensureType<Rectangle_as>(fn.this_ptr);
+
+    as_value ret;
+
+    if ( ! fn.nargs ) // getter
+    {
+        as_value x,y;
+        ptr->get_member(NSV::PROP_X, &x);
+        ptr->get_member(NSV::PROP_Y, &y);
 
         as_value point(fn.env().find_object("flash.geom.Point"));
 
@@ -601,75 +601,76 @@
             return as_value();
         }
 
-               std::auto_ptr<std::vector<as_value> > args(new 
std::vector<as_value>);
-               args->push_back(x);
-               args->push_back(y);
-
-               ret = pointCtor->constructInstance(fn.env(), args);
-
-       }
-       else // setter
-       {
-               IF_VERBOSE_ASCODING_ERRORS(
-               log_aserror(_("Attempt to set read-only property %s"), 
"Rectangle.topLeft");
-               );
-       }
-
-       return ret;
+        std::auto_ptr<std::vector<as_value> > args(new std::vector<as_value>);
+        args->push_back(x);
+        args->push_back(y);
+
+        ret = pointCtor->constructInstance(fn.env(), args);
+
+    }
+    else // setter
+    {
+        IF_VERBOSE_ASCODING_ERRORS(
+        log_aserror(_("Attempt to set read-only property %s"), 
"Rectangle.topLeft");
+        );
+    }
+
+    return ret;
 }
 
 
 as_value
 Rectangle_ctor(const fn_call& fn)
 {
-       boost::intrusive_ptr<as_object> obj = new Rectangle_as;
-
-       as_value x;
-       as_value y;
-       as_value w;
-       as_value h;
-
-       if ( ! fn.nargs )
-       {
-               x.set_double(0);
-               y.set_double(0);
-               w.set_double(0);
-               h.set_double(0);
-       }
-       else
-       {
-               do {
-                       x = fn.arg(0);
-                       if ( fn.nargs < 2 ) break;
-                       y = fn.arg(1);
-                       if ( fn.nargs < 3 ) break;
-                       w = fn.arg(2);
-                       if ( fn.nargs < 4 ) break;
-                       h = fn.arg(3);
-                       if ( fn.nargs < 5 ) break;
-                       IF_VERBOSE_ASCODING_ERRORS(
-                               std::stringstream ss;
-                               fn.dump_args(ss);
-                               log_aserror("flash.geom.Rectangle(%s): %s", 
ss.str(), _("arguments after the first four discarded"));
-                       );
-               } while(0);
-       }
-
-       obj->set_member(NSV::PROP_X, x);
-       obj->set_member(NSV::PROP_Y, y);
-       obj->set_member(NSV::PROP_WIDTH, w);
-       obj->set_member(NSV::PROP_HEIGHT, h);
-
-       return as_value(obj.get()); // will keep alive
+    boost::intrusive_ptr<as_object> obj = new Rectangle_as;
+
+    as_value x;
+    as_value y;
+    as_value w;
+    as_value h;
+
+    if ( ! fn.nargs )
+    {
+        x.set_double(0);
+        y.set_double(0);
+        w.set_double(0);
+        h.set_double(0);
+    }
+    else
+    {
+        do {
+            x = fn.arg(0);
+            if ( fn.nargs < 2 ) break;
+            y = fn.arg(1);
+            if ( fn.nargs < 3 ) break;
+            w = fn.arg(2);
+            if ( fn.nargs < 4 ) break;
+            h = fn.arg(3);
+            if ( fn.nargs < 5 ) break;
+            IF_VERBOSE_ASCODING_ERRORS(
+                std::stringstream ss;
+                fn.dump_args(ss);
+                log_aserror("flash.geom.Rectangle(%s): %s", ss.str(), 
_("arguments after the first four discarded"));
+            );
+        } while(0);
+    }
+
+    obj->set_member(NSV::PROP_X, x);
+    obj->set_member(NSV::PROP_Y, y);
+    obj->set_member(NSV::PROP_WIDTH, w);
+    obj->set_member(NSV::PROP_HEIGHT, h);
+
+    return as_value(obj.get()); // will keep alive
 }
 
 static as_value
 get_flash_geom_rectangle_constructor(const fn_call& fn)
 {
-       log_debug("Loading flash.geom.Rectangle class");
+    log_debug("Loading flash.geom.Rectangle class");
 
+    as_object* proto = getRectangleInterface();
     Global_as* gl = getGlobal(fn);
-    return gl->createClass(&Rectangle_ctor, getRectangleInterface());
+    return gl->createClass(&Rectangle_ctor, proto);
 }
 
 // extern 
@@ -678,7 +679,7 @@
 {
     // TODO: this may not be correct, but it should be enumerable.
     const int flags = 0;
-       where.init_destructive_property(getName(uri),
+    where.init_destructive_property(getName(uri),
             get_flash_geom_rectangle_constructor, flags, getNamespace(uri));
 }
 

=== modified file 'libcore/asobj/flash/media/Camera_as.cpp'
--- a/libcore/asobj/flash/media/Camera_as.cpp   2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/media/Camera_as.cpp   2009-07-29 05:40:20 +0000
@@ -112,7 +112,8 @@
        if ( cl == NULL )
        {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&camera_ctor, getCameraInterface());
+        as_object* proto = getCameraInterface();
+        cl = gl->createClass(&camera_ctor, proto);
                // replicate all interface to class, to be able to access
                // all methods as static functions
                attachCameraInterface(*cl);

=== modified file 'libcore/asobj/flash/media/ID3Info_as.cpp'
--- a/libcore/asobj/flash/media/ID3Info_as.cpp  2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/media/ID3Info_as.cpp  2009-07-29 05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
        Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&id3info_ctor, getID3InfoInterface());
+        as_object* proto = getID3InfoInterface();
+        cl = gl->createClass(&id3info_ctor, proto);
         attachID3InfoStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/media/Microphone_as.cpp'
--- a/libcore/asobj/flash/media/Microphone_as.cpp       2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/media/Microphone_as.cpp       2009-07-29 05:40:20 
+0000
@@ -117,7 +117,8 @@
        if ( cl == NULL )
        {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&microphone_ctor, getMicrophoneInterface());
+        as_object* proto = getMicrophoneInterface();
+        cl = gl->createClass(&microphone_ctor, proto);
                // replicate all interface to class, to be able to access
                // all methods as static functions
                attachMicrophoneInterface(*cl);

=== modified file 'libcore/asobj/flash/media/SoundChannel_as.cpp'
--- a/libcore/asobj/flash/media/SoundChannel_as.cpp     2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/media/SoundChannel_as.cpp     2009-07-29 05:40:20 
+0000
@@ -59,7 +59,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&soundchannel_ctor, getSoundChannelInterface());
+        as_object* proto = getSoundChannelInterface();
+        cl = gl->createClass(&soundchannel_ctor, proto);
         attachSoundChannelStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/media/SoundLoaderContext_as.cpp'
--- a/libcore/asobj/flash/media/SoundLoaderContext_as.cpp       2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/media/SoundLoaderContext_as.cpp       2009-07-29 
05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&soundloadercontext_ctor, 
getSoundLoaderContextInterface());
+        as_object* proto = getSoundLoaderContextInterface();
+        cl = gl->createClass(&soundloadercontext_ctor, proto);
         attachSoundLoaderContextStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/media/SoundMixer_as.cpp'
--- a/libcore/asobj/flash/media/SoundMixer_as.cpp       2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/media/SoundMixer_as.cpp       2009-07-29 05:40:20 
+0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&soundmixer_ctor, getSoundMixerInterface());
+        as_object* proto = getSoundMixerInterface();
+        cl = gl->createClass(&soundmixer_ctor, proto);
         attachSoundMixerStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/media/SoundTransform_as.cpp'
--- a/libcore/asobj/flash/media/SoundTransform_as.cpp   2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/media/SoundTransform_as.cpp   2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&soundtransform_ctor, 
getSoundTransformInterface());
+        as_object* proto = getSoundTransformInterface();
+        cl = gl->createClass(&soundtransform_ctor, proto);
         attachSoundTransformStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/media/Video_as.cpp'
--- a/libcore/asobj/flash/media/Video_as.cpp    2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/media/Video_as.cpp    2009-07-29 05:40:20 +0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&video_ctor, getVideoInterface());
+        as_object* proto = getVideoInterface();
+        cl = gl->createClass(&video_ctor, proto);
         attachVideoStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/media/media_as.cpp'
--- a/libcore/asobj/flash/media/media_as.cpp    2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/media/media_as.cpp    2009-07-29 05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&media_ctor, getmediaInterface());
+        as_object* proto = getmediaInterface();
+        cl = gl->createClass(&media_ctor, proto);
         attachmediaStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/net/FileFilter_as.cpp'
--- a/libcore/asobj/flash/net/FileFilter_as.cpp 2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/net/FileFilter_as.cpp 2009-07-29 05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&filefilter_ctor, getFileFilterInterface());
+        as_object* proto = getFileFilterInterface();
+        cl = gl->createClass(&filefilter_ctor, proto);
         attachFileFilterStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/net/FileReferenceList_as.cpp'
--- a/libcore/asobj/flash/net/FileReferenceList_as.cpp  2009-07-16 09:02:35 
+0000
+++ b/libcore/asobj/flash/net/FileReferenceList_as.cpp  2009-07-29 05:40:20 
+0000
@@ -157,7 +157,8 @@
     // in the 'where' package
     boost::intrusive_ptr<as_object> cl;
     Global_as* gl = getGlobal(where);
-    cl = gl->createClass(&FileReferenceList_ctor, 
getFileReferenceListInterface());
+    as_object* proto = getFileReferenceListInterface();
+    cl = gl->createClass(&FileReferenceList_ctor, proto);
     attachFileReferenceListStaticProperties(*cl);
 
     // Register _global.FileReferenceList

=== modified file 'libcore/asobj/flash/net/FileReference_as.cpp'
--- a/libcore/asobj/flash/net/FileReference_as.cpp      2009-07-16 09:02:35 
+0000
+++ b/libcore/asobj/flash/net/FileReference_as.cpp      2009-07-29 05:40:20 
+0000
@@ -245,7 +245,8 @@
     // in the 'where' package
     boost::intrusive_ptr<as_object> cl;
     Global_as* gl = getGlobal(where);
-    cl = gl->createClass(&FileReference_ctor, getFileReferenceInterface());
+    as_object* proto = getFileReferenceInterface();
+    cl = gl->createClass(&FileReference_ctor, proto);
     attachFileReferenceStaticProperties(*cl);
 
     // Register _global.FileReference

=== modified file 'libcore/asobj/flash/net/IDynamicPropertyOutput_as.cpp'
--- a/libcore/asobj/flash/net/IDynamicPropertyOutput_as.cpp     2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/net/IDynamicPropertyOutput_as.cpp     2009-07-29 
05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&idynamicpropertyoutput_ctor, 
getIDynamicPropertyOutputInterface());
+        as_object* proto = getIDynamicPropertyOutputInterface();
+        cl = gl->createClass(&idynamicpropertyoutput_ctor, proto);
         attachIDynamicPropertyOutputStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/net/IDynamicPropertyWriter_as.cpp'
--- a/libcore/asobj/flash/net/IDynamicPropertyWriter_as.cpp     2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/net/IDynamicPropertyWriter_as.cpp     2009-07-29 
05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&idynamicpropertywriter_ctor, 
getIDynamicPropertyWriterInterface());
+        as_object* proto = getIDynamicPropertyWriterInterface();
+        cl = gl->createClass(&idynamicpropertywriter_ctor, proto);
         attachIDynamicPropertyWriterStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/net/NetConnection_as.cpp'
--- a/libcore/asobj/flash/net/NetConnection_as.cpp      2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/net/NetConnection_as.cpp      2009-07-29 05:40:20 
+0000
@@ -65,7 +65,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&netconnection_ctor, getNetConnectionInterface());
+        as_object* proto = getNetConnectionInterface();
+        cl = gl->createClass(&netconnection_ctor, proto);
         attachNetConnectionStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/net/NetStream_as.cpp'
--- a/libcore/asobj/flash/net/NetStream_as.cpp  2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/net/NetStream_as.cpp  2009-07-29 05:40:20 +0000
@@ -78,7 +78,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&netstream_ctor, getNetStreamInterface());
+        as_object* proto = getNetStreamInterface();
+        cl = gl->createClass(&netstream_ctor, proto);
         attachNetStreamStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/net/ObjectEncoding_as.cpp'
--- a/libcore/asobj/flash/net/ObjectEncoding_as.cpp     2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/net/ObjectEncoding_as.cpp     2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&objectencoding_ctor, 
getObjectEncodingInterface());
+        as_object* proto = getObjectEncodingInterface();
+        cl = gl->createClass(&objectencoding_ctor, proto);
         attachObjectEncodingStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/net/Responder_as.cpp'
--- a/libcore/asobj/flash/net/Responder_as.cpp  2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/net/Responder_as.cpp  2009-07-29 05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&responder_ctor, getResponderInterface());
+        as_object* proto = getResponderInterface();
+        cl = gl->createClass(&responder_ctor, proto);
         attachResponderStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/net/SharedObject_as.cpp'
--- a/libcore/asobj/flash/net/SharedObject_as.cpp       2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/net/SharedObject_as.cpp       2009-07-29 05:40:20 
+0000
@@ -611,7 +611,8 @@
     
     if (cl == NULL) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&sharedobject_ctor, getSharedObjectInterface());
+        as_object* proto = getSharedObjectInterface();
+        cl = gl->createClass(&sharedobject_ctor, proto);
         attachSharedObjectStaticInterface(*cl);
     }
     

=== modified file 'libcore/asobj/flash/net/Socket_as.cpp'
--- a/libcore/asobj/flash/net/Socket_as.cpp     2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/net/Socket_as.cpp     2009-07-29 05:40:20 +0000
@@ -90,7 +90,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&socket_ctor, getSocketInterface());
+        as_object* proto = getSocketInterface();
+        cl = gl->createClass(&socket_ctor, proto);
         attachSocketStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/net/URLLoader_as.cpp'
--- a/libcore/asobj/flash/net/URLLoader_as.cpp  2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/net/URLLoader_as.cpp  2009-07-29 05:40:20 +0000
@@ -66,7 +66,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&urlloader_ctor, getURLLoaderInterface());
+        as_object* proto = getURLLoaderInterface();
+        cl = gl->createClass(&urlloader_ctor, proto);
         attachURLLoaderStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/net/URLRequestHeader_as.cpp'
--- a/libcore/asobj/flash/net/URLRequestHeader_as.cpp   2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/net/URLRequestHeader_as.cpp   2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&urlrequestheader_ctor, 
getURLRequestHeaderInterface());
+        as_object* proto = getURLRequestHeaderInterface();
+        cl = gl->createClass(&urlrequestheader_ctor, proto);
         attachURLRequestHeaderStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/net/URLRequest_as.cpp'
--- a/libcore/asobj/flash/net/URLRequest_as.cpp 2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/net/URLRequest_as.cpp 2009-07-29 05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&urlrequest_ctor, getURLRequestInterface());
+        as_object* proto = getURLRequestInterface();
+        cl = gl->createClass(&urlrequest_ctor, proto);
         attachURLRequestStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/net/URLStream_as.cpp'
--- a/libcore/asobj/flash/net/URLStream_as.cpp  2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/net/URLStream_as.cpp  2009-07-29 05:40:20 +0000
@@ -79,7 +79,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&urlstream_ctor, getURLStreamInterface());
+        as_object* proto = getURLStreamInterface();
+        cl = gl->createClass(&urlstream_ctor, proto);
         attachURLStreamStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/net/URLVariables_as.cpp'
--- a/libcore/asobj/flash/net/URLVariables_as.cpp       2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/net/URLVariables_as.cpp       2009-07-29 05:40:20 
+0000
@@ -59,7 +59,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&urlvariables_ctor, getURLVariablesInterface());
+        as_object* proto = getURLVariablesInterface();
+        cl = gl->createClass(&urlvariables_ctor, proto);
         attachURLVariablesStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/net/XMLSocket_as.cpp'
--- a/libcore/asobj/flash/net/XMLSocket_as.cpp  2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/net/XMLSocket_as.cpp  2009-07-29 05:40:20 +0000
@@ -427,7 +427,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&xmlsocket_new, getXMLSocketInterface());
+        as_object* proto = getXMLSocketInterface();
+        cl = gl->createClass(&xmlsocket_new, proto);
     }
     
     // Register _global.XMLSocket

=== modified file 'libcore/asobj/flash/printing/PrintJobOptions_as.cpp'
--- a/libcore/asobj/flash/printing/PrintJobOptions_as.cpp       2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/printing/PrintJobOptions_as.cpp       2009-07-29 
05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&printjoboptions_ctor, 
getPrintJobOptionsInterface());
+        as_object* proto = getPrintJobOptionsInterface();
+        cl = gl->createClass(&printjoboptions_ctor, proto);
         attachPrintJobOptionsStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/printing/PrintJob_as.cpp'
--- a/libcore/asobj/flash/printing/PrintJob_as.cpp      2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/printing/PrintJob_as.cpp      2009-07-29 05:40:20 
+0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&printjob_ctor, getPrintJobInterface());
+        as_object* proto = getPrintJobInterface();
+        cl = gl->createClass(&printjob_ctor, proto);
         attachPrintJobStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/sampler/DeleteObjectSample_as.cpp'
--- a/libcore/asobj/flash/sampler/DeleteObjectSample_as.cpp     2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/sampler/DeleteObjectSample_as.cpp     2009-07-29 
05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&deleteobjectsample_ctor, 
getDeleteObjectSampleInterface());
+        as_object* proto = getDeleteObjectSampleInterface();
+        cl = gl->createClass(&deleteobjectsample_ctor, proto);
         attachDeleteObjectSampleStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/sampler/NewObjectSample_as.cpp'
--- a/libcore/asobj/flash/sampler/NewObjectSample_as.cpp        2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/sampler/NewObjectSample_as.cpp        2009-07-29 
05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&newobjectsample_ctor, 
getNewObjectSampleInterface());
+        as_object* proto = getNewObjectSampleInterface();
+        cl = gl->createClass(&newobjectsample_ctor, proto);
         attachNewObjectSampleStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/sampler/Sample_as.cpp'
--- a/libcore/asobj/flash/sampler/Sample_as.cpp 2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/sampler/Sample_as.cpp 2009-07-29 05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&sample_ctor, getSampleInterface());
+        as_object* proto = getSampleInterface();
+        cl = gl->createClass(&sample_ctor, proto);
         attachSampleStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/sampler/StackFrame_as.cpp'
--- a/libcore/asobj/flash/sampler/StackFrame_as.cpp     2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/sampler/StackFrame_as.cpp     2009-07-29 05:40:20 
+0000
@@ -61,7 +61,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&stackframe_ctor, getStackFrameInterface());
+        as_object* proto = getStackFrameInterface();
+        cl = gl->createClass(&stackframe_ctor, proto);
         attachStackFrameStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/system/ApplicationDomain_as.cpp'
--- a/libcore/asobj/flash/system/ApplicationDomain_as.cpp       2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/system/ApplicationDomain_as.cpp       2009-07-29 
05:40:20 +0000
@@ -59,7 +59,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&applicationdomain_ctor, 
getApplicationDomainInterface());
+        as_object* proto = getApplicationDomainInterface();
+        cl = gl->createClass(&applicationdomain_ctor, proto);
         attachApplicationDomainStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/system/Capabilities_as.cpp'
--- a/libcore/asobj/flash/system/Capabilities_as.cpp    2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/system/Capabilities_as.cpp    2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&capabilities_ctor, getCapabilitiesInterface());
+        as_object* proto = getCapabilitiesInterface();
+        cl = gl->createClass(&capabilities_ctor, proto);
         attachCapabilitiesStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/system/IME_as.cpp'
--- a/libcore/asobj/flash/system/IME_as.cpp     2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/system/IME_as.cpp     2009-07-29 05:40:20 +0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&ime_ctor, getIMEInterface());
+        as_object* proto = getIMEInterface();
+        cl = gl->createClass(&ime_ctor, proto);
         attachIMEStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/system/LoaderContext_as.cpp'
--- a/libcore/asobj/flash/system/LoaderContext_as.cpp   2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/system/LoaderContext_as.cpp   2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&loadercontext_ctor, getLoaderContextInterface());
+        as_object* proto = getLoaderContextInterface();
+        cl = gl->createClass(&loadercontext_ctor, proto);
         attachLoaderContextStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/system/SecurityDomain_as.cpp'
--- a/libcore/asobj/flash/system/SecurityDomain_as.cpp  2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/system/SecurityDomain_as.cpp  2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&securitydomain_ctor, 
getSecurityDomainInterface());
+        as_object* proto = getSecurityDomainInterface();
+        cl = gl->createClass(&securitydomain_ctor, proto);
         attachSecurityDomainStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/system/SecurityPanel_as.cpp'
--- a/libcore/asobj/flash/system/SecurityPanel_as.cpp   2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/system/SecurityPanel_as.cpp   2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&securitypanel_ctor, getSecurityPanelInterface());
+        as_object* proto = getSecurityPanelInterface();
+        cl = gl->createClass(&securitypanel_ctor, proto);
         attachSecurityPanelStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/system/Security_as.cpp'
--- a/libcore/asobj/flash/system/Security_as.cpp        2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/system/Security_as.cpp        2009-07-29 05:40:20 
+0000
@@ -65,7 +65,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&security_ctor, getSecurityInterface());
+        as_object* proto = getSecurityInterface();
+        cl = gl->createClass(&security_ctor, proto);
         attachSecurityStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/text/CSMSettings_as.cpp'
--- a/libcore/asobj/flash/text/CSMSettings_as.cpp       2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/text/CSMSettings_as.cpp       2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&csmsettings_ctor, getCSMSettingsInterface());
+        as_object* proto = getCSMSettingsInterface();
+        cl = gl->createClass(&csmsettings_ctor, proto);
         attachCSMSettingsStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/text/FontStyle_as.cpp'
--- a/libcore/asobj/flash/text/FontStyle_as.cpp 2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/text/FontStyle_as.cpp 2009-07-29 05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&fontstyle_ctor, getFontStyleInterface());
+        as_object* proto = getFontStyleInterface();
+        cl = gl->createClass(&fontstyle_ctor, proto);
         attachFontStyleStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/text/FontType_as.cpp'
--- a/libcore/asobj/flash/text/FontType_as.cpp  2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/text/FontType_as.cpp  2009-07-29 05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&fonttype_ctor, getFontTypeInterface());
+        as_object* proto = getFontTypeInterface();
+        cl = gl->createClass(&fonttype_ctor, proto);
         attachFontTypeStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/text/Font_as.cpp'
--- a/libcore/asobj/flash/text/Font_as.cpp      2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/text/Font_as.cpp      2009-07-29 05:40:20 +0000
@@ -60,7 +60,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&font_ctor, getFontInterface());
+        as_object* proto = getFontInterface();
+        cl = gl->createClass(&font_ctor, proto);
         attachFontStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/text/StaticText_as.cpp'
--- a/libcore/asobj/flash/text/StaticText_as.cpp        2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/text/StaticText_as.cpp        2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&statictext_ctor, getStaticTextInterface());
+        as_object* proto = getStaticTextInterface();
+        cl = gl->createClass(&statictext_ctor, proto);
         attachStaticTextStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/text/StyleSheet_as.cpp'
--- a/libcore/asobj/flash/text/StyleSheet_as.cpp        2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/text/StyleSheet_as.cpp        2009-07-29 05:40:20 
+0000
@@ -62,7 +62,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&stylesheet_ctor, getStyleSheetInterface());
+        as_object* proto = getStyleSheetInterface();
+        cl = gl->createClass(&stylesheet_ctor, proto);
         attachStyleSheetStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/text/TextField_as.cpp'
--- a/libcore/asobj/flash/text/TextField_as.cpp 2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/text/TextField_as.cpp 2009-07-29 05:40:20 +0000
@@ -78,7 +78,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&textfield_ctor, getTextFieldInterface());
+        as_object* proto = getTextFieldInterface();
+        cl = gl->createClass(&textfield_ctor, proto);
         attachTextFieldStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/text/TextFormatAlign_as.cpp'
--- a/libcore/asobj/flash/text/TextFormatAlign_as.cpp   2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/text/TextFormatAlign_as.cpp   2009-07-29 05:31:28 
+0000
@@ -41,8 +41,10 @@
 // extern (used by Global.cpp)
 void textformatalign_class_init(as_object& where, const ObjectURI& uri)
 {
+    Global_as* gl = getGlobal(where);
+    as_object* proto = getObjectInterface();
     static boost::intrusive_ptr<as_object> obj =
-        new as_object(getObjectInterface());
+        gl->createObject(proto);
 
     attachTextFormatAlignStaticInterface(*obj);
 

=== modified file 'libcore/asobj/flash/text/TextFormat_as.cpp'
--- a/libcore/asobj/flash/text/TextFormat_as.cpp        2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/text/TextFormat_as.cpp        2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&textformat_ctor, getTextFormatInterface());
+        as_object* proto = getTextFormatInterface();
+        cl = gl->createClass(&textformat_ctor, proto);
         attachTextFormatStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/text/TextLineMetrics_as.cpp'
--- a/libcore/asobj/flash/text/TextLineMetrics_as.cpp   2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/text/TextLineMetrics_as.cpp   2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&textlinemetrics_ctor, 
getTextLineMetricsInterface());
+        as_object* proto = getTextLineMetricsInterface();
+        cl = gl->createClass(&textlinemetrics_ctor, proto);
         attachTextLineMetricsStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/text/TextRenderer_as.cpp'
--- a/libcore/asobj/flash/text/TextRenderer_as.cpp      2009-07-16 09:02:35 
+0000
+++ b/libcore/asobj/flash/text/TextRenderer_as.cpp      2009-07-29 05:40:20 
+0000
@@ -135,7 +135,8 @@
     // in the 'where' package
     boost::intrusive_ptr<as_object> cl;
     Global_as* gl = getGlobal(where);
-    cl = gl->createClass(&TextRenderer_ctor, getTextRendererInterface());
+    as_object* proto = getTextRendererInterface();
+    cl = gl->createClass(&TextRenderer_ctor, proto);
     attachTextRendererStaticProperties(*cl);
 
     // Register _global.TextRenderer

=== modified file 'libcore/asobj/flash/text/TextSnapshot_as.cpp'
--- a/libcore/asobj/flash/text/TextSnapshot_as.cpp      2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/text/TextSnapshot_as.cpp      2009-07-29 05:40:20 
+0000
@@ -78,7 +78,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&textsnapshot_ctor, getTextSnapshotInterface());
+        as_object* proto = getTextSnapshotInterface();
+        cl = gl->createClass(&textsnapshot_ctor, proto);
         attachTextSnapshotStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/ui/ContextMenuBuiltInItems_as.cpp'
--- a/libcore/asobj/flash/ui/ContextMenuBuiltInItems_as.cpp     2009-07-28 
11:58:27 +0000
+++ b/libcore/asobj/flash/ui/ContextMenuBuiltInItems_as.cpp     2009-07-29 
05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&contextmenubuiltinitems_ctor, 
getContextMenuBuiltInItemsInterface());
+        as_object* proto = getContextMenuBuiltInItemsInterface();
+        cl = gl->createClass(&contextmenubuiltinitems_ctor, proto);
         attachContextMenuBuiltInItemsStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/ui/ContextMenuItem_as.cpp'
--- a/libcore/asobj/flash/ui/ContextMenuItem_as.cpp     2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/ui/ContextMenuItem_as.cpp     2009-07-29 05:59:24 
+0000
@@ -48,8 +48,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&contextmenuitem_ctor,
-                getContextMenuItemInterface());
+        as_object* proto = getContextMenuItemInterface();
+        cl = gl->createClass(&contextmenuitem_ctor, proto);
     }
 
     // Register _global.ContextMenuItem

=== modified file 'libcore/asobj/flash/ui/ContextMenu_as.cpp'
--- a/libcore/asobj/flash/ui/ContextMenu_as.cpp 2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/ui/ContextMenu_as.cpp 2009-07-29 05:40:20 +0000
@@ -56,7 +56,8 @@
 
        if (cl == NULL) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(contextmenu_ctor, getContextMenuInterface());
+        as_object* proto = getContextMenuInterface();
+        cl = gl->createClass(contextmenu_ctor, proto);
        }
 
        // Register _global.ContextMenu

=== modified file 'libcore/asobj/flash/ui/KeyLocation_as.cpp'
--- a/libcore/asobj/flash/ui/KeyLocation_as.cpp 2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/ui/KeyLocation_as.cpp 2009-07-29 05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&keylocation_ctor, getKeyLocationInterface());
+        as_object* proto = getKeyLocationInterface();
+        cl = gl->createClass(&keylocation_ctor, proto);
         attachKeyLocationStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/utils/ByteArray_as.cpp'
--- a/libcore/asobj/flash/utils/ByteArray_as.cpp        2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/utils/ByteArray_as.cpp        2009-07-29 05:40:20 
+0000
@@ -86,7 +86,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&bytearray_ctor, getByteArrayInterface());
+        as_object* proto = getByteArrayInterface();
+        cl = gl->createClass(&bytearray_ctor, proto);
         attachByteArrayStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/utils/Dictionary_as.cpp'
--- a/libcore/asobj/flash/utils/Dictionary_as.cpp       2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/utils/Dictionary_as.cpp       2009-07-29 05:40:20 
+0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&dictionary_ctor, getDictionaryInterface());
+        as_object* proto = getDictionaryInterface();
+        cl = gl->createClass(&dictionary_ctor, proto);
         attachDictionaryStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/utils/Endian_as.cpp'
--- a/libcore/asobj/flash/utils/Endian_as.cpp   2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/utils/Endian_as.cpp   2009-07-29 05:40:20 +0000
@@ -58,7 +58,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&endian_ctor, getEndianInterface());
+        as_object* proto = getEndianInterface();
+        cl = gl->createClass(&endian_ctor, proto);
         attachEndianStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/utils/IDataInput_as.cpp'
--- a/libcore/asobj/flash/utils/IDataInput_as.cpp       2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/utils/IDataInput_as.cpp       2009-07-29 05:40:20 
+0000
@@ -71,7 +71,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&idatainput_ctor, getIDataInputInterface());
+        as_object* proto = getIDataInputInterface();
+        cl = gl->createClass(&idatainput_ctor, proto);
         attachIDataInputStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/utils/IDataOutput_as.cpp'
--- a/libcore/asobj/flash/utils/IDataOutput_as.cpp      2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/utils/IDataOutput_as.cpp      2009-07-29 05:40:20 
+0000
@@ -69,7 +69,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&idataoutput_ctor, getIDataOutputInterface());
+        as_object* proto = getIDataOutputInterface();
+        cl = gl->createClass(&idataoutput_ctor, proto);
         attachIDataOutputStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/utils/IExternalizable_as.cpp'
--- a/libcore/asobj/flash/utils/IExternalizable_as.cpp  2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/utils/IExternalizable_as.cpp  2009-07-29 05:40:20 
+0000
@@ -59,7 +59,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&iexternalizable_ctor, 
getIExternalizableInterface());
+        as_object* proto = getIExternalizableInterface();
+        cl = gl->createClass(&iexternalizable_ctor, proto);
         attachIExternalizableStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/utils/Proxy_as.cpp'
--- a/libcore/asobj/flash/utils/Proxy_as.cpp    2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/utils/Proxy_as.cpp    2009-07-29 05:40:20 +0000
@@ -67,7 +67,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&proxy_ctor, getProxyInterface());
+        as_object* proto = getProxyInterface();
+        cl = gl->createClass(&proxy_ctor, proto);
         attachProxyStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/utils/Timer_as.cpp'
--- a/libcore/asobj/flash/utils/Timer_as.cpp    2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/utils/Timer_as.cpp    2009-07-29 05:40:20 +0000
@@ -62,7 +62,8 @@
 
     if (!cl) {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&timer_ctor, getTimerInterface());
+        as_object* proto = getTimerInterface();
+        cl = gl->createClass(&timer_ctor, proto);
         attachTimerStaticInterface(*cl);
     }
 

=== modified file 'libcore/asobj/flash/xml/XMLDocument_as.cpp'
--- a/libcore/asobj/flash/xml/XMLDocument_as.cpp        2009-07-28 11:58:27 
+0000
+++ b/libcore/asobj/flash/xml/XMLDocument_as.cpp        2009-07-29 05:40:20 
+0000
@@ -628,7 +628,8 @@
     if ( cl == NULL )
     {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&xml_new, getXMLInterface());
+        as_object* proto = getXMLInterface();
+        cl = gl->createClass(&xml_new, proto);
     }
     
     where.init_member(getName(uri), cl.get(), as_object::DefaultFlags,

=== modified file 'libcore/asobj/flash/xml/XMLNode_as.cpp'
--- a/libcore/asobj/flash/xml/XMLNode_as.cpp    2009-07-28 11:58:27 +0000
+++ b/libcore/asobj/flash/xml/XMLNode_as.cpp    2009-07-29 05:40:20 +0000
@@ -452,7 +452,8 @@
     if ( cl == NULL )
     {
         Global_as* gl = getGlobal(where);
-        cl = gl->createClass(&xmlnode_new, getXMLNodeInterface());
+        as_object* proto = getXMLNodeInterface();
+        cl = gl->createClass(&xmlnode_new, proto);
     }
 
     where.init_member(getName(uri), cl.get(), as_object::DefaultFlags,

=== modified file 'libcore/asobj/int_as.cpp'
--- a/libcore/asobj/int_as.cpp  2009-07-16 09:02:35 +0000
+++ b/libcore/asobj/int_as.cpp  2009-07-29 05:40:20 +0000
@@ -73,7 +73,8 @@
     static boost::intrusive_ptr<as_object> cl;
 
         Global_as* gl = getGlobal(global);
-        cl = gl->createClass(&int_ctor, getintInterface());
+        as_object* proto = getintInterface();
+        cl = gl->createClass(&int_ctor, proto);
 
        // Register _global.DisplayObject
        global.init_member(getName(uri), cl.get(), as_object::DefaultFlags,


reply via email to

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