[SCM] GNU Shockwave Flash (SWF) player branch, master, updated. upstream/0.8.9_git201101151845.master-13-g5e8836a

Gabriele Giacone gg0-guest at alioth.debian.org
Wed Jan 26 01:27:38 UTC 2011


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Shockwave Flash (SWF) player".

The branch, master has been updated
       via  5e8836a204fd60242c7eca65d1efbb6e78927217 (commit)
       via  b33120e376470fc926c891f7df16710b6cfe1481 (commit)
       via  bf937b3b4594013af5e012eab8db0389e5fcc3d1 (commit)
       via  07c4aaaf5585f9c52ddbf43a96347ddb34d34726 (commit)
       via  dc684e05360d8e5d86c9f599cf6e408afcff6c90 (commit)
      from  b9b6c01754c5cd8d8d923135029bbaae1a07a5fa (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 5e8836a204fd60242c7eca65d1efbb6e78927217
Author: Gabriele Giacone <1o5g4r8o at gmail.com>
Date:   Wed Jan 26 02:20:26 2011 +0100

    versioning debhelper

commit b33120e376470fc926c891f7df16710b6cfe1481
Merge: 07c4aaa bf937b3
Author: Gabriele Giacone <1o5g4r8o at gmail.com>
Date:   Wed Jan 26 02:10:57 2011 +0100

    Merge commit 'upstream/0.8.9_git20110126'

commit 07c4aaaf5585f9c52ddbf43a96347ddb34d34726
Author: Gabriele Giacone <1o5g4r8o at gmail.com>
Date:   Wed Jan 26 01:33:23 2011 +0100

    dch git shapshot

-----------------------------------------------------------------------

Summary of changes:
 TODO                                               |    4 +-
 debian/changelog                                   |   28 ++++
 debian/control                                     |    2 +-
 doc/C/gnash.man-xml                                |  162 ++++++++++++++++---
 doc/C/preformatted/gnash.1.in                      |   85 +++++++---
 extensions/dbus/dbus_ext.cpp                       |    2 +-
 extensions/dejagnu/dejagnu.cpp                     |    2 +-
 extensions/fileio/fileio.cpp                       |    2 +-
 extensions/gtk2/gtkext.cpp                         |    8 +-
 extensions/launcher/launcher_ext.cpp               |    1 -
 extensions/lirc/lirc_ext.cpp                       |    2 +-
 extensions/mysql/mysql_db.cpp                      |    6 +-
 extensions/mysql/mysql_db.h                        |    4 +-
 libbase/GnashImage.cpp                             |    6 +-
 libbase/GnashImageGif.cpp                          |   74 +++++++++-
 libbase/GnashImageGif.h                            |   94 ++----------
 libbase/GnashImagePng.cpp                          |  134 ++++++++++++++--
 libbase/GnashImagePng.h                            |  120 ++-------------
 libbase/log.cpp                                    |    6 -
 libbase/smart_ptr.h                                |    5 -
 libcore/Button.cpp                                 |    2 +-
 libcore/Button.h                                   |    6 +-
 libcore/DisplayList.cpp                            |    6 +-
 libcore/DisplayObject.cpp                          |    5 +-
 libcore/DisplayObjectContainer.cpp                 |    4 +-
 libcore/DisplayObjectContainer.h                   |    4 +-
 libcore/Font.cpp                                   |    2 +-
 libcore/Function.h                                 |    2 -
 libcore/MorphShape.h                               |    2 +-
 libcore/MouseButtonState.h                         |    8 +-
 libcore/MovieClip.cpp                              |    2 +-
 libcore/MovieClip.h                                |    2 +-
 libcore/MovieFactory.cpp                           |    2 +-
 libcore/StaticText.cpp                             |    3 +-
 libcore/StaticText.h                               |    2 +-
 libcore/Timers.cpp                                 |    2 -
 libcore/Timers.h                                   |    2 -
 libcore/abc/abc_function.h                         |    2 +-
 libcore/as_object.cpp                              |   23 ++--
 libcore/as_object.h                                |    5 -
 libcore/as_value.cpp                               |    2 +-
 libcore/asobj/Accessibility_as.cpp                 |    1 -
 libcore/asobj/Array_as.cpp                         |    3 +-
 libcore/asobj/AsBroadcaster.cpp                    |   17 +--
 libcore/asobj/AsBroadcaster.h                      |    5 +-
 libcore/asobj/Boolean_as.cpp                       |    1 -
 libcore/asobj/Camera_as.cpp                        |    5 +-
 libcore/asobj/Color_as.cpp                         |    1 -
 libcore/asobj/ContextMenuItem_as.cpp               |    5 +-
 libcore/asobj/ContextMenu_as.cpp                   |    4 +-
 libcore/asobj/Date_as.cpp                          |    1 -
 libcore/asobj/Error_as.cpp                         |   11 +-
 libcore/asobj/Function_as.cpp                      |    3 +-
 libcore/asobj/Global_as.cpp                        |    6 +-
 libcore/asobj/Global_as.h                          |    3 +-
 libcore/asobj/Key_as.cpp                           |    3 +-
 libcore/asobj/LoadVars_as.cpp                      |    3 +-
 libcore/asobj/LoadableObject.cpp                   |    1 -
 libcore/asobj/LocalConnection_as.cpp               |    1 -
 libcore/asobj/Math_as.cpp                          |    1 -
 libcore/asobj/Microphone_as.cpp                    |    4 +-
 libcore/asobj/Mouse_as.cpp                         |    1 -
 libcore/asobj/MovieClipLoader.cpp                  |    3 +-
 libcore/asobj/MovieClip_as.cpp                     |   40 ++---
 libcore/asobj/NetConnection_as.cpp                 |    8 +-
 libcore/asobj/NetStream_as.cpp                     |    5 +-
 libcore/asobj/Number_as.cpp                        |    1 -
 libcore/asobj/Object.cpp                           |    1 -
 libcore/asobj/Selection_as.cpp                     |    1 -
 libcore/asobj/SharedObject_as.cpp                  |    3 +-
 libcore/asobj/Sound_as.cpp                         |    3 -
 libcore/asobj/Stage_as.cpp                         |    1 -
 libcore/asobj/String_as.cpp                        |    1 -
 libcore/asobj/System_as.cpp                        |    1 -
 libcore/asobj/TextField_as.cpp                     |    7 +-
 libcore/asobj/TextFormat_as.cpp                    |    1 -
 libcore/asobj/TextSnapshot_as.cpp                  |    1 -
 libcore/asobj/XMLNode_as.cpp                       |    1 -
 libcore/asobj/XMLSocket_as.cpp                     |    1 -
 libcore/asobj/XML_as.cpp                           |    1 -
 libcore/asobj/flash/display/BitmapData_as.cpp      |    1 -
 .../asobj/flash/external/ExternalInterface_as.cpp  |    1 -
 libcore/asobj/flash/filters/BevelFilter_as.cpp     |    1 -
 libcore/asobj/flash/filters/BitmapFilter_as.cpp    |    1 -
 libcore/asobj/flash/filters/BlurFilter_as.cpp      |    1 -
 .../asobj/flash/filters/ColorMatrixFilter_as.cpp   |    1 -
 .../asobj/flash/filters/ConvolutionFilter_as.cpp   |    1 -
 .../flash/filters/DisplacementMapFilter_as.cpp     |    9 +-
 .../asobj/flash/filters/DropShadowFilter_as.cpp    |    1 -
 libcore/asobj/flash/filters/GlowFilter_as.cpp      |    1 -
 .../asobj/flash/filters/GradientBevelFilter_as.cpp |    1 -
 .../asobj/flash/filters/GradientGlowFilter_as.cpp  |    1 -
 libcore/asobj/flash/geom/ColorTransform_as.cpp     |    1 -
 libcore/asobj/flash/geom/Matrix_as.cpp             |   16 +-
 libcore/asobj/flash/geom/Point_as.cpp              |   10 +-
 libcore/asobj/flash/geom/Rectangle_as.cpp          |    2 +-
 libcore/asobj/flash/geom/Transform_as.cpp          |    3 +-
 libcore/asobj/flash/net/FileReferenceList_as.cpp   |    6 +-
 libcore/asobj/flash/net/FileReference_as.cpp       |    3 +-
 libcore/asobj/flash/text/TextRenderer_as.cpp       |    7 +-
 libcore/movie_root.cpp                             |    7 +-
 libcore/movie_root.h                               |    4 +-
 libcore/parser/BitmapMovieDefinition.cpp           |    2 +-
 libcore/parser/SWFMovieDefinition.cpp              |   15 +--
 libcore/parser/SWFMovieDefinition.h                |    2 +-
 libcore/parser/sprite_definition.cpp               |   27 +---
 libcore/parser/sprite_definition.h                 |   20 +--
 libcore/swf/DefineButtonTag.cpp                    |    2 +-
 libcore/swf/DefineShapeTag.cpp                     |    5 +-
 libcore/vm/ASHandlers.cpp                          |    3 +-
 libcore/vm/ActionExec.cpp                          |    2 +-
 libcore/vm/ExecutableCode.h                        |    2 +-
 libcore/vm/VM.cpp                                  |    2 +-
 librender/Renderer.h                               |    4 -
 testsuite/Makefile.am                              |    4 +-
 testsuite/swfdec/gen_run_swfdec_testsuite.sh       |    9 +-
 116 files changed, 595 insertions(+), 578 deletions(-)

diff --git a/TODO b/TODO
index 3a5a062..a4240fd 100644
--- a/TODO
+++ b/TODO
@@ -3,7 +3,8 @@
 
   - SWF 8 support. This is mostly adding support
     for blend modes and bitmap filters.
-  - SWF 9 / AVM2 support.
+  - SWF 9 support
+  - AVM2 support.
   - RTMP support.
   - IO redesign.
   - Performance improvements, and reducing the footprint.
@@ -23,7 +24,6 @@ LocalConnection
 Unimplemented classes are:
 --------------------------
 Accessibility
-Error
 Microphone
 Camera
 ContextMenu
diff --git a/debian/changelog b/debian/changelog
index 4a61d1b..e37d407 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,31 @@
+gnash (0.8.9~git20110126-1) experimental; urgency=low
+
+  * Git snapshot.
+  * d/copyright: conversion to DEP-5.
+  * d/control: Vcs* fields to git.
+  * d/rules: switch to override_dh_* targets.
+
+ -- Gabriele Giacone <1o5g4r8o at gmail.com>  Wed, 26 Jan 2011 02:09:11 +0100
+
+gnash (0.8.8-9) unstable; urgency=low
+
+  * Add epoch to swfdec-gnome transitional package.
+
+ -- Gabriele Giacone <1o5g4r8o at gmail.com>  Tue, 25 Jan 2011 01:08:44 +0100
+
+gnash (0.8.8-8) unstable; urgency=low
+
+  * Fixed spelling in long descriptions (Closes: #608911).
+  * Fixed binnmu-ability.
+  * lintian: added browser-plugin-gnash override.
+  * Removed .po files regeneration from build process (Closes: #605352).
+  * Added patches
+    + 08_sectempfiles: Create configure temporary files in a secure way
+      (CVE-2010-4337).
+    + fixmanpage: Update command options in manpage.
+
+ -- Gabriele Giacone <1o5g4r8o at gmail.com>  Wed, 19 Jan 2011 01:47:55 +0100 
+
 gnash (0.8.9~git20101219-1) experimental; urgency=low
 
   * Git snapshot.
diff --git a/debian/control b/debian/control
index 3537d2c..578e5e2 100644
--- a/debian/control
+++ b/debian/control
@@ -4,7 +4,7 @@ Maintainer: Debian Flash Team <pkg-flash-devel at lists.alioth.debian.org>
 Uploaders: Miriam Ruiz <little_miry at yahoo.es>,
  Alexander Sack <asac at jwsdot.com>,
  Gabriele Giacone <1o5g4r8o at gmail.com> 
-Build-Depends: dpkg-dev (>= 1.13.19), debhelper (>= 7), sng,
+Build-Depends: dpkg-dev (>= 1.13.19), debhelper (>= 7.0.50~7), sng,
  dh-buildinfo, autoconf, automake, libtool, intltool, docbook, docbook2x,
  libltdl-dev, libxmu-dev, dejagnu, autotools-dev, doxygen, xsltproc, docbook-xsl,
  libjpeg-dev, libpng12-dev | libpng-dev, libgif-dev, libagg-dev, libpango1.0-dev | pango-dev,
diff --git a/doc/C/gnash.man-xml b/doc/C/gnash.man-xml
index 99e0369..194112a 100644
--- a/doc/C/gnash.man-xml
+++ b/doc/C/gnash.man-xml
@@ -40,6 +40,7 @@ gnash [option]... [URL]
 <variablelist>
   <varlistentry>
     <term>-h</term>
+    <term>--help</term>
     <listitem>
       <para>
 	Print usage info.
@@ -48,7 +49,20 @@ gnash [option]... [URL]
   </varlistentry>
 
   <varlistentry>
+    <term>-V</term>
+    <term>--version</term>
+    <listitem>
+      <para>
+	Print the version number, and the configuration, of the
+	Gnash player. Please provide this information when submitting bug
+	reports.
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
     <term>-s factor</term>
+    <term>--scale factor</term>
     <listitem>
       <para>
 	    Scale the movie up/down by the specified factor.
@@ -57,7 +71,17 @@ gnash [option]... [URL]
   </varlistentry>
 
   <varlistentry>
+    <term>-c</term>
+    <listitem>
+      <para>
+        Produce a core file instead of letting SDL trap it
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
     <term>-d num</term>
+    <term>--delay num</term>
     <listitem>
       <para>
         Number of milliseconds to delay in main loop.
@@ -66,6 +90,16 @@ gnash [option]... [URL]
   </varlistentry>
 
   <varlistentry>
+    <term>-v</term>
+    <term>--verbose</term>
+    <listitem>
+      <para>
+          Be verbose; i.e. print log messages to stdout.
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
     <term>-a</term>
     <listitem>
       <para>
@@ -85,6 +119,24 @@ gnash [option]... [URL]
   </varlistentry>
 
   <varlistentry>
+    <term>-A file</term>
+    <listitem>
+      <para>
+        Audio dump file (wave format).
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term>--hwaccel none|vaapi|xv</term>
+    <listitem>
+      <para>
+        Hardware Video Accelerator to use none|vaapi|xv|omap (default: none)
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
     <term>-x xid</term>
     <term>--xid xid</term>
     <listitem>
@@ -97,6 +149,18 @@ gnash [option]... [URL]
   </varlistentry>
 
   <varlistentry>
+    <term>-w</term>
+    <term>--writelog</term>
+    <listitem>
+      <para>
+	Write the gnash-dbg.log debug log to disk. By default the
+	plugin writes its log in your home directory when using a
+	launcher from GNOME or KDE.
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
     <term>-j width</term>
     <term>--width width</term>
     <listitem>
@@ -119,56 +183,79 @@ gnash [option]... [URL]
   </varlistentry>
 
   <varlistentry>
-    <term>-v</term>
+    <term>-X x-pos</term>
+    <term>--x-pos x-pos</term>
     <listitem>
       <para>
-          Be verbose; i.e. print log messages to stdout.
+	Set window x position.
       </para>
     </listitem>
   </varlistentry>
 
   <varlistentry>
-    <term>-g</term>
+    <term>-Y y-pos</term>
+    <term>--y-pos y-pos</term>
     <listitem>
       <para>
-          Start Gnash with a Flash debugger console so one can set
-	  breakpoints or watchpoints.
+	Set window y position.
       </para>
     </listitem>
   </varlistentry>
 
   <varlistentry>
-    <term>-w</term>
+    <term>-1</term>
+    <term>--once</term>
     <listitem>
       <para>
-	Write the gnash-dbg.log debug log to disk. By default the
-	plugin writes its log in your home directory when using a
-	launcher from GNOME or KDE.
+        Play once; exit when/if movie reaches the last frame.
       </para>
     </listitem>
   </varlistentry>
 
   <varlistentry>
-    <term>-1</term>
-    <term>--once</term>
+    <term>-g</term>
     <listitem>
       <para>
-        Play once; exit when/if movie reaches the last frame.
+          Start Gnash with a Flash debugger console so one can set
+	  breakpoints or watchpoints.
       </para>
     </listitem>
   </varlistentry>
 
   <varlistentry>
-    <term>-r [0|1|2]</term>
+    <term>-r [0|1|2|3]</term>
     <listitem>
       <para>
 	0 disables rendering and sound (good for batch tests).
       </para>
       <para>
-	1 enables rendering and sound (default setting).
+	1 enables rendering, disable sound.
+      </para>
+      <para>
+	2 disables rendering, enable sound.
+      </para>
+      <para>
+	3 enables rendering and sound (default setting).
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term>-M ffmpeg|gst</term>
+    <term>--media ffmpeg|gst</term>
+    <listitem>
+      <para>
+        The media handler to use (default: ffmpeg).
       </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term>-R agg|cairo|opengl</term>
+    <term>--renderer agg|cairo|opengl</term>
+    <listitem>
       <para>
-	2 enables rendering and disables sound.
+        The renderer to use (default: agg).
       </para>
     </listitem>
   </varlistentry>
@@ -184,8 +271,8 @@ gnash [option]... [URL]
   </varlistentry>
 
   <varlistentry>
-    <term>-u</term>
-    <term>--real-url</term>
+    <term>-u url</term>
+    <term>--real-url url</term>
     <listitem>
       <para>
 	Set "real" url of the movie (useful for downloaded movies).
@@ -194,13 +281,12 @@ gnash [option]... [URL]
   </varlistentry>
 
   <varlistentry>
-    <term>-U</term>
-    <term>--base-url</term>
+    <term>-U url</term>
+    <term>--base-url url</term>
     <listitem>
       <para>
 	Set "base" url for this run (used to resolve relative urls,
 	defaults to movie url)
-
       </para>
     </listitem>
   </varlistentry>
@@ -216,7 +302,7 @@ gnash [option]... [URL]
   </varlistentry>
 
   <varlistentry>
-    <term>-F</term>
+    <term>-F x:y</term>
     <term>--fd x:y</term>
     <listitem>
       <para>
@@ -228,12 +314,28 @@ gnash [option]... [URL]
   </varlistentry>
 
   <varlistentry>
-    <term>--version</term>
+    <term>--max-advances num</term>
     <listitem>
       <para>
-	Print the version number, and the configuration, of the
-	Gnash player. Please provide this information when submitting bug
-	reports.
+        Exit after specified number of frame advances.
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term>--fullscreen</term>
+    <listitem>
+      <para>
+        Start in fullscreen mode.
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term>--hide-menubar</term>
+    <listitem>
+      <para>
+        Start without displaying the menu bar.
       </para>
     </listitem>
   </varlistentry>
@@ -308,6 +410,15 @@ gnash [option]... [URL]
   </varlistentry>
 
   <varlistentry>
+    <term>CTRL-L   </term>
+    <listitem>
+      <para>
+          Force immediate redraw.
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
     <term>CTRL-F   </term>
     <listitem>
       <para>
@@ -316,7 +427,6 @@ gnash [option]... [URL]
     </listitem>
   </varlistentry>
 
-
   <varlistentry>
     <term>CTRL-O </term>
     <listitem>
diff --git a/doc/C/preformatted/gnash.1.in b/doc/C/preformatted/gnash.1.in
index 88bd828..9a1cedb 100644
--- a/doc/C/preformatted/gnash.1.in
+++ b/doc/C/preformatted/gnash.1.in
@@ -1,11 +1,11 @@
-.\" -*- coding: us-ascii -*-
+'\" -*- coding: us-ascii -*-
 .if \n(.g .ds T< \\FC
 .if \n(.g .ds T> \\F[\n[.fam]]
 .de URL
 \\$2 \(la\\$1\(ra\\$3
 ..
 .if \n(.g .mso www.tmac
-.TH gnash 1 "22 August 2010" "" ""
+.TH gnash 1 "17 January 2011" "" ""
 .SH NAME
 gnash, gtk-gnash, kde4-gnash \- GNU Flash (SWF) Player
 .SH Synopsis
@@ -16,15 +16,26 @@ gnash [option]... [URL]
 .SH DESCRIPTION
 Run the SWF movie player.
 .TP 
--h
+-h, --help
 Print usage info.
 .TP 
--s factor
+-V, --version
+Print the version number, and the configuration, of the
+Gnash player. Please provide this information when submitting bug
+reports.
+.TP 
+-s factor, --scale factor
 Scale the movie up/down by the specified factor.
 .TP 
--d num
+-c
+Produce a core file instead of letting SDL trap it
+.TP 
+-d num, --delay num
 Number of milliseconds to delay in main loop.
 .TP 
+-v, --verbose
+Be verbose; i.e. print log messages to stdout.
+.TP 
 -a
 Be very verbose about movie action execution. Must be used in
 conjunction with -v.
@@ -32,11 +43,22 @@ conjunction with -v.
 -p
 Be very verbose about parsing. Must be used in conjunction with -v.
 .TP 
+-A file
+Audio dump file (wave format).
+.TP 
+--hwaccel none|vaapi|xv
+Hardware Video Accelerator to use none|vaapi|xv|omap (default: none)
+.TP 
 -x xid, --xid xid
 The XID of the parent window Gnash should use instead of
 creating a new one. This is only used when embedding the player
 into another window.
 .TP 
+-w, --writelog
+Write the gnash-dbg.log debug log to disk. By default the
+plugin writes its log in your home directory when using a
+launcher from GNOME or KDE.
+.TP 
 -j width, --width width
 Set the width of the window. This is only used when embedding
 the player into another window.
@@ -45,50 +67,60 @@ the player into another window.
 Set the height of the window. This is only used when embedding
 the player into another window.
 .TP 
--v
-Be verbose; i.e. print log messages to stdout.
-.TP 
--g
-Start Gnash with a Flash debugger console so one can set
-breakpoints or watchpoints.
+-X x-pos, --x-pos x-pos
+Set window x position.
 .TP 
--w
-Write the gnash-dbg.log debug log to disk. By default the
-plugin writes its log in your home directory when using a
-launcher from GNOME or KDE.
+-Y y-pos, --y-pos y-pos
+Set window y position.
 .TP 
 -1, --once
 Play once; exit when/if movie reaches the last frame.
 .TP 
--r [0|1|2]
+-g
+Start Gnash with a Flash debugger console so one can set
+breakpoints or watchpoints.
+.TP 
+-r [0|1|2|3]
 0 disables rendering and sound (good for batch tests).
 
-1 enables rendering and sound (default setting).
+1 enables rendering, disable sound.
+
+2 disables rendering, enable sound.
 
-2 enables rendering and disables sound.
+3 enables rendering and sound (default setting).
+.TP 
+-M ffmpeg|gst, --media ffmpeg|gst
+The media handler to use (default: ffmpeg).
+.TP 
+-R agg|cairo|opengl, --renderer agg|cairo|opengl
+The renderer to use (default: agg).
 .TP 
 -t sec, --timeout sec
 Timeout and exit after the specified number of seconds.
 .TP 
--u, --real-url
+-u url, --real-url url
 Set "real" url of the movie (useful for downloaded movies).
 .TP 
--U, --base-url
+-U url, --base-url url
 Set "base" url for this run (used to resolve relative urls,
 defaults to movie url)
 .TP 
 -P param, --param param
 Set parameter (ie. "FlashVars=A=1&b=2")
 .TP 
--F, --fd x:y
+-F x:y, --fd x:y
 Set file descriptors to use for external communications. x is
 use by the player to send commands to the plugin, y is used
 by the plugin to send commands to the standalone player.
 .TP 
---version
-Print the version number, and the configuration, of the
-Gnash player. Please provide this information when submitting bug
-reports.
+--max-advances num
+Exit after specified number of frame advances.
+.TP 
+--fullscreen
+Start in fullscreen mode.
+.TP 
+--hide-menubar
+Start without displaying the menu bar.
 .TP 
 --screenshot list
 Set a list of frame advances to be saved as screenshots. The list
@@ -119,6 +151,9 @@ Toggle pause.
 CTRL-R 
 Restart the movie.
 .TP 
+CTRL-L 
+Force immediate redraw.
+.TP 
 CTRL-F 
 Toggle fullscreen. ESC also exits fullscreen.
 .TP 
diff --git a/extensions/dbus/dbus_ext.cpp b/extensions/dbus/dbus_ext.cpp
index bc17213..32cfe0d 100644
--- a/extensions/dbus/dbus_ext.cpp
+++ b/extensions/dbus/dbus_ext.cpp
@@ -33,7 +33,7 @@
 #include "fn_call.h"
 #include "as_object.h"
 #include "Global_as.h"
-#include "builtin_function.h" // need builtin_function
+#include "as_function.h"
 
 using namespace std;
 
diff --git a/extensions/dejagnu/dejagnu.cpp b/extensions/dejagnu/dejagnu.cpp
index 35ef855..8305efd 100644
--- a/extensions/dejagnu/dejagnu.cpp
+++ b/extensions/dejagnu/dejagnu.cpp
@@ -27,8 +27,8 @@
 #include "dejagnu.h"
 #include "fn_call.h"
 #include "as_object.h"
+#include "as_function.h"
 #include "Global_as.h"
-#include "builtin_function.h" // need builtin_function
 
 using namespace std;
 
diff --git a/extensions/fileio/fileio.cpp b/extensions/fileio/fileio.cpp
index 23c2ed8..524bedb 100644
--- a/extensions/fileio/fileio.cpp
+++ b/extensions/fileio/fileio.cpp
@@ -34,10 +34,10 @@
 #include "log.h"
 #include "fn_call.h"
 #include "as_object.h"
-#include "builtin_function.h" // need builtin_function
 #include "Global_as.h"
 #include "fileio.h"
 #include "Array_as.h"  // used by scandir()
+#include "as_function.h"
 
 using namespace std;
 
diff --git a/extensions/gtk2/gtkext.cpp b/extensions/gtk2/gtkext.cpp
index d8bea32..28c355c 100644
--- a/extensions/gtk2/gtkext.cpp
+++ b/extensions/gtk2/gtkext.cpp
@@ -36,10 +36,9 @@
 #include "fn_call.h"
 #include "as_object.h"
 #include "as_function.h"
-#include "builtin_function.h" // need builtin_function
 #include "debugger.h"
 #include "gtkext.h"
-//#include "Player.h"
+#include "as_function.h"
 
 using namespace std;
 
@@ -48,11 +47,6 @@ namespace gnash
 
 #define dbglogfile cerr		// FIXME: use log_*()
 
-#ifdef USE_DEBUGGER
-static Debugger& debugger = Debugger::getDefaultInstance();
-#endif
-//Player& player = Player::getDefaultInstance();
-
 // prototypes for the callbacks required by Gnash
 as_value gtkext_window_new(const fn_call& fn);
 as_value gtkext_signal_connect(const fn_call& fn);
diff --git a/extensions/launcher/launcher_ext.cpp b/extensions/launcher/launcher_ext.cpp
index 7116d28..cc300d9 100644
--- a/extensions/launcher/launcher_ext.cpp
+++ b/extensions/launcher/launcher_ext.cpp
@@ -32,7 +32,6 @@
 #include "launcher_ext.h"
 #include "fn_call.h"
 #include "as_object.h"
-#include "builtin_function.h" // need builtin_function
 
 using namespace std;
 
diff --git a/extensions/lirc/lirc_ext.cpp b/extensions/lirc/lirc_ext.cpp
index dfcfa6a..ee329fc 100644
--- a/extensions/lirc/lirc_ext.cpp
+++ b/extensions/lirc/lirc_ext.cpp
@@ -34,7 +34,7 @@
 #include "fn_call.h"
 #include "as_object.h"
 #include "Global_as.h"
-#include "builtin_function.h" // need builtin_function
+#include "as_function.h"
 
 using namespace std;
 
diff --git a/extensions/mysql/mysql_db.cpp b/extensions/mysql/mysql_db.cpp
index 4b242b3..22263f8 100644
--- a/extensions/mysql/mysql_db.cpp
+++ b/extensions/mysql/mysql_db.cpp
@@ -24,8 +24,8 @@
 #include "mysql_db.h"
 
 #include "namedStrings.h"
-#include <mysql/errmsg.h>
-#include <mysql/mysql.h>
+#include <errmsg.h>
+#include <mysql.h>
 #include <vector>
 
 #include "log.h"
@@ -33,7 +33,7 @@
 #include "as_value.h"
 #include "fn_call.h"
 #include "Global_as.h"
-#include "builtin_function.h" // need builtin_function
+#include "as_function.h"
 
 namespace gnash {
 
diff --git a/extensions/mysql/mysql_db.h b/extensions/mysql/mysql_db.h
index 3ca882f..03d601f 100644
--- a/extensions/mysql/mysql_db.h
+++ b/extensions/mysql/mysql_db.h
@@ -23,8 +23,8 @@
 #include "gnashconfig.h"
 #endif
 
-#include <mysql/errmsg.h>
-#include <mysql/mysql.h>
+#include <errmsg.h>
+#include <mysql.h>
 
 #include "as_value.h"
 #include "as_object.h"
diff --git a/libbase/GnashImage.cpp b/libbase/GnashImage.cpp
index 97d65c6..b93ace2 100644
--- a/libbase/GnashImage.cpp
+++ b/libbase/GnashImage.cpp
@@ -169,7 +169,7 @@ Output::writeImageData(FileType type,
     switch (type) {
 #ifdef USE_PNG
         case GNASH_FILETYPE_PNG:
-            outChannel = PngOutput::create(out, width, height, quality);
+            outChannel = createPngOutput(out, width, height, quality);
             break;
 #endif
         case GNASH_FILETYPE_JPEG:
@@ -203,12 +203,12 @@ Input::readImageData(boost::shared_ptr<IOChannel> in, FileType type)
     switch (type) {
 #ifdef USE_PNG
         case GNASH_FILETYPE_PNG:
-            inChannel = PngInput::create(in);
+            inChannel = createPngInput(in);
             break;
 #endif
 #ifdef USE_GIF                
         case GNASH_FILETYPE_GIF:
-            inChannel = GifInput::create(in);
+            inChannel = createGifInput(in);
             break;
 #endif
         case GNASH_FILETYPE_JPEG:
diff --git a/libbase/GnashImageGif.cpp b/libbase/GnashImageGif.cpp
index 1b85579..8e8c913 100644
--- a/libbase/GnashImageGif.cpp
+++ b/libbase/GnashImageGif.cpp
@@ -28,12 +28,12 @@ extern "C" {
 #include <gif_lib.h>
 }
 
+#include "GnashImage.h"
 #include "utility.h"
 #include "log.h"
 #include "GnashException.h"
 #include "IOChannel.h"
 
-
 namespace gnash {
 namespace image {
 
@@ -48,7 +48,67 @@ readData(GifFileType* ft, GifByteType* data, int length)
     return in->read(reinterpret_cast<char*>(data), length);
 }
 
-}
+class GifInput : public Input
+{
+
+public:
+
+    /// Construct a GifInput object to read from an IOChannel.
+    //
+    /// @param in   The stream to read GIF data from. Ownership is shared
+    ///             between caller and GifInput, so it is freed
+    ///             automatically when the last owner is destroyed.
+    GifInput(boost::shared_ptr<IOChannel> in);
+    
+    ~GifInput();
+
+    /// Begin processing the image data.
+    void read();
+
+    /// Get the image's height in pixels.
+    //
+    /// @return     The height of the image in pixels.
+    size_t getHeight() const;
+
+    /// Get the image's width in pixels.
+    //
+    /// @return     The width of the image in pixels.
+    size_t getWidth() const;
+
+    /// Get number of components (channels)
+    //
+    /// @return     The number of components, e.g. 3 for RGB
+    size_t getComponents() const { return 3; }
+
+    /// Read a scanline's worth of image data into the given buffer.
+    //
+    /// The amount of data read is getWidth() * getComponents().
+    ///
+    /// @param rgbData  The buffer for writing raw RGB data to.
+    void readScanline(unsigned char* rgb_data);
+
+private:
+    
+    /// Initialize gif_lib
+    void init();
+
+    /// Process a single image record
+    //
+    /// @return     false if no image was parsed, true if we have an image.
+    bool processRecord(GifRecordType record);
+
+    // State needed for input.
+    GifFileType* _gif;
+    
+    // A counter for keeping track of the last row copied.
+    size_t _currentRow;
+    
+    typedef boost::scoped_array<GifPixelType> PixelRow;
+
+    // A 2-dimensional scoped array holding the unpacked pixel data.
+    boost::scoped_array<PixelRow> _gifData;
+};
+
 
 GifInput::GifInput(boost::shared_ptr<IOChannel> in)
     :
@@ -232,6 +292,16 @@ GifInput::read()
 
 }
 
+} // unnamed namespace
+
+std::auto_ptr<Input>
+createGifInput(boost::shared_ptr<IOChannel> in)
+{
+    std::auto_ptr<Input> ret(new GifInput(in));
+    ret->read();
+    return ret;
+}
+
 } // namespace image
 } // namespace gnash
 
diff --git a/libbase/GnashImageGif.h b/libbase/GnashImageGif.h
index 982478d..a8cc37c 100644
--- a/libbase/GnashImageGif.h
+++ b/libbase/GnashImageGif.h
@@ -22,96 +22,24 @@
 #define GNASH_IMAGE_GIF_H
 
 #include <memory>
-
-#include "dsodefs.h"
-#include "GnashImage.h"
-#include <boost/scoped_array.hpp>
 #include <boost/shared_ptr.hpp>
 
-extern "C" {
-#include <gif_lib.h>
-}
-
 // Forward declarations
-namespace gnash { class IOChannel; }
-
 namespace gnash {
-namespace image {
-
-class GifInput : public Input
-{
-
-public:
-
-    /// Construct a GifInput object to read from an IOChannel.
-    //
-    /// @param in   The stream to read GIF data from. Ownership is shared
-    ///             between caller and GifInput, so it is freed
-    ///             automatically when the last owner is destroyed.
-    GifInput(boost::shared_ptr<IOChannel> in);
-    
-    ~GifInput();
-
-    /// Begin processing the image data.
-    void read();
-
-    /// Get the image's height in pixels.
-    //
-    /// @return     The height of the image in pixels.
-    size_t getHeight() const;
-
-    /// Get the image's width in pixels.
-    //
-    /// @return     The width of the image in pixels.
-    size_t getWidth() const;
-
-    /// Get number of components (channels)
-    //
-    /// @return     The number of components, e.g. 3 for RGB
-    size_t getComponents() const { return 3; }
-
-    /// Read a scanline's worth of image data into the given buffer.
-    //
-    /// The amount of data read is getWidth() * getComponents().
-    ///
-    /// @param rgbData  The buffer for writing raw RGB data to.
-    void readScanline(unsigned char* rgb_data);
-
-    /// Create a GifInput and transfer ownership to the caller.
-    //
-    /// @param in   The IOChannel to read GIF data from.
-    DSOEXPORT static std::auto_ptr<Input> create(
-            boost::shared_ptr<IOChannel> in)
-    {
-        std::auto_ptr<Input> ret(new GifInput(in));
-        if (ret.get()) ret->read();
-        return ret;
+    class IOChannel;
+    namespace image {
+        class Input;
+        class Output;
     }
+}
 
-private:
-    
-    /// Initialize gif_lib
-    void init();
-
-    /// Process a single image record
-    //
-    /// @return     false if no image was parsed, true if we have an image.
-    bool processRecord(GifRecordType record);
-
-    // State needed for input.
-    GifFileType* _gif;
-    
-    // A counter for keeping track of the last row copied.
-    size_t _currentRow;
-    
-    typedef boost::scoped_array<GifPixelType> PixelRow;
-
-    // A 2-dimensional scoped array holding the unpacked pixel data.
-    boost::scoped_array<PixelRow> _gifData;
-
-
+namespace gnash {
+namespace image {
 
-};
+/// Create a GifInput and transfer ownership to the caller.
+//
+/// @param in   The IOChannel to read GIF data from.
+std::auto_ptr<Input> createGifInput(boost::shared_ptr<IOChannel> in);
 
 } // namespace image
 } // namespace gnash
diff --git a/libbase/GnashImagePng.cpp b/libbase/GnashImagePng.cpp
index 8a57106..16ded78 100644
--- a/libbase/GnashImagePng.cpp
+++ b/libbase/GnashImagePng.cpp
@@ -18,16 +18,27 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-#include "utility.h"
+#ifdef HAVE_CONFIG_H
+# include "gnashconfig.h"
+#endif
+
 #include "GnashImagePng.h"
-#include "log.h"
-#include "GnashException.h"
-#include "IOChannel.h"
 
 #include <sstream>
-#include <cstring> // std::memcpy
 #include <boost/scoped_array.hpp>
 
+extern "C" {
+#ifdef HAVE_PNG_H
+# include <png.h>
+#endif
+}
+
+#include "GnashImage.h"
+#include "utility.h"
+#include "log.h"
+#include "GnashException.h"
+#include "IOChannel.h"
+
 namespace gnash {
 namespace image {
 
@@ -70,19 +81,99 @@ flushData(png_structp /*pngptr*/)
 {
 }
 
-} // unnamed namespace
+class PngInput : public Input
+{
 
-PngInput::PngInput(boost::shared_ptr<IOChannel> in)
-    :
-    Input(in),
-    _pngPtr(0),
-    _infoPtr(0),
-    _rowPtrs(0),
-    _pixelData(0),
-    _currentRow(0)
+public:
+
+    /// Construct a PngInput object to read from an IOChannel.
+    //
+    /// @param in   The stream to read PNG data from. Ownership is shared
+    ///             between caller and JpegInput, so it is freed
+    ///             automatically when the last owner is destroyed.
+    PngInput(boost::shared_ptr<IOChannel> in)
+        :
+        Input(in),
+        _pngPtr(0),
+        _infoPtr(0),
+        _rowPtrs(0),
+        _pixelData(0),
+        _currentRow(0)
+    {
+        init();
+    }
+    
+    ~PngInput();
+    
+    /// Begin processing the image data.
+    void read();
+
+    /// Get the image's height in pixels.
+    //
+    /// @return     The height of the image in pixels.
+    size_t getHeight() const;
+
+    /// Get the image's width in pixels.
+    //
+    /// @return     The width of the image in pixels.
+    size_t getWidth() const;
+
+    /// Read a scanline's worth of image data into the given buffer.
+    //
+    /// The amount of data read is getWidth() * getComponents().
+    ///
+    /// @param rgbData  The buffer for writing raw RGB data to.
+    void readScanline(unsigned char* imageData);
+
+private:
+
+    // State needed for input.
+    png_structp _pngPtr;
+    png_infop _infoPtr;
+    boost::scoped_array<png_bytep> _rowPtrs;
+    boost::scoped_array<png_byte> _pixelData;
+   
+    // A counter for keeping track of the last row copied.
+    size_t _currentRow;
+
+    void init();
+
+    // Return number of components (i.e. == 3 for RGB
+    // data).
+    size_t getComponents() const;
+
+};
+
+// Class object for writing PNG image data.
+class PngOutput : public Output
 {
-    init();
-}
+
+public:
+
+    /// Create an output object bound to a gnash::IOChannel
+    //
+    /// @param out      The IOChannel used for output. Must be kept alive
+    ///                 throughout
+    /// @param quality Unused in PNG output
+    PngOutput(boost::shared_ptr<IOChannel> out, size_t width,
+            size_t height, int quality);
+    
+    ~PngOutput();
+
+    void writeImageRGB(const unsigned char* rgbData);
+    
+    void writeImageRGBA(const unsigned char* rgbaData);
+    
+private:
+
+    /// Initialize libpng.
+    void init();
+
+    /// Libpng structures for image and output state.
+    png_structp _pngPtr;
+    png_infop _infoPtr;
+    
+};
 
 PngInput::~PngInput()
 {
@@ -309,9 +400,18 @@ PngOutput::writeImageRGB(const unsigned char* rgbData)
     png_write_png(_pngPtr, _infoPtr, PNG_TRANSFORM_IDENTITY, NULL);
 }
 
+} // unnamed namespace
+
+std::auto_ptr<Input>
+createPngInput(boost::shared_ptr<IOChannel> in)
+{
+    std::auto_ptr<Input> ret(new PngInput(in));
+    ret->read();
+    return ret;
+}
 
 std::auto_ptr<Output>
-PngOutput::create(boost::shared_ptr<IOChannel> o, size_t width,
+createPngOutput(boost::shared_ptr<IOChannel> o, size_t width,
                        size_t height, int quality)
 {
     std::auto_ptr<Output> outChannel(new PngOutput(o, width, height, quality));
diff --git a/libbase/GnashImagePng.h b/libbase/GnashImagePng.h
index 375a6f0..61910d6 100644
--- a/libbase/GnashImagePng.h
+++ b/libbase/GnashImagePng.h
@@ -22,125 +22,27 @@
 #define GNASH_IMAGE_PNG_H
 
 #include <memory>
-
-#include "dsodefs.h"
-#include "GnashImage.h"
-#include <boost/scoped_array.hpp>
-
-
-extern "C" {
-#ifdef HAVE_PNG_H
-#include <png.h>
-#else
-#warning "This system doesn't have png.h installed!"
-#endif
-}
+#include <boost/shared_ptr.hpp>
 
 // Forward declarations
 namespace gnash {
     class IOChannel;
+    namespace image {
+        class Input;
+        class Output;
+    }
 }
 
 namespace gnash {
 namespace image {
 
-class PngInput : public Input
-{
-
-public:
-
-    /// Construct a PngInput object to read from an IOChannel.
-    //
-    /// @param in   The stream to read PNG data from. Ownership is shared
-    ///             between caller and JpegInput, so it is freed
-    ///             automatically when the last owner is destroyed.
-    PngInput(boost::shared_ptr<IOChannel> in);
-    
-    ~PngInput();
-    
-    /// Begin processing the image data.
-    void read();
-
-    /// Get the image's height in pixels.
-    //
-    /// @return     The height of the image in pixels.
-    size_t getHeight() const;
-
-    /// Get the image's width in pixels.
-    //
-    /// @return     The width of the image in pixels.
-    size_t getWidth() const;
-
-    /// Read a scanline's worth of image data into the given buffer.
-    //
-    /// The amount of data read is getWidth() * getComponents().
-    ///
-    /// @param rgbData  The buffer for writing raw RGB data to.
-    void readScanline(unsigned char* imageData);
-
-    /// Create a PngInput and transfer ownership to the caller.
-    //
-    /// @param in   The IOChannel to read PNG data from.
-    DSOEXPORT static std::auto_ptr<Input> create(
-            boost::shared_ptr<IOChannel> in)
-    {
-        std::auto_ptr<Input> ret ( new PngInput(in) );
-        if (ret.get()) ret->read();
-        return ret;
-    }
-
-private:
-
-    // State needed for input.
-    png_structp _pngPtr;
-    png_infop _infoPtr;
-    boost::scoped_array<png_bytep> _rowPtrs;
-    boost::scoped_array<png_byte> _pixelData;
-   
-    // A counter for keeping track of the last row copied.
-    size_t _currentRow;
-
-    void init();
-
-    // Return number of components (i.e. == 3 for RGB
-    // data).
-    size_t getComponents() const;
-
-};
-
-// Class object for writing PNG image data.
-class PngOutput : public Output
-{
-
-public:
-
-    /// Create an output object bound to a gnash::IOChannel
-    //
-    /// @param out      The IOChannel used for output. Must be kept alive
-    ///                 throughout
-    /// @param quality Unused in PNG output
-    PngOutput(boost::shared_ptr<IOChannel> out, size_t width,
-            size_t height, int quality);
-    
-    ~PngOutput();
-
-    void writeImageRGB(const unsigned char* rgbData);
-    
-    void writeImageRGBA(const unsigned char* rgbaData);
-
-    static std::auto_ptr<Output> create(boost::shared_ptr<IOChannel> out,
-            size_t width, size_t height, int quality);
-    
-private:
-
-    /// Initialize libpng.
-    void init();
+/// Create a PngInput and transfer ownership to the caller.
+//
+/// @param in   The IOChannel to read PNG data from.
+std::auto_ptr<Input> createPngInput(boost::shared_ptr<IOChannel> in);
 
-    /// Libpng structures for image and output state.
-    png_structp _pngPtr;
-    png_infop _infoPtr;
-    
-};
+std::auto_ptr<Output> createPngOutput(boost::shared_ptr<IOChannel> out,
+        size_t width, size_t height, int quality);
 
 } // namespace image
 } // namespace gnash
diff --git a/libbase/log.cpp b/libbase/log.cpp
index 0f89113..cd3a795 100644
--- a/libbase/log.cpp
+++ b/libbase/log.cpp
@@ -168,12 +168,6 @@ processLog_swferror(const boost::format& fmt)
 }
 
 void
-processLog_amferror(const boost::format& fmt)
-{
-    dbglogfile.log(N_("MALFORMED AMF"), fmt.str());
-}
-
-void
 processLog_aserror(const boost::format& fmt)
 {
     dbglogfile.log(N_("ACTIONSCRIPT ERROR"), fmt.str());
diff --git a/libbase/smart_ptr.h b/libbase/smart_ptr.h
index 6557236..0cc108c 100644
--- a/libbase/smart_ptr.h
+++ b/libbase/smart_ptr.h
@@ -36,12 +36,7 @@ namespace gnash {
 }
 
 
-#define COMPILER_SUPPORTS_ARGUMENT_DEPENDENT_LOOKUP 1
-#ifdef COMPILER_SUPPORTS_ARGUMENT_DEPENDENT_LOOKUP
 namespace gnash {
-#else
-namespace boost {
-#endif
 
 inline void
 intrusive_ptr_add_ref(const ref_counted* o)
diff --git a/libcore/Button.cpp b/libcore/Button.cpp
index a5f525a..bfb3558 100644
--- a/libcore/Button.cpp
+++ b/libcore/Button.cpp
@@ -27,7 +27,7 @@
 #include <boost/bind.hpp>
 #include <utility>
 
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "DefineButtonTag.h"
 #include "as_value.h"
 #include "Button.h"
diff --git a/libcore/Button.h b/libcore/Button.h
index f0155e2..6f83582 100644
--- a/libcore/Button.h
+++ b/libcore/Button.h
@@ -23,7 +23,7 @@
 #ifndef GNASH_BUTTON_H
 #define GNASH_BUTTON_H
 
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h"
 #include "InteractiveObject.h" // for inheritance
 
 #include <boost/intrusive_ptr.hpp>
@@ -139,8 +139,7 @@ protected:
 	/// Properly unload contained DisplayObjects
 	virtual bool unloadChildren();
 
-#ifdef GNASH_USE_GC
-	/// Mark reachabe resources (for the GC)
+	/// Mark reachable resources (for the GC)
 	//
 	/// These are:
 	///	- this char's definition (_def)
@@ -148,7 +147,6 @@ protected:
 	///	- the vector of hit DisplayObjects (_hitCharacters)
 	///
 	void markOwnResources() const;
-#endif // GNASH_USE_GC
 
 private:
 
diff --git a/libcore/DisplayList.cpp b/libcore/DisplayList.cpp
index 0dab3f9..6d2a14c 100644
--- a/libcore/DisplayList.cpp
+++ b/libcore/DisplayList.cpp
@@ -18,7 +18,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA    02110-1301    USA
 //
 
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "DisplayList.h"
 #include "log.h"
 #include "Renderer.h"
@@ -740,10 +740,6 @@ DisplayList::add_invalidated_bounds(InvalidatedRanges& ranges, bool force)
     for (iterator endIt = _charsByDepth.end(); it != endIt; ++it) {
         DisplayObject* dobj = *it;
         
-#ifndef GNASH_USE_GC
-        assert(dobj->get_ref_count() > 0);
-#endif // ndef GNASH_USE_GC
-
         const int depth = dobj->get_depth();        
 
         // Discard useless masks
diff --git a/libcore/DisplayObject.cpp b/libcore/DisplayObject.cpp
index 4dc0161..fd43a9a 100644
--- a/libcore/DisplayObject.cpp
+++ b/libcore/DisplayObject.cpp
@@ -30,7 +30,7 @@
 #include <boost/assign/list_of.hpp>
 #include <boost/bind.hpp>
 
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "movie_root.h"
 #include "MovieClip.h"
 #include "VM.h" 
@@ -445,9 +445,6 @@ DisplayObject::get_event_handler(const event_id& id) const
     Events::const_iterator it = _event_handlers.find(id);
     if ( it == _event_handlers.end() ) return handler;
 
-#ifndef GNASH_USE_GC
-    assert(get_ref_count() > 0);
-#endif // GNASH_USE_GC
     DisplayObject* this_ptr = const_cast<DisplayObject*>(this);
 
     handler.reset( new EventCode(this_ptr, it->second) );
diff --git a/libcore/DisplayObjectContainer.cpp b/libcore/DisplayObjectContainer.cpp
index 9dbcd88..d851b5d 100644
--- a/libcore/DisplayObjectContainer.cpp
+++ b/libcore/DisplayObjectContainer.cpp
@@ -19,14 +19,14 @@
 
 
 #ifdef HAVE_CONFIG_H
-# include "gnashconfig.h" // GNASH_USE_GC, USE_SWFTREE
+# include "gnashconfig.h" 
 #endif
 
 #include "DisplayObjectContainer.h"
 
 #include <utility>
 
-#include "DisplayList.h" // DisplayList 
+#include "DisplayList.h" 
 #include "InteractiveObject.h"
 #include "log.h"
 #include "dsodefs.h" // for DSOEXPORT
diff --git a/libcore/DisplayObjectContainer.h b/libcore/DisplayObjectContainer.h
index 8834f8f..62087f3 100644
--- a/libcore/DisplayObjectContainer.h
+++ b/libcore/DisplayObjectContainer.h
@@ -23,10 +23,10 @@
 #define GNASH_DISPLAYOBJECTCONTAINER_H
 
 #ifdef HAVE_CONFIG_H
-#include "gnashconfig.h" // GNASH_USE_GC, USE_SWFTREE
+#include "gnashconfig.h" 
 #endif
 
-#include "DisplayList.h" // DisplayList 
+#include "DisplayList.h" 
 #include "InteractiveObject.h"
 
 #ifdef USE_SWFTREE
diff --git a/libcore/Font.cpp b/libcore/Font.cpp
index dc5e0d1..fd55ac8 100644
--- a/libcore/Font.cpp
+++ b/libcore/Font.cpp
@@ -21,7 +21,7 @@
 
 // Based on the public domain work of Thatcher Ulrich <tu at tulrich.com> 2003
 
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "Font.h"
 #include "log.h"
 #include "ShapeRecord.h"
diff --git a/libcore/Function.h b/libcore/Function.h
index ca402b2..31994fd 100644
--- a/libcore/Function.h
+++ b/libcore/Function.h
@@ -118,14 +118,12 @@ public:
 	/// Dispatch.
 	virtual as_value call(const fn_call& fn);
 
-#ifdef GNASH_USE_GC
 	/// Mark reachable resources. Override from as_object
 	//
 	/// Reachable resources from this object are its scope stack
 	/// and the prototype.
 	///
 	virtual void markReachableResources() const;
-#endif // GNASH_USE_GC
 
 protected:
 	
diff --git a/libcore/MorphShape.h b/libcore/MorphShape.h
index 3d50d3c..08c6284 100644
--- a/libcore/MorphShape.h
+++ b/libcore/MorphShape.h
@@ -20,7 +20,7 @@
 #ifndef GNASH_MORPH_SHAPE_H
 #define GNASH_MORPH_SHAPE_H
 
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "DisplayObject.h"
 #include "swf/DefineMorphShapeTag.h"
 #include <boost/intrusive_ptr.hpp>
diff --git a/libcore/MouseButtonState.h b/libcore/MouseButtonState.h
index a753226..adebc0a 100644
--- a/libcore/MouseButtonState.h
+++ b/libcore/MouseButtonState.h
@@ -7,8 +7,7 @@
 #ifndef GNASH_MOUSE_BUTTON_STATE_H
 #define GNASH_MOUSE_BUTTON_STATE_H
 
-#include "smart_ptr.h" // GNASH_USE_GC
-#include "InteractiveObject.h" // for use in intrusive_ptr
+#include "InteractiveObject.h" 
 
 // Forward declarations
 namespace gnash {
@@ -48,14 +47,11 @@ public:
 	{
 	}
 
-#ifdef GNASH_USE_GC
 	/// Mark reachable objects (active and topmost entities)
-	void markReachableResources() const
-	{
+	void markReachableResources() const {
 		if (activeEntity) activeEntity->setReachable();
 		if (topmostEntity) topmostEntity->setReachable();
 	}
-#endif // GNASH_USE_GC
 };
 
 }	// end namespace gnash
diff --git a/libcore/MovieClip.cpp b/libcore/MovieClip.cpp
index 20d9f69..20ce020 100644
--- a/libcore/MovieClip.cpp
+++ b/libcore/MovieClip.cpp
@@ -42,7 +42,7 @@
 #include "swf_event.h"
 #include "sprite_definition.h"
 #include "ActionExec.h"
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "VM.h"
 #include "Range2d.h" // for getBounds
 #include "GnashException.h"
diff --git a/libcore/MovieClip.h b/libcore/MovieClip.h
index 466a80e..9bb0357 100644
--- a/libcore/MovieClip.h
+++ b/libcore/MovieClip.h
@@ -23,7 +23,7 @@
 #define GNASH_MOVIECLIP_H
 
 #ifdef HAVE_CONFIG_H
-#include "gnashconfig.h" // GNASH_USE_GC, USE_SWFTREE
+#include "gnashconfig.h" 
 #endif
 
 #include <vector>
diff --git a/libcore/MovieFactory.cpp b/libcore/MovieFactory.cpp
index f397cef..4d01fd1 100644
--- a/libcore/MovieFactory.cpp
+++ b/libcore/MovieFactory.cpp
@@ -26,7 +26,7 @@
 
 #include "GnashEnums.h"
 #include "GnashImage.h"
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "IOChannel.h"
 #include "utility.h"
 #include "log.h"
diff --git a/libcore/StaticText.cpp b/libcore/StaticText.cpp
index 5790a0e..26bf843 100644
--- a/libcore/StaticText.cpp
+++ b/libcore/StaticText.cpp
@@ -22,8 +22,7 @@
 #include "swf/DefineTextTag.h"
 #include "log.h"
 
-namespace gnash
-{
+namespace gnash {
 
 StaticText*
 StaticText::getStaticText(std::vector<const SWF::TextRecord*>& to,
diff --git a/libcore/StaticText.h b/libcore/StaticText.h
index 9fedc79..e861118 100644
--- a/libcore/StaticText.h
+++ b/libcore/StaticText.h
@@ -20,7 +20,7 @@
 #ifndef GNASH_STATIC_TEXT_H
 #define GNASH_STATIC_TEXT_H
 
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "DisplayObject.h" // for inheritance
 #include "swf/DefineTextTag.h"
 
diff --git a/libcore/Timers.cpp b/libcore/Timers.cpp
index 8bca16c..e7584e4 100644
--- a/libcore/Timers.cpp
+++ b/libcore/Timers.cpp
@@ -120,7 +120,6 @@ Timer::execute()
 
 }
 
-#ifdef GNASH_USE_GC
 void
 Timer::markReachableResources() const
 {
@@ -129,6 +128,5 @@ Timer::markReachableResources() const
     if (_function) _function->setReachable();
     if (_object) _object->setReachable();
 }
-#endif // GNASH_USE_GC
 
 } // namespace gnash
diff --git a/libcore/Timers.h b/libcore/Timers.h
index 9d4d52b..09d8764 100644
--- a/libcore/Timers.h
+++ b/libcore/Timers.h
@@ -139,7 +139,6 @@ public:
     ///
     void executeAndReset();
 
-#ifdef GNASH_USE_GC
     /// Mark all reachable resources (for GC)
     //
     /// Resources reachable from Timer are:
@@ -149,7 +148,6 @@ public:
     ///    - Target object (_object)
     ///
     void markReachableResources() const;
-#endif // GNASH_USE_GC
 
 private:
 
diff --git a/libcore/abc/abc_function.h b/libcore/abc/abc_function.h
index 99dcee4..6aeead2 100644
--- a/libcore/abc/abc_function.h
+++ b/libcore/abc/abc_function.h
@@ -19,7 +19,7 @@
 #define GNASH_ABC_FUNCTION_H
 
 #ifdef HAVE_CONFIG_H
-#include "gnashconfig.h" // GNASH_USE_GC
+#include "gnashconfig.h" 
 #endif
 
 #include "as_function.h"
diff --git a/libcore/as_object.cpp b/libcore/as_object.cpp
index b5ad3ce..9a086f5 100644
--- a/libcore/as_object.cpp
+++ b/libcore/as_object.cpp
@@ -17,11 +17,16 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
+#include "as_object.h"
+
+#include <set>
+#include <string>
+#include <boost/algorithm/string/case_conv.hpp>
+#include <utility> // for std::pair
+
 #include "RunResources.h"
 #include "log.h"
-
-#include "smart_ptr.h" // GNASH_USE_GC
-#include "as_object.h"
+#include "smart_ptr.h" 
 #include "as_function.h"
 #include "as_environment.h" 
 #include "movie_root.h" 
@@ -35,14 +40,8 @@
 #include "Global_as.h" 
 #include "GnashAlgorithm.h"
 #include "DisplayObject.h"
-
-#include <set>
-#include <string>
-#include <boost/algorithm/string/case_conv.hpp>
-#include <utility> // for std::pair
 #include "namedStrings.h"
 
-
 namespace gnash {
 template<typename T>
 class
@@ -833,11 +832,11 @@ as_object::instanceOf(as_object* ctor)
 bool
 as_object::prototypeOf(as_object& instance)
 {
-    boost::intrusive_ptr<as_object> obj = &instance;
+    as_object* obj = &instance;
 
     std::set<as_object*> visited;
 
-    while (obj && visited.insert(obj.get()).second ) {
+    while (obj && visited.insert(obj).second ) {
         if (obj->get_prototype() == this) return true;
         obj = obj->get_prototype(); 
 	}
@@ -1010,7 +1009,6 @@ as_object::unwatch(const ObjectURI& uri)
     return true;
 }
 
-#ifdef GNASH_USE_GC
 void
 as_object::markReachableResources() const
 {
@@ -1031,7 +1029,6 @@ as_object::markReachableResources() const
     if (_relay) _relay->setReachable();
     if (_displayObject) _displayObject->setReachable();
 }
-#endif // GNASH_USE_GC
 
 void
 Trigger::setReachable() const
diff --git a/libcore/as_object.h b/libcore/as_object.h
index 77f977a..49697ea 100644
--- a/libcore/as_object.h
+++ b/libcore/as_object.h
@@ -523,11 +523,6 @@ public:
     /// @param set_true     A mask of flags to set to true.
     void setPropFlags(const as_value& props, int set_false, int set_true);
 
-#ifdef USE_DEBUGGER
-    /// Get the properties of this object
-    PropertyList &get_properties() { return _members; };
-#endif
-
     /// Copy properties from the given object
     //
     /// NOTE: the __proto__ member will NOT be copied.
diff --git a/libcore/as_value.cpp b/libcore/as_value.cpp
index a8266cd..e0303cb 100644
--- a/libcore/as_value.cpp
+++ b/libcore/as_value.cpp
@@ -18,7 +18,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "as_value.h"
 #include "as_object.h"
 #include "as_function.h" // for as_function
diff --git a/libcore/asobj/Accessibility_as.cpp b/libcore/asobj/Accessibility_as.cpp
index 3cedbc8..901158d 100644
--- a/libcore/asobj/Accessibility_as.cpp
+++ b/libcore/asobj/Accessibility_as.cpp
@@ -24,7 +24,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h"
 #include "NativeFunction.h"
 
 namespace gnash {
diff --git a/libcore/asobj/Array_as.cpp b/libcore/asobj/Array_as.cpp
index 62c36d1..42f190b 100644
--- a/libcore/asobj/Array_as.cpp
+++ b/libcore/asobj/Array_as.cpp
@@ -26,10 +26,9 @@
 #include <boost/algorithm/string/case_conv.hpp>
 #include <boost/lexical_cast.hpp>
 
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "as_value.h"
 #include "log.h"
-#include "builtin_function.h"
 #include "NativeFunction.h" 
 #include "as_function.h"
 #include "fn_call.h"
diff --git a/libcore/asobj/AsBroadcaster.cpp b/libcore/asobj/AsBroadcaster.cpp
index 935946a..1546849 100644
--- a/libcore/asobj/AsBroadcaster.cpp
+++ b/libcore/asobj/AsBroadcaster.cpp
@@ -18,11 +18,11 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
+#include "AsBroadcaster.h"
+
 #include "Array_as.h" // for _listeners construction
 #include "log.h"
-#include "AsBroadcaster.h"
 #include "fn_call.h"
-#include "builtin_function.h"
 #include "NativeFunction.h" 
 #include "Global_as.h"
 #include "namedStrings.h"
@@ -239,8 +239,7 @@ asbroadcaster_initialize(const fn_call& fn)
 
     // TODO: check if automatic primitive to object conversion apply here
     const as_value& tgtval = fn.arg(0);
-    if ( ! tgtval.is_object() )
-    {
+    if (!tgtval.is_object()) {
         IF_VERBOSE_ASCODING_ERRORS(
         log_aserror(_("AsBroadcaster.initialize(%s): first arg is "
                 "not an object"), tgtval); 
@@ -248,9 +247,8 @@ asbroadcaster_initialize(const fn_call& fn)
         return as_value();
     }
 
-    boost::intrusive_ptr<as_object> tgt = toObject(tgtval, getVM(fn));
-    if ( ! tgt )
-    {
+    as_object* tgt = toObject(tgtval, getVM(fn));
+    if (!tgt) {
         IF_VERBOSE_ASCODING_ERRORS(
         log_aserror(_("AsBroadcaster.initialize(%s): first arg is an object"
             " but doesn't cast to one (dangling DisplayObject ref?)"), tgtval); 
@@ -316,7 +314,7 @@ asbroadcaster_addListener(const fn_call& fn)
 as_value
 asbroadcaster_removeListener(const fn_call& fn)
 {
-    boost::intrusive_ptr<as_object> obj = fn.this_ptr;
+    as_object* obj = ensure<ValidThis>(fn);
 
     as_value listenersValue;
 
@@ -324,8 +322,7 @@ asbroadcaster_removeListener(const fn_call& fn)
     //       inheritance chain in case it's own property _listeners 
     //       has been deleted while another one is found in any base
     //       class.
-    if (!obj->get_member(NSV::PROP_uLISTENERS, &listenersValue) )
-    {
+    if (!obj->get_member(NSV::PROP_uLISTENERS, &listenersValue)) {
         IF_VERBOSE_ASCODING_ERRORS(
             std::ostringstream ss; fn.dump_args(ss);
             log_aserror(_("%p.addListener(%s): this object has no _listeners "
diff --git a/libcore/asobj/AsBroadcaster.h b/libcore/asobj/AsBroadcaster.h
index 1731bb0..09890fa 100644
--- a/libcore/asobj/AsBroadcaster.h
+++ b/libcore/asobj/AsBroadcaster.h
@@ -24,6 +24,7 @@ namespace gnash {
 	class as_value;
 	class as_object;
 	class fn_call;
+    struct ObjectURI;
 }
 
 namespace gnash {
@@ -47,9 +48,6 @@ public:
 	///
 	static void initialize(as_object& obj);
 
-	/// AsBroadcaster.initialize() AS method
-	static as_value initialize_method(const fn_call& fn);
-
 	/// Return the global AsBroadcaster
 	/// (the native one, immune to any override)
 	///
@@ -63,6 +61,5 @@ public:
 
 } // end of gnash namespace
 
-// __ASBROADCASTER_H__
 #endif
 
diff --git a/libcore/asobj/Boolean_as.cpp b/libcore/asobj/Boolean_as.cpp
index f00fa57..10a19f8 100644
--- a/libcore/asobj/Boolean_as.cpp
+++ b/libcore/asobj/Boolean_as.cpp
@@ -24,7 +24,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
 #include "NativeFunction.h"
 #include "GnashException.h"
 #include "VM.h" 
diff --git a/libcore/asobj/Camera_as.cpp b/libcore/asobj/Camera_as.cpp
index c2bbcac..ef5d2b4 100644
--- a/libcore/asobj/Camera_as.cpp
+++ b/libcore/asobj/Camera_as.cpp
@@ -17,7 +17,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-
 #include "Camera_as.h"
 
 #include <sstream>
@@ -29,7 +28,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" 
-#include "builtin_function.h" 
 #include "NativeFunction.h" 
 #include "MediaHandler.h"
 #include "VideoInput.h"
@@ -127,9 +125,8 @@ void
 attachCameraProperties(as_object& o)
 {
     Global_as& gl = getGlobal(o);
-    boost::intrusive_ptr<builtin_function> getset;
 
-    getset = gl.createFunction(camera_activitylevel);
+    as_function* getset = gl.createFunction(camera_activitylevel);
     o.init_property("activityLevel", *getset, *getset);
     getset = gl.createFunction(camera_bandwidth);
     o.init_property("bandwidth", *getset, *getset);
diff --git a/libcore/asobj/Color_as.cpp b/libcore/asobj/Color_as.cpp
index 46456ae..e737704 100644
--- a/libcore/asobj/Color_as.cpp
+++ b/libcore/asobj/Color_as.cpp
@@ -27,7 +27,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
 #include "NativeFunction.h" 
 #include "SWFCxForm.h" // for composition
 #include "VM.h"
diff --git a/libcore/asobj/ContextMenuItem_as.cpp b/libcore/asobj/ContextMenuItem_as.cpp
index 6494c43..734fc26 100644
--- a/libcore/asobj/ContextMenuItem_as.cpp
+++ b/libcore/asobj/ContextMenuItem_as.cpp
@@ -17,14 +17,13 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
+#include "ContextMenuItem_as.h"
 
 #include "namedStrings.h"
-#include "ContextMenuItem_as.h"
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
-#include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
+#include "as_function.h"
 
 namespace gnash {
 
diff --git a/libcore/asobj/ContextMenu_as.cpp b/libcore/asobj/ContextMenu_as.cpp
index 93047e5..98a9e48 100644
--- a/libcore/asobj/ContextMenu_as.cpp
+++ b/libcore/asobj/ContextMenu_as.cpp
@@ -17,14 +17,14 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-
 #include "ContextMenu_as.h"
+
+#include "as_function.h"
 #include "as_object.h" 
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" 
-#include "builtin_function.h" 
 #include "namedStrings.h"
 #include "Array_as.h"
 
diff --git a/libcore/asobj/Date_as.cpp b/libcore/asobj/Date_as.cpp
index f999554..95548a8 100644
--- a/libcore/asobj/Date_as.cpp
+++ b/libcore/asobj/Date_as.cpp
@@ -70,7 +70,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "GnashException.h"
-#include "builtin_function.h"
 #include "NativeFunction.h" 
 #include "ClockTime.h"
 #include "VM.h"
diff --git a/libcore/asobj/Error_as.cpp b/libcore/asobj/Error_as.cpp
index 9832ec2..536102d 100644
--- a/libcore/asobj/Error_as.cpp
+++ b/libcore/asobj/Error_as.cpp
@@ -19,16 +19,17 @@
 //
 
 #include "Error_as.h"
+
+#include <sstream>
+
 #include "as_object.h" // for inheritance
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
-#include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
-#include "GnashException.h" // for ActionException
+#include "GnashException.h"
+#include "as_value.h"
 #include "VM.h"
-
-#include <sstream>
+#include "as_function.h"
 
 namespace gnash {
 
diff --git a/libcore/asobj/Function_as.cpp b/libcore/asobj/Function_as.cpp
index 1772a67..13238b6 100644
--- a/libcore/asobj/Function_as.cpp
+++ b/libcore/asobj/Function_as.cpp
@@ -138,8 +138,7 @@ function_apply(const fn_call& fn)
 				}
 			);
 
-			boost::intrusive_ptr<as_object> arg1 = 
-                toObject(fn.arg(1), getVM(fn));
+			as_object* arg1 = toObject(fn.arg(1), getVM(fn));
 
             if (arg1) {
                 PushFunctionArgs pa(new_fn_call);
diff --git a/libcore/asobj/Global_as.cpp b/libcore/asobj/Global_as.cpp
index f474668..bf86518 100644
--- a/libcore/asobj/Global_as.cpp
+++ b/libcore/asobj/Global_as.cpp
@@ -31,6 +31,7 @@
 #include <boost/assign/list_of.hpp>
 
 #include "as_object.h"
+#include "builtin_function.h"
 #include "movie_root.h"
 #include "PropFlags.h"
 #include "as_value.h"
@@ -80,7 +81,6 @@
 #include "VM.h"
 #include "Timers.h"
 #include "URL.h" 
-#include "builtin_function.h"
 #include "rc.h"
 #include "ClassHierarchy.h"
 #include "namedStrings.h"
@@ -154,7 +154,7 @@ Global_as::~Global_as()
 {
 }
 
-builtin_function*
+as_function*
 Global_as::createFunction(Global_as::ASFunction function)
 {
     as_object* proto = createObject(*this);
@@ -606,7 +606,7 @@ global_assetpropflags(const fn_call& fn)
     );
     
     // object
-    boost::intrusive_ptr<as_object> obj = toObject(fn.arg(0), getVM(fn));
+    as_object* obj = toObject(fn.arg(0), getVM(fn));
     if (!obj) {
         IF_VERBOSE_ASCODING_ERRORS(
         log_aserror(_("Invalid call to ASSetPropFlags: "
diff --git a/libcore/asobj/Global_as.h b/libcore/asobj/Global_as.h
index c237f8a..10cfa11 100644
--- a/libcore/asobj/Global_as.h
+++ b/libcore/asobj/Global_as.h
@@ -35,7 +35,6 @@
 
 // Forward declarations
 namespace gnash {
-    class builtin_function;
     class as_value;
     class VM;
     class Extension;
@@ -70,7 +69,7 @@ public:
     }
     
     /// Create an ActionScript function
-    builtin_function* createFunction(Global_as::ASFunction function);
+    as_function* createFunction(Global_as::ASFunction function);
 
     /// Create an ActionScript class
     //
diff --git a/libcore/asobj/Key_as.cpp b/libcore/asobj/Key_as.cpp
index efa9dab..79c09a1 100644
--- a/libcore/asobj/Key_as.cpp
+++ b/libcore/asobj/Key_as.cpp
@@ -18,14 +18,13 @@
 //
 
 
-#include "smart_ptr.h" //GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "Key_as.h"
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
 #include "movie_root.h"
 #include "VM.h" // for registerNative
-#include "builtin_function.h" // need builtin_function
 #include "NativeFunction.h" 
 #include "AsBroadcaster.h" //for initializing self as a broadcaster
 #include "namedStrings.h"
diff --git a/libcore/asobj/LoadVars_as.cpp b/libcore/asobj/LoadVars_as.cpp
index 60f7f38..23d20ea 100644
--- a/libcore/asobj/LoadVars_as.cpp
+++ b/libcore/asobj/LoadVars_as.cpp
@@ -24,8 +24,7 @@
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
-#include "smart_ptr.h" // GNASH_USE_GC
-#include "builtin_function.h" // need builtin_function
+#include "smart_ptr.h" 
 #include "NativeFunction.h" // need builtin_function
 #include "as_function.h" // for calling event handlers
 #include "as_value.h" // for setting up a fn_call
diff --git a/libcore/asobj/LoadableObject.cpp b/libcore/asobj/LoadableObject.cpp
index 79e468e..26e0d6e 100644
--- a/libcore/asobj/LoadableObject.cpp
+++ b/libcore/asobj/LoadableObject.cpp
@@ -28,7 +28,6 @@
 #include "namedStrings.h"
 #include "movie_root.h"
 #include "VM.h"
-#include "builtin_function.h"
 #include "NativeFunction.h"
 #include "utf8.h"
 #include "fn_call.h"
diff --git a/libcore/asobj/LocalConnection_as.cpp b/libcore/asobj/LocalConnection_as.cpp
index be2b155..6d46c19 100644
--- a/libcore/asobj/LocalConnection_as.cpp
+++ b/libcore/asobj/LocalConnection_as.cpp
@@ -34,7 +34,6 @@
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
-#include "builtin_function.h"
 #include "NativeFunction.h"
 #include "SharedMem.h"
 #include "namedStrings.h"
diff --git a/libcore/asobj/Math_as.cpp b/libcore/asobj/Math_as.cpp
index b92e520..86c7667 100644
--- a/libcore/asobj/Math_as.cpp
+++ b/libcore/asobj/Math_as.cpp
@@ -27,7 +27,6 @@
 #include "Global_as.h"
 #include "Math_as.h"
 #include "log.h"
-#include "builtin_function.h" 
 #include "NativeFunction.h" 
 #include "GnashNumeric.h"
 
diff --git a/libcore/asobj/Microphone_as.cpp b/libcore/asobj/Microphone_as.cpp
index cb7cb71..41b676c 100644
--- a/libcore/asobj/Microphone_as.cpp
+++ b/libcore/asobj/Microphone_as.cpp
@@ -29,7 +29,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h"
 #include "NativeFunction.h"
 #include "Object.h"
 #include "GnashNumeric.h"
@@ -107,9 +106,8 @@ attachMicrophoneProperties(as_object& o)
 {
     Global_as& gl = getGlobal(o);
 
-    builtin_function* getset;
 
-    getset = gl.createFunction(microphone_activityLevel);
+    as_function* getset = gl.createFunction(microphone_activityLevel);
     o.init_readonly_property("activityLevel", microphone_activityLevel);
     getset = gl.createFunction(microphone_gain);
     o.init_readonly_property("gain", microphone_gain);
diff --git a/libcore/asobj/Mouse_as.cpp b/libcore/asobj/Mouse_as.cpp
index 2db5abf..010e314 100644
--- a/libcore/asobj/Mouse_as.cpp
+++ b/libcore/asobj/Mouse_as.cpp
@@ -25,7 +25,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
 #include "NativeFunction.h" 
 #include "VM.h" // for registerNative
 #include "AsBroadcaster.h" // for initializing self as a broadcaster
diff --git a/libcore/asobj/MovieClipLoader.cpp b/libcore/asobj/MovieClipLoader.cpp
index aa940d1..f2eefef 100644
--- a/libcore/asobj/MovieClipLoader.cpp
+++ b/libcore/asobj/MovieClipLoader.cpp
@@ -22,7 +22,7 @@
 
 #include <string>
 
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "as_value.h"
 #include "as_object.h" // for inheritance
 #include "movie_root.h"
@@ -33,7 +33,6 @@
 #include "DisplayObject.h" // for loadClip (get_parent)
 #include "log.h"
 #include "VM.h" // for the string table.
-#include "builtin_function.h"
 #include "AsBroadcaster.h" // for initializing self as a broadcaster
 #include "namedStrings.h"
 #include "ExecutableCode.h"
diff --git a/libcore/asobj/MovieClip_as.cpp b/libcore/asobj/MovieClip_as.cpp
index 7c2f782..1ff31a0 100644
--- a/libcore/asobj/MovieClip_as.cpp
+++ b/libcore/asobj/MovieClip_as.cpp
@@ -31,8 +31,7 @@
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
-#include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
+#include "smart_ptr.h"
 #include "NativeFunction.h" 
 #include "Bitmap.h"
 #include "Array_as.h"
@@ -495,7 +494,7 @@ movieclip_attachMovie(const fn_call& fn)
     newch->set_name(getURI(vm, newname));
     newch->setDynamic();
 
-    boost::intrusive_ptr<as_object> initObj;
+    as_object* initObj(0);
 
     if (fn.nargs > 3 ) {
         initObj = toObject(fn.arg(3), getVM(fn));
@@ -513,7 +512,7 @@ movieclip_attachMovie(const fn_call& fn)
     }
 
     // placeDisplayObject() will set depth on newch
-    movieclip->attachCharacter(*newch, depthValue, initObj.get());
+    movieclip->attachCharacter(*newch, depthValue, initObj);
 
     return as_value(getObject(newch));
 }
@@ -1184,7 +1183,7 @@ movieclip_getTextSnapshot(const fn_call& fn)
     // If not found, construction fails.
     as_value textSnapshot(findObject(fn.env(), "TextSnapshot"));
 
-    boost::intrusive_ptr<as_function> tsCtor = textSnapshot.to_function();
+    as_function* tsCtor = textSnapshot.to_function();
 
     if (!tsCtor) {
         IF_VERBOSE_ASCODING_ERRORS(
@@ -1198,10 +1197,9 @@ movieclip_getTextSnapshot(const fn_call& fn)
     fn_call::Args args;
     args += getObject(movieclip);
 
-    boost::intrusive_ptr<as_object> ts =
-        constructInstance(*tsCtor, fn.env(), args);
+    as_object* ts = constructInstance(*tsCtor, fn.env(), args);
 
-    return as_value(ts.get());
+    return as_value(ts);
 }
 
 
@@ -1272,9 +1270,8 @@ movieclip_globalToLocal(const fn_call& fn)
         return ret;
     }
 
-    boost::intrusive_ptr<as_object> obj = toObject(fn.arg(0), getVM(fn));
-    if ( ! obj )
-    {
+    as_object* obj = toObject(fn.arg(0), getVM(fn));
+    if (!obj) {
         IF_VERBOSE_ASCODING_ERRORS(
         log_aserror(_("MovieClip.globalToLocal(%s): "
                 "first argument doesn't cast to an object"),
@@ -1334,9 +1331,8 @@ movieclip_localToGlobal(const fn_call& fn)
         return ret;
     }
 
-    boost::intrusive_ptr<as_object> obj = toObject(fn.arg(0), getVM(fn));
-    if ( ! obj )
-    {
+    as_object* obj = toObject(fn.arg(0), getVM(fn));
+    if (!obj) {
         IF_VERBOSE_ASCODING_ERRORS(
         log_aserror(_("MovieClip.localToGlobal(%s): "
                 "first argument doesn't cast to an object"),
@@ -1346,11 +1342,10 @@ movieclip_localToGlobal(const fn_call& fn)
     }
 
     as_value tmp;
-    boost::int32_t    x = 0;
-    boost::int32_t    y = 0;
+    boost::int32_t x = 0;
+    boost::int32_t y = 0;
 
-    if ( ! obj->get_member(NSV::PROP_X, &tmp) )
-    {
+    if (!obj->get_member(NSV::PROP_X, &tmp)) {
         IF_VERBOSE_ASCODING_ERRORS(
         log_aserror(_("MovieClip.localToGlobal(%s): "
                 "object parameter doesn't have an 'x' member"),
@@ -1750,7 +1745,7 @@ movieclip_beginGradientFill(const fn_call& fn)
         return as_value();
     }
 
-    typedef boost::intrusive_ptr<as_object> ObjPtr;
+    typedef as_object* ObjPtr;
     ObjPtr colors = toObject(fn.arg(1), getVM(fn));
     ObjPtr alphas = toObject(fn.arg(2), getVM(fn));
     ObjPtr ratios = toObject(fn.arg(3), getVM(fn));
@@ -2081,7 +2076,7 @@ movieclip_transform(const fn_call& fn)
     // If not found, construction fails.
     as_value transform(findObject(fn.env(), "flash.geom.Transform"));
 
-    boost::intrusive_ptr<as_function> transCtor = transform.to_function();
+    as_function* transCtor = transform.to_function();
 
     if (!transCtor) {
         IF_VERBOSE_ASCODING_ERRORS(
@@ -2094,10 +2089,9 @@ movieclip_transform(const fn_call& fn)
     fn_call::Args args;
     args += getObject(ptr);
 
-    boost::intrusive_ptr<as_object> newTrans =
-        constructInstance(*transCtor, fn.env(), args);
+    as_object* newTrans = constructInstance(*transCtor, fn.env(), args);
 
-    return as_value(newTrans.get());
+    return as_value(newTrans);
 }
 
 as_value
diff --git a/libcore/asobj/NetConnection_as.cpp b/libcore/asobj/NetConnection_as.cpp
index 09a5912..166f523 100644
--- a/libcore/asobj/NetConnection_as.cpp
+++ b/libcore/asobj/NetConnection_as.cpp
@@ -18,7 +18,6 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-
 #ifdef HAVE_CONFIG_H
 #include "gnashconfig.h"
 #endif
@@ -36,7 +35,6 @@
 #include "GnashSystemNetHeaders.h"
 #include "log.h"
 #include "GnashException.h"
-#include "builtin_function.h"
 #include "movie_root.h"
 #include "StreamProvider.h"
 #include "URL.h"
@@ -48,7 +46,7 @@
 #include "Global_as.h"
 #include "AMFConverter.h"
 #include "AMF.h"
-#include "smart_ptr.h"
+#include "as_function.h"
 #include "RunResources.h"
 #include "IOChannel.h"
 #include "RTMP.h"
@@ -671,7 +669,7 @@ netconnection_call(const fn_call& fn)
 #endif
 
     // TODO: arg(1) is the response object. let it know when data comes back
-    boost::intrusive_ptr<as_object> asCallback;
+    as_object* asCallback(0);
     if (fn.nargs > 1) {
 
         if (fn.arg(1).is_object()) {
@@ -691,7 +689,7 @@ netconnection_call(const fn_call& fn)
         args = std::vector<as_value>(fn.getArgs().begin() + 2,
                 fn.getArgs().end());
     }
-    ptr->call(asCallback.get(), methodName, args);
+    ptr->call(asCallback, methodName, args);
 
     return as_value();
 }
diff --git a/libcore/asobj/NetStream_as.cpp b/libcore/asobj/NetStream_as.cpp
index 786325f..cbe7a83 100644
--- a/libcore/asobj/NetStream_as.cpp
+++ b/libcore/asobj/NetStream_as.cpp
@@ -27,11 +27,10 @@
 
 #include "RunResources.h"
 #include "CharacterProxy.h"
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h"
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
-#include "builtin_function.h"
 #include "NativeFunction.h"
 #include "GnashException.h"
 #include "NetConnection_as.h"
@@ -287,7 +286,6 @@ NetStream_as::setAudioController(DisplayObject* ch)
     _audioController.reset(new CharacterProxy(ch, getRoot(owner())));
 }
 
-#ifdef GNASH_USE_GC
 void
 NetStream_as::markReachableResources() const
 {
@@ -296,7 +294,6 @@ NetStream_as::markReachableResources() const
     if (_audioController) _audioController->setReachable();
     if (_invalidatedVideoCharacter) _invalidatedVideoCharacter->setReachable();
 }
-#endif // GNASH_USE_GC
 
 void
 NetStream_as::stopAdvanceTimer()
diff --git a/libcore/asobj/Number_as.cpp b/libcore/asobj/Number_as.cpp
index 1c0ec57..353430f 100644
--- a/libcore/asobj/Number_as.cpp
+++ b/libcore/asobj/Number_as.cpp
@@ -26,7 +26,6 @@
 #include "Global_as.h"
 #include "as_object.h" // for inheritance
 #include "as_value.h" // for doubleToString
-#include "builtin_function.h"
 #include "NativeFunction.h"
 #include "VM.h"
 
diff --git a/libcore/asobj/Object.cpp b/libcore/asobj/Object.cpp
index d4a1475..a7f6e3e 100644
--- a/libcore/asobj/Object.cpp
+++ b/libcore/asobj/Object.cpp
@@ -23,7 +23,6 @@
 #include "smart_ptr.h"
 #include "fn_call.h"
 #include "as_object.h" // for inheritance
-#include "builtin_function.h" 
 #include "NativeFunction.h" 
 #include "movie_definition.h" 
 #include "sprite_definition.h"
diff --git a/libcore/asobj/Selection_as.cpp b/libcore/asobj/Selection_as.cpp
index 04c4247..a56f359 100644
--- a/libcore/asobj/Selection_as.cpp
+++ b/libcore/asobj/Selection_as.cpp
@@ -25,7 +25,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
 #include "NativeFunction.h" 
 #include "AsBroadcaster.h"
 #include "TextField.h"
diff --git a/libcore/asobj/SharedObject_as.cpp b/libcore/asobj/SharedObject_as.cpp
index 577ca10..007103e 100644
--- a/libcore/asobj/SharedObject_as.cpp
+++ b/libcore/asobj/SharedObject_as.cpp
@@ -28,7 +28,7 @@
 #include <boost/shared_ptr.hpp>
 #include <cstdio>
 
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "movie_root.h"
 #include "GnashSystemNetHeaders.h"
 #include "GnashFileUtilities.h" // stat
@@ -38,7 +38,6 @@
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
-#include "builtin_function.h" // need builtin_function
 #include "NativeFunction.h" 
 #include "VM.h"
 #include "Property.h"
diff --git a/libcore/asobj/Sound_as.cpp b/libcore/asobj/Sound_as.cpp
index a184e7d..da48421 100644
--- a/libcore/asobj/Sound_as.cpp
+++ b/libcore/asobj/Sound_as.cpp
@@ -36,7 +36,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "GnashException.h" // for ActionException
-#include "builtin_function.h" // need builtin_function
 #include "NativeFunction.h" // need builtin_function
 #include "smart_ptr.h" // for boost intrusive_ptr
 #include "VM.h"
@@ -398,7 +397,6 @@ Sound_as::probeAudio()
     }
 }
 
-#ifdef GNASH_USE_GC
 void
 Sound_as::markReachableResources() const
 {
@@ -406,7 +404,6 @@ Sound_as::markReachableResources() const
         _attachedCharacter->setReachable();
     }
 }
-#endif // GNASH_USE_GC
 
 void
 Sound_as::markSoundCompleted(bool completed)
diff --git a/libcore/asobj/Stage_as.cpp b/libcore/asobj/Stage_as.cpp
index 397af4f..c758099 100644
--- a/libcore/asobj/Stage_as.cpp
+++ b/libcore/asobj/Stage_as.cpp
@@ -25,7 +25,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
 #include "NativeFunction.h" // for ActionException
 #include "VM.h"
 #include "AsBroadcaster.h" // for initializing self as a broadcaster
diff --git a/libcore/asobj/String_as.cpp b/libcore/asobj/String_as.cpp
index ac75012..0573ad6 100644
--- a/libcore/asobj/String_as.cpp
+++ b/libcore/asobj/String_as.cpp
@@ -29,7 +29,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "as_object.h"
-#include "builtin_function.h" // need builtin_function
 #include "NativeFunction.h" 
 #include "log.h"
 #include "as_value.h"
diff --git a/libcore/asobj/System_as.cpp b/libcore/asobj/System_as.cpp
index dece542..0e00b48 100644
--- a/libcore/asobj/System_as.cpp
+++ b/libcore/asobj/System_as.cpp
@@ -30,7 +30,6 @@
 #include "fn_call.h"
 #include "smart_ptr.h" // for boost intrusive_ptr
 #include "Global_as.h"
-#include "builtin_function.h"
 #include "NativeFunction.h" 
 #include "VM.h" // for getPlayerVersion() 
 #include "GnashAlgorithm.h"
diff --git a/libcore/asobj/TextField_as.cpp b/libcore/asobj/TextField_as.cpp
index f1cbf45..a1e7ac6 100644
--- a/libcore/asobj/TextField_as.cpp
+++ b/libcore/asobj/TextField_as.cpp
@@ -17,15 +17,14 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
+#include "TextField_as.h"
 
 #include "namedStrings.h"
-#include "TextField_as.h"
 #include "TextField.h"
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
 #include "AsBroadcaster.h" // for initializing self as a broadcaster
 #include "TextFormat_as.h"
 #include "MovieClip.h"
@@ -147,8 +146,6 @@ attachPrototypeProperties(as_object& o)
     // SWF6 or higher
     const int swf6Flags = as_object::DefaultFlags | PropFlags::onlySWF6Up;
 
-    boost::intrusive_ptr<builtin_function> getset;
-
     // The following properties should only be attached to the prototype
     // on first textfield creation.
     o.init_property(NSV::PROP_TEXT_WIDTH,
@@ -158,7 +155,7 @@ attachPrototypeProperties(as_object& o)
 
     Global_as& gl = getGlobal(o);
 
-    getset = gl.createFunction(textfield_variable);
+    as_function* getset = gl.createFunction(textfield_variable);
     o.init_property("variable", *getset, *getset, swf6Flags);
     getset = gl.createFunction(textfield_background);
     o.init_property("background", *getset, *getset, swf6Flags);
diff --git a/libcore/asobj/TextFormat_as.cpp b/libcore/asobj/TextFormat_as.cpp
index 7a3bf81..7f6f76b 100644
--- a/libcore/asobj/TextFormat_as.cpp
+++ b/libcore/asobj/TextFormat_as.cpp
@@ -25,7 +25,6 @@
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
-#include "builtin_function.h" 
 #include "NativeFunction.h" 
 #include "namedStrings.h"
 #include "VM.h"
diff --git a/libcore/asobj/TextSnapshot_as.cpp b/libcore/asobj/TextSnapshot_as.cpp
index 866bdac..1a32543 100644
--- a/libcore/asobj/TextSnapshot_as.cpp
+++ b/libcore/asobj/TextSnapshot_as.cpp
@@ -29,7 +29,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" 
 #include "NativeFunction.h"
 #include "StaticText.h"
 #include "DisplayList.h"
diff --git a/libcore/asobj/XMLNode_as.cpp b/libcore/asobj/XMLNode_as.cpp
index 0129a2d..4573265 100644
--- a/libcore/asobj/XMLNode_as.cpp
+++ b/libcore/asobj/XMLNode_as.cpp
@@ -31,7 +31,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
 #include "NativeFunction.h"
 #include "PropertyList.h"
 #include "Global_as.h"
diff --git a/libcore/asobj/XMLSocket_as.cpp b/libcore/asobj/XMLSocket_as.cpp
index c8415ee..567cf3d 100644
--- a/libcore/asobj/XMLSocket_as.cpp
+++ b/libcore/asobj/XMLSocket_as.cpp
@@ -34,7 +34,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "VM.h"
-#include "builtin_function.h" 
 #include "NativeFunction.h" 
 #include "URLAccessManager.h"
 #include "Global_as.h" 
diff --git a/libcore/asobj/XML_as.cpp b/libcore/asobj/XML_as.cpp
index f33ba3b..b13e976 100644
--- a/libcore/asobj/XML_as.cpp
+++ b/libcore/asobj/XML_as.cpp
@@ -26,7 +26,6 @@
 #include "LoadableObject.h"
 #include "XMLNode_as.h"
 #include "XML_as.h"
-#include "builtin_function.h"
 #include "NativeFunction.h"
 #include "VM.h"
 #include "namedStrings.h"
diff --git a/libcore/asobj/flash/display/BitmapData_as.cpp b/libcore/asobj/flash/display/BitmapData_as.cpp
index 19ecb54..a5dacca 100644
--- a/libcore/asobj/flash/display/BitmapData_as.cpp
+++ b/libcore/asobj/flash/display/BitmapData_as.cpp
@@ -33,7 +33,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" 
-#include "builtin_function.h"
 #include "GnashException.h" 
 #include "VM.h" 
 #include "Renderer.h"
diff --git a/libcore/asobj/flash/external/ExternalInterface_as.cpp b/libcore/asobj/flash/external/ExternalInterface_as.cpp
index f1d7e2c..f52e81e 100644
--- a/libcore/asobj/flash/external/ExternalInterface_as.cpp
+++ b/libcore/asobj/flash/external/ExternalInterface_as.cpp
@@ -34,7 +34,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
 #include "GnashException.h" // for ActionException
 #include "VM.h"
 #include "rc.h"
diff --git a/libcore/asobj/flash/filters/BevelFilter_as.cpp b/libcore/asobj/flash/filters/BevelFilter_as.cpp
index d3d0323..a81ae38 100644
--- a/libcore/asobj/flash/filters/BevelFilter_as.cpp
+++ b/libcore/asobj/flash/filters/BevelFilter_as.cpp
@@ -19,7 +19,6 @@
 
 #include "as_object.h"
 #include "VM.h"
-#include "builtin_function.h"
 #include "Global_as.h"
 #include "BitmapFilter_as.h"
 #include "Filters.h"
diff --git a/libcore/asobj/flash/filters/BitmapFilter_as.cpp b/libcore/asobj/flash/filters/BitmapFilter_as.cpp
index 5e939ad..4fd8f1f 100644
--- a/libcore/asobj/flash/filters/BitmapFilter_as.cpp
+++ b/libcore/asobj/flash/filters/BitmapFilter_as.cpp
@@ -20,7 +20,6 @@
 #include "namedStrings.h"
 #include "as_object.h"
 #include "VM.h"
-#include "builtin_function.h"
 #include "NativeFunction.h"
 #include "Global_as.h"
 #include "Filters.h"
diff --git a/libcore/asobj/flash/filters/BlurFilter_as.cpp b/libcore/asobj/flash/filters/BlurFilter_as.cpp
index f8962e9..f5b0ae3 100644
--- a/libcore/asobj/flash/filters/BlurFilter_as.cpp
+++ b/libcore/asobj/flash/filters/BlurFilter_as.cpp
@@ -19,7 +19,6 @@
 
 #include "as_object.h"
 #include "VM.h"
-#include "builtin_function.h"
 #include "Global_as.h"
 #include "BitmapFilter_as.h"
 #include "Filters.h"
diff --git a/libcore/asobj/flash/filters/ColorMatrixFilter_as.cpp b/libcore/asobj/flash/filters/ColorMatrixFilter_as.cpp
index 4df176b..d75361d 100644
--- a/libcore/asobj/flash/filters/ColorMatrixFilter_as.cpp
+++ b/libcore/asobj/flash/filters/ColorMatrixFilter_as.cpp
@@ -19,7 +19,6 @@
 
 #include "as_object.h"
 #include "VM.h"
-#include "builtin_function.h"
 #include "Global_as.h"
 #include "BitmapFilter_as.h"
 #include "Filters.h"
diff --git a/libcore/asobj/flash/filters/ConvolutionFilter_as.cpp b/libcore/asobj/flash/filters/ConvolutionFilter_as.cpp
index 1de0fc8..deefadc 100644
--- a/libcore/asobj/flash/filters/ConvolutionFilter_as.cpp
+++ b/libcore/asobj/flash/filters/ConvolutionFilter_as.cpp
@@ -20,7 +20,6 @@
 #include "as_object.h"
 #include "VM.h"
 #include "Global_as.h"
-#include "builtin_function.h"
 #include "BitmapFilter_as.h"
 #include "Filters.h"
 
diff --git a/libcore/asobj/flash/filters/DisplacementMapFilter_as.cpp b/libcore/asobj/flash/filters/DisplacementMapFilter_as.cpp
index 76aecba..d2c1206 100644
--- a/libcore/asobj/flash/filters/DisplacementMapFilter_as.cpp
+++ b/libcore/asobj/flash/filters/DisplacementMapFilter_as.cpp
@@ -21,17 +21,16 @@
 
 #include "DisplacementMapFilter_as.h"
 
-#include "as_object.h" // for inheritance
+#include <sstream>
+
+#include "as_object.h"
+#include "as_function.h" 
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
-#include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
 #include "BitmapFilter_as.h"
 #include "Filters.h"
 
-#include <sstream>
-
 namespace gnash {
 
 namespace {
diff --git a/libcore/asobj/flash/filters/DropShadowFilter_as.cpp b/libcore/asobj/flash/filters/DropShadowFilter_as.cpp
index 8bdcc3e..3405354 100644
--- a/libcore/asobj/flash/filters/DropShadowFilter_as.cpp
+++ b/libcore/asobj/flash/filters/DropShadowFilter_as.cpp
@@ -20,7 +20,6 @@
 #include "as_object.h"
 #include "VM.h"
 #include "Global_as.h"
-#include "builtin_function.h"
 #include "BitmapFilter_as.h"
 #include "Filters.h"
 
diff --git a/libcore/asobj/flash/filters/GlowFilter_as.cpp b/libcore/asobj/flash/filters/GlowFilter_as.cpp
index 19e3990..002e5df 100644
--- a/libcore/asobj/flash/filters/GlowFilter_as.cpp
+++ b/libcore/asobj/flash/filters/GlowFilter_as.cpp
@@ -20,7 +20,6 @@
 #include "as_object.h"
 #include "VM.h"
 #include "Global_as.h"
-#include "builtin_function.h"
 #include "BitmapFilter_as.h"
 #include "Filters.h"
 
diff --git a/libcore/asobj/flash/filters/GradientBevelFilter_as.cpp b/libcore/asobj/flash/filters/GradientBevelFilter_as.cpp
index d49449d..d85f944 100644
--- a/libcore/asobj/flash/filters/GradientBevelFilter_as.cpp
+++ b/libcore/asobj/flash/filters/GradientBevelFilter_as.cpp
@@ -19,7 +19,6 @@
 
 #include "as_object.h"
 #include "VM.h"
-#include "builtin_function.h"
 #include "Global_as.h"
 #include "BitmapFilter_as.h"
 #include "Filters.h"
diff --git a/libcore/asobj/flash/filters/GradientGlowFilter_as.cpp b/libcore/asobj/flash/filters/GradientGlowFilter_as.cpp
index 380f97d..7523125 100644
--- a/libcore/asobj/flash/filters/GradientGlowFilter_as.cpp
+++ b/libcore/asobj/flash/filters/GradientGlowFilter_as.cpp
@@ -22,7 +22,6 @@
 #include "as_object.h"
 #include "VM.h"
 #include "Global_as.h"
-#include "builtin_function.h"
 
 namespace gnash {
 
diff --git a/libcore/asobj/flash/geom/ColorTransform_as.cpp b/libcore/asobj/flash/geom/ColorTransform_as.cpp
index 42e66b4..eae2177 100644
--- a/libcore/asobj/flash/geom/ColorTransform_as.cpp
+++ b/libcore/asobj/flash/geom/ColorTransform_as.cpp
@@ -25,7 +25,6 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" 
 #include "NativeFunction.h"
 #include "VM.h"
 
diff --git a/libcore/asobj/flash/geom/Matrix_as.cpp b/libcore/asobj/flash/geom/Matrix_as.cpp
index c30f4c2..65a0329 100644
--- a/libcore/asobj/flash/geom/Matrix_as.cpp
+++ b/libcore/asobj/flash/geom/Matrix_as.cpp
@@ -19,21 +19,21 @@
 //
 
 #include "Matrix_as.h"
-#include "as_object.h" // for inheritance
+
+#include <cmath>
+#include <boost/numeric/ublas/matrix.hpp> // boost matrix
+#include <boost/numeric/ublas/io.hpp>
+#include <sstream>
+
+#include "as_function.h"
+#include "as_object.h" 
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
 #include "GnashException.h" // for ActionException
 #include "VM.h"
-
 #include "namedStrings.h"
-#include <cmath>
-#include <boost/numeric/ublas/matrix.hpp> // boost matrix
-#include <boost/numeric/ublas/io.hpp>
-#include <sstream>
-
 // According to senocular, Flash docs get this wrong (b and c swapped).
 //
 // A transformation matrix for affine transformations:
diff --git a/libcore/asobj/flash/geom/Point_as.cpp b/libcore/asobj/flash/geom/Point_as.cpp
index 2e3939c..5f60c32 100644
--- a/libcore/asobj/flash/geom/Point_as.cpp
+++ b/libcore/asobj/flash/geom/Point_as.cpp
@@ -19,18 +19,18 @@
 //
 
 #include "Point_as.h"
-#include "as_object.h" // for inheritance
+
+#include <sstream>
+
+#include "as_object.h" 
+#include "as_function.h" 
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
-#include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
 #include "GnashException.h" // for ActionException
 #include "VM.h"
 #include "GnashNumeric.h"
-
 #include "namedStrings.h"
-#include <sstream>
 
 namespace gnash {
 
diff --git a/libcore/asobj/flash/geom/Rectangle_as.cpp b/libcore/asobj/flash/geom/Rectangle_as.cpp
index 2aff7dc..a880b75 100644
--- a/libcore/asobj/flash/geom/Rectangle_as.cpp
+++ b/libcore/asobj/flash/geom/Rectangle_as.cpp
@@ -27,12 +27,12 @@
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
 #include "GnashException.h" // for ActionException
 #include "VM.h"
 #include "as_value.h"
 #include "namedStrings.h"
 #include "GnashNumeric.h" // isFinite
+#include "as_function.h"
 
 namespace gnash {
 
diff --git a/libcore/asobj/flash/geom/Transform_as.cpp b/libcore/asobj/flash/geom/Transform_as.cpp
index d140f78..48c8eb8 100644
--- a/libcore/asobj/flash/geom/Transform_as.cpp
+++ b/libcore/asobj/flash/geom/Transform_as.cpp
@@ -25,8 +25,7 @@
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
-#include "smart_ptr.h" 
-#include "builtin_function.h" 
+#include "as_function.h"
 #include "GnashException.h"
 #include "VM.h"
 #include "MovieClip.h"
diff --git a/libcore/asobj/flash/net/FileReferenceList_as.cpp b/libcore/asobj/flash/net/FileReferenceList_as.cpp
index 497f054..78afe25 100644
--- a/libcore/asobj/flash/net/FileReferenceList_as.cpp
+++ b/libcore/asobj/flash/net/FileReferenceList_as.cpp
@@ -20,12 +20,12 @@
 
 
 #include "FileReferenceList_as.h"
-#include "as_object.h" // for inheritance
+
+#include "as_function.h" 
+#include "as_object.h"
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
-#include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
 #include "GnashException.h" // for ActionException
 #include "VM.h"
 
diff --git a/libcore/asobj/flash/net/FileReference_as.cpp b/libcore/asobj/flash/net/FileReference_as.cpp
index 3025a39..1097855 100644
--- a/libcore/asobj/flash/net/FileReference_as.cpp
+++ b/libcore/asobj/flash/net/FileReference_as.cpp
@@ -24,8 +24,7 @@
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
-#include "smart_ptr.h" // for boost intrusive_ptr
-#include "builtin_function.h" // need builtin_function
+#include "as_function.h" 
 #include "GnashException.h" // for ActionException
 #include "VM.h"
 
diff --git a/libcore/asobj/flash/text/TextRenderer_as.cpp b/libcore/asobj/flash/text/TextRenderer_as.cpp
index 547993c..9343b44 100644
--- a/libcore/asobj/flash/text/TextRenderer_as.cpp
+++ b/libcore/asobj/flash/text/TextRenderer_as.cpp
@@ -20,16 +20,17 @@
 
 
 #include "TextRenderer_as.h"
+
+#include <sstream>
+
 #include "as_object.h" // for inheritance
+#include "as_function.h" 
 #include "log.h"
 #include "fn_call.h"
 #include "Global_as.h"
 #include "smart_ptr.h" 
-#include "builtin_function.h" 
 #include "VM.h" 
 
-#include <sstream>
-
 namespace gnash {
 
 namespace {
diff --git a/libcore/movie_root.cpp b/libcore/movie_root.cpp
index 0d8e757..24d63f4 100644
--- a/libcore/movie_root.cpp
+++ b/libcore/movie_root.cpp
@@ -503,10 +503,8 @@ movie_root::reset()
     // Cleanup the stack.
     _vm.getStack().clear();
 
-#ifdef GNASH_USE_GC
     // Run the garbage collector again
     _gc.fuzzyCollect();
-#endif
 
     setInvalidated();
 
@@ -627,7 +625,8 @@ movie_root::keyEvent(key::code k, bool down)
 bool
 movie_root::mouseWheel(int delta)
 {
-    as_object* mouseObj = getBuiltinObject(*this, getURI(_vm,NSV::CLASS_MOUSE));
+    as_object* mouseObj = 
+        getBuiltinObject(*this, getURI(_vm, NSV::CLASS_MOUSE));
     if (!mouseObj) return false;
     
     const boost::int32_t x = pixelsToTwips(_mouseX);
@@ -1661,7 +1660,6 @@ movie_root::executeTimers()
 
 }
 
-#ifdef GNASH_USE_GC
 void
 movie_root::markReachableResources() const
 {
@@ -1728,7 +1726,6 @@ movie_root::markReachableResources() const
 #endif
 
 }
-#endif // GNASH_USE_GC
 
 InteractiveObject*
 movie_root::getTopmostMouseEntity(boost::int32_t x, boost::int32_t y) const
diff --git a/libcore/movie_root.h b/libcore/movie_root.h
index 7bcc66b..a3b6179 100644
--- a/libcore/movie_root.h
+++ b/libcore/movie_root.h
@@ -79,7 +79,7 @@
 #include <boost/noncopyable.hpp>
 #include <boost/any.hpp>
 
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "dsodefs.h" // DSOEXPORT
 #include "MouseButtonState.h" // for composition
 #include "DragState.h" // for composition
@@ -583,7 +583,6 @@ public:
     /// Push an executable code to the ActionQueue
     void pushAction(const action_buffer& buf, DisplayObject* target);
 
-#ifdef GNASH_USE_GC
     /// Mark all reachable resources (for GC)
     //
     /// Resources reachable from movie_root are:
@@ -597,7 +596,6 @@ public:
     /// - Any DisplayObject being dragged 
     ///
     void markReachableResources() const;
-#endif // GNASH_USE_GC
 
     /// \brief
     /// Register a newly born advanceable DisplayObject to the
diff --git a/libcore/parser/BitmapMovieDefinition.cpp b/libcore/parser/BitmapMovieDefinition.cpp
index c6f8f7d..6a3425a 100644
--- a/libcore/parser/BitmapMovieDefinition.cpp
+++ b/libcore/parser/BitmapMovieDefinition.cpp
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "BitmapMovie.h"
 #include "BitmapMovieDefinition.h"
 #include "Geometry.h" // for class path and class edge
diff --git a/libcore/parser/SWFMovieDefinition.cpp b/libcore/parser/SWFMovieDefinition.cpp
index 72f247b..52e65e7 100644
--- a/libcore/parser/SWFMovieDefinition.cpp
+++ b/libcore/parser/SWFMovieDefinition.cpp
@@ -33,7 +33,7 @@
 #include <algorithm> 
 
 #include "GnashSleep.h"
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "movie_definition.h" 
 #include "zlib_adapter.h"
 #include "IOChannel.h"
@@ -183,14 +183,9 @@ SWFMovieDefinition::addDisplayObject(boost::uint16_t id, SWF::DefinitionTag* c)
 SWF::DefinitionTag*
 SWFMovieDefinition::getDefinitionTag(boost::uint16_t id) const
 {
-
     boost::mutex::scoped_lock lock(_dictionaryMutex);
-
     boost::intrusive_ptr<SWF::DefinitionTag> ch = 
         _dictionary.getDisplayObject(id);
-#ifndef GNASH_USE_GC
-    assert(ch == NULL || ch->get_ref_count() > 1);
-#endif 
     return ch.get(); 
 }
 
@@ -244,17 +239,15 @@ sound_sample*
 SWFMovieDefinition::get_sound_sample(int id) const
 {
     SoundSampleMap::const_iterator it = m_sound_samples.find(id);
-    if ( it == m_sound_samples.end() ) return 0;
+    if (it == m_sound_samples.end()) return 0;
 
     boost::intrusive_ptr<sound_sample> ch = it->second;
-#ifndef GNASH_USE_GC
-    assert(ch->get_ref_count() > 1);
-#endif 
 
     return ch.get();
 }
 
-void SWFMovieDefinition::add_sound_sample(int id, sound_sample* sam)
+void
+SWFMovieDefinition::add_sound_sample(int id, sound_sample* sam)
 {
     assert(sam);
     IF_VERBOSE_PARSE(
diff --git a/libcore/parser/SWFMovieDefinition.h b/libcore/parser/SWFMovieDefinition.h
index 9330cd0..6e6e40f 100644
--- a/libcore/parser/SWFMovieDefinition.h
+++ b/libcore/parser/SWFMovieDefinition.h
@@ -27,7 +27,7 @@
 #include "gnashconfig.h" // for USE_SWFTREE
 #endif
 
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "movie_definition.h" // for inheritance
 #include "DefinitionTag.h" // for boost::intrusive_ptr visibility of dtor
 #include "StringPredicates.h" 
diff --git a/libcore/parser/sprite_definition.cpp b/libcore/parser/sprite_definition.cpp
index 589e359..9bf6a0a 100644
--- a/libcore/parser/sprite_definition.cpp
+++ b/libcore/parser/sprite_definition.cpp
@@ -18,7 +18,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 #include "RunResources.h"
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "MovieClip.h"
 #include "sprite_definition.h"
 #include "ControlTag.h" // for dtor visibility
@@ -34,23 +34,14 @@
 #include <cassert>
 
 
-// Define the following macro to get a dump the prototype 
-// members of classes registered to definitions.
-//#define DEBUG_REGISTER_CLASS 1
-
 namespace gnash {
 
 DisplayObject*
 sprite_definition::createDisplayObject(Global_as& gl, DisplayObject* parent)
     const
 {
-#ifdef DEBUG_REGISTER_CLASS
-	log_debug(_("Instantiating sprite_def %p"), (void*)this);
-#endif
-
     // Should not call MovieClip constructor (probably), but should
     // attach MovieClip.prototype
-
     as_object* obj = getObjectWithPrototype(gl, NSV::CLASS_MOVIE_CLIP);
     DisplayObject* mc = new MovieClip(obj, this, parent->get_root(), parent);
 	return mc;
@@ -134,26 +125,12 @@ void
 sprite_definition::registerClass(as_function* the_class)
 {
 	registeredClass = the_class;
-#ifdef DEBUG_REGISTER_CLASS
-    assert(registeredClass);
-
-	log_debug(_("Registered class %p for sprite_def %p"),
-            (void*)registeredClass.get(), (void*)this);
-	as_object* proto = toObject(
-            getMember(*registeredClass, NSV::PROP_PROTOTYPE),
-                getVM(*registeredClass));
-
-	log_debug(_(" Exported interface: "));
-	proto->dump_members();
-#endif
 }
 
-#ifdef GNASH_USE_GC
 void
 sprite_definition::markReachableResources() const
 {
-	if ( registeredClass.get() ) registeredClass->setReachable();
+	if (registeredClass) registeredClass->setReachable();
 }
-#endif // GNASH_USE_GC
 
 } // namespace gnash
diff --git a/libcore/parser/sprite_definition.h b/libcore/parser/sprite_definition.h
index 61e82fe..eaf40d4 100644
--- a/libcore/parser/sprite_definition.h
+++ b/libcore/parser/sprite_definition.h
@@ -21,12 +21,11 @@
 #ifndef GNASH_SPRITE_DEFINITION_H
 #define GNASH_SPRITE_DEFINITION_H
 
-
 #include <boost/intrusive_ptr.hpp>
 #include <boost/cstdint.hpp>
 #include <string>
 #include <map>
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "movie_definition.h" // for inheritance
 #include "log.h"
 #include "SWFRect.h"
@@ -85,9 +84,8 @@ public:
 	void registerClass(as_function* the_class);
 
 	/// Get the Class registered to this definition.
-	as_function* getRegisteredClass() const
-	{
-		return registeredClass.get();
+	as_function* getRegisteredClass() const {
+		return registeredClass;
 	}
 
     virtual void incrementLoadedFrames() {
@@ -298,31 +296,25 @@ private:
 		return true;
 	}
 
-	/// \brief
 	/// The constructor to use for setting up the interface
 	/// for new instances of this sprite
 	//
-	/// If NULL, new instances will have the default MovieClip
-	/// interface.
-	///
-	boost::intrusive_ptr<as_function> registeredClass;
+    /// TODO: this really shouldn't be stored in an immutable definition.
+	as_function* registeredClass;
 
 	int	_loadingSoundStream;
 
 protected:
 
-
-#ifdef GNASH_USE_GC
 	/// Mark reachable resources of a sprite_definition
 	//
 	/// Reachable resources are:
 	///	- registered class (registeredClass)
 	///
 	void markReachableResources() const;
-#endif // GNASH_USE_GC
 };
 
 
 } // end of namespace gnash
 
-#endif // GNASH_SPRITE_H
+#endif 
diff --git a/libcore/swf/DefineButtonTag.cpp b/libcore/swf/DefineButtonTag.cpp
index 505c428..cd74460 100644
--- a/libcore/swf/DefineButtonTag.cpp
+++ b/libcore/swf/DefineButtonTag.cpp
@@ -25,7 +25,7 @@
 
 #include "TypesParser.h"
 #include "RunResources.h"
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "DisplayObject.h"
 #include "Button.h" // for createDisplayObject()
 #include "DefineButtonCxformTag.h"
diff --git a/libcore/swf/DefineShapeTag.cpp b/libcore/swf/DefineShapeTag.cpp
index ccf26d2..64a642c 100644
--- a/libcore/swf/DefineShapeTag.cpp
+++ b/libcore/swf/DefineShapeTag.cpp
@@ -18,15 +18,12 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-
 // Based on the public domain shape.cpp of Thatcher Ulrich <tu at tulrich.com> 2003
-
 // Quadratic bezier outline shapes are the basis for most SWF rendering.
 
-
 #include "RunResources.h"
 #include "DefineShapeTag.h"
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "log.h"
 #include "Shape.h"
 #include "SWFStream.h"
diff --git a/libcore/vm/ASHandlers.cpp b/libcore/vm/ASHandlers.cpp
index 261b691..805ff20 100644
--- a/libcore/vm/ASHandlers.cpp
+++ b/libcore/vm/ASHandlers.cpp
@@ -2066,7 +2066,7 @@ ActionDelete(ActionExec& thread)
 
     std::string propertyname = env.top(0).to_string();
 
-    boost::intrusive_ptr<as_object> obj;
+    as_object* obj(0);
 
     // Behaviour is different according to version. For SWF7 and above,
     // the delete fails if there aren't two items on the stack. For SWF6
@@ -2126,7 +2126,6 @@ ActionDelete(ActionExec& thread)
     env.top(1).set_bool(ret.second);
 
     env.drop(1);
-
 }
 
 void
diff --git a/libcore/vm/ActionExec.cpp b/libcore/vm/ActionExec.cpp
index f6a0a75..24927f1 100644
--- a/libcore/vm/ActionExec.cpp
+++ b/libcore/vm/ActionExec.cpp
@@ -18,7 +18,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 #ifdef HAVE_CONFIG_H
-#include "gnashconfig.h" // USE_DEBUGGER
+#include "gnashconfig.h"
 #endif
 
 #include "ActionExec.h"
diff --git a/libcore/vm/ExecutableCode.h b/libcore/vm/ExecutableCode.h
index 62229da..a35d7ae 100644
--- a/libcore/vm/ExecutableCode.h
+++ b/libcore/vm/ExecutableCode.h
@@ -22,7 +22,7 @@
 #include <vector>
 #include <boost/noncopyable.hpp>
 
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "ActionExec.h"
 #include "Global_as.h"
 #include "fn_call.h"
diff --git a/libcore/vm/VM.cpp b/libcore/vm/VM.cpp
index 464691c..f991fbd 100644
--- a/libcore/vm/VM.cpp
+++ b/libcore/vm/VM.cpp
@@ -34,7 +34,7 @@
 #endif
 
 #include "SharedObject_as.h" // for SharedObjectLibrary
-#include "smart_ptr.h" // GNASH_USE_GC
+#include "smart_ptr.h" 
 #include "NativeFunction.h"
 #include "movie_definition.h"
 #include "Movie.h"
diff --git a/librender/Renderer.h b/librender/Renderer.h
index 9a19185..bc153cf 100644
--- a/librender/Renderer.h
+++ b/librender/Renderer.h
@@ -356,14 +356,10 @@ public:
     typedef std::vector<RenderImage> RenderImages;
 
     // Get first render image
-    virtual RenderImages::iterator getFirstRenderImage()
-            { return _render_images.begin(); }
     virtual RenderImages::const_iterator getFirstRenderImage() const
             { return _render_images.begin(); }
 
     // Get last render image
-    virtual RenderImages::iterator getLastRenderImage()
-            { return _render_images.end(); }
     virtual RenderImages::const_iterator getLastRenderImage() const
             { return _render_images.end(); }
     
diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
index 4f79a7f..320239d 100644
--- a/testsuite/Makefile.am
+++ b/testsuite/Makefile.am
@@ -144,6 +144,8 @@ tmpSharedObject:
 gnashrc: gnashrc.in Makefile tmpSharedObject
 	sed -e 's#@@MEDIADIR@@#'$(abs_mediadir)'#g' -e 's#@@TMPSODIR@@#'$(abs_tmpsodir)'#g' $(srcdir)/gnashrc.in > $@
 
+check-local:: gnashrc
+
 if ENABLE_MING
 
 .PHONY: Dejagnu.swf
@@ -151,7 +153,7 @@ Dejagnu.swf:
 	$(MAKE) -C misc-ming.all $@
 	cp misc-ming.all/Dejagnu.swf $@
 
-check-local: Dejagnu.swf gnashrc
+check-local:: Dejagnu.swf
 
 endif
 
diff --git a/testsuite/swfdec/gen_run_swfdec_testsuite.sh b/testsuite/swfdec/gen_run_swfdec_testsuite.sh
index 97f819d..c3d5b19 100644
--- a/testsuite/swfdec/gen_run_swfdec_testsuite.sh
+++ b/testsuite/swfdec/gen_run_swfdec_testsuite.sh
@@ -31,6 +31,13 @@ if [ -n "$4" ]; then
 	STARTPATTERN="$4"
 fi
 NOW=`date`
+if [ -x /bin/md5 ]; then
+	MD5="md5"
+	CUT="4"
+else
+	MD5="md5sum"
+	CUT="1"
+fi
 
 GPROCESSOR="${BUILDDIR}/utilities/gprocessor"
 GNASHRC="${BUILDDIR}/testsuite/gnashrc"
@@ -52,7 +59,7 @@ REALTIME=${SRCDIR}/REALTIME
 
 for test in \`ls ${SWFDECTRACEDIR}/[$STARTPATTERN]*.swf\`; do
 	testname=\`basename \${test}\`
-	md5=\`md5sum \${test} | cut -d' ' -f1\`
+	md5=\`$MD5 \${test} | cut -d' ' -f$CUT\`
 	testid="\${testname}:\${md5}"
 
 	if [ -f \${test}.act ]; then


hooks/post-receive
-- 
GNU Shockwave Flash (SWF) player



More information about the pkg-flash-devel mailing list