[Swfdec] 12 commits - AUTHORS doc/Makefile.am doc/swfdec-docs.sgml doc/swfdec-sections.txt libswfdec/Makefile.am libswfdec/swfdec_as_array.c libswfdec/swfdec_as_array.h libswfdec/swfdec_as_context.c libswfdec/swfdec_as_function.c libswfdec/swfdec_as_function.h libswfdec/swfdec_as_internal.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_native_function.c libswfdec/swfdec_as_native_function.h libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_as_types.c libswfdec/swfdec.h libswfdec/swfdec_sprite_movie.c MAINTAINERS
Benjamin Otte
company at kemper.freedesktop.org
Fri Jul 13 08:25:03 PDT 2007
AUTHORS | 4
MAINTAINERS | 1
doc/Makefile.am | 2
doc/swfdec-docs.sgml | 2
doc/swfdec-sections.txt | 78 +++++++++--
libswfdec/Makefile.am | 3
libswfdec/swfdec.h | 1
libswfdec/swfdec_as_array.c | 33 ++++
libswfdec/swfdec_as_array.h | 4
libswfdec/swfdec_as_context.c | 1
libswfdec/swfdec_as_function.c | 36 +++++
libswfdec/swfdec_as_function.h | 4
libswfdec/swfdec_as_internal.h | 56 ++++++++
libswfdec/swfdec_as_interpret.c | 4
libswfdec/swfdec_as_native_function.c | 21 +++
libswfdec/swfdec_as_native_function.h | 1
libswfdec/swfdec_as_object.c | 227 +++++++++++++++++++++++++++++++---
libswfdec/swfdec_as_object.h | 20 --
libswfdec/swfdec_as_types.c | 3
libswfdec/swfdec_sprite_movie.c | 2
20 files changed, 436 insertions(+), 67 deletions(-)
New commits:
diff-tree 420ca51e53e5a2a9d23ea36be541b04ab434ca6e (from 5e442e22a25b6a18c953992b22299846b9dde706)
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jul 13 17:24:59 2007 +0200
add functions to the docs
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 1a3e287..03bc0da 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -61,6 +61,7 @@ IGNORE_HFILES= \
swfdec_as_math.h \
swfdec_as_number.h \
swfdec_as_scope.h \
+ swfdec_as_script_function.h \
swfdec_as_stack.h \
swfdec_as_string.h \
swfdec_as_strings.h \
diff --git a/doc/swfdec-docs.sgml b/doc/swfdec-docs.sgml
index 2c7787f..553dfb1 100644
--- a/doc/swfdec-docs.sgml
+++ b/doc/swfdec-docs.sgml
@@ -27,5 +27,6 @@
<xi:include href="xml/SwfdecAsContext.xml"/>
<xi:include href="xml/SwfdecAsObject.xml"/>
<xi:include href="xml/SwfdecAsArray.xml"/>
+ <xi:include href="xml/SwfdecAsFunction.xml"/>
</chapter>
</book>
diff --git a/doc/swfdec-sections.txt b/doc/swfdec-sections.txt
index fd2f296..7773b37 100644
--- a/doc/swfdec-sections.txt
+++ b/doc/swfdec-sections.txt
@@ -296,4 +296,35 @@ SWFDEC_AS_ARRAY_CLASS
SWFDEC_AS_ARRAY_GET_CLASS
SWFDEC_IS_AS_ARRAY
SWFDEC_IS_AS_ARRAY_CLASS
+SWFDEC_TYPE_AS_ARRAY
+</SECTION>
+
+<SECTION>
+<FILE>SwfdecAsFunction</FILE>
+<TITLE>SwfdecAsFunction</TITLE>
+SwfdecAsFunction
+SwfdecAsNative
+SwfdecAsNativeFunction
+swfdec_as_function_create
+swfdec_as_function_call
+swfdec_as_native_function_new
+swfdec_as_native_function_set_construct_type
+swfdec_as_native_function_set_object_type
+<SUBSECTION Standard>
+swfdec_as_function_get_type
+SwfdecAsFunctionClass
+SWFDEC_AS_FUNCTION
+SWFDEC_AS_FUNCTION_CLASS
+SWFDEC_AS_FUNCTION_GET_CLASS
+SWFDEC_IS_AS_FUNCTION
+SWFDEC_IS_AS_FUNCTION_CLASS
+SWFDEC_TYPE_AS_FUNCTION
+swfdec_as_native_function_get_type
+SwfdecAsNativeFunctionClass
+SWFDEC_AS_NATIVE_FUNCTION
+SWFDEC_AS_NATIVE_FUNCTION_CLASS
+SWFDEC_AS_NATIVE_FUNCTION_GET_CLASS
+SWFDEC_IS_AS_NATIVE_FUNCTION
+SWFDEC_IS_AS_NATIVE_FUNCTION_CLASS
+SWFDEC_TYPE_AS_NATIVE_FUNCTION
</SECTION>
diff --git a/libswfdec/swfdec_as_function.c b/libswfdec/swfdec_as_function.c
index f6e040d..466b9d3 100644
--- a/libswfdec/swfdec_as_function.c
+++ b/libswfdec/swfdec_as_function.c
@@ -30,6 +30,31 @@
G_DEFINE_ABSTRACT_TYPE (SwfdecAsFunction, swfdec_as_function, SWFDEC_TYPE_AS_OBJECT)
+/**
+ * SECTION:SwfdecAsFunction
+ * @title: SwfdecAsFunction
+ * @short_description: script objects that can be executed
+ *
+ * Functions is the basic object for executing code in the Swfdec script engine.
+ * There is multiple different variants of functions, such as script-created
+ * ones and native functions.
+ *
+ * If you want to create your own functions, you should create native functions.
+ * The easiest way to do this is with swfdec_as_object_add_function() or
+ * swfdec_as_native_function_new().
+ *
+ * In Actionscript, every function can be used as a constructor. If you want to
+ * make a native function be used as a constructor for your own #SwfdecAsObject
+ * subclass, have a look at swfdec_as_native_function_set_construct_type().
+ */
+
+/**
+ * SwfdecAsFunction
+ *
+ * This is the base executable object in Swfdec. It is an abstract object. If
+ * you want to create functions yourself, use #SwfdecAsNativeFunction.
+ */
+
static void
swfdec_as_function_class_init (SwfdecAsFunctionClass *klass)
{
diff --git a/libswfdec/swfdec_as_function.h b/libswfdec/swfdec_as_function.h
index ab3d203..ae3103a 100644
--- a/libswfdec/swfdec_as_function.h
+++ b/libswfdec/swfdec_as_function.h
@@ -37,6 +37,7 @@ typedef struct _SwfdecAsFunctionClass Sw
/* FIXME: do two obejcts, one for scripts and one for native? */
struct _SwfdecAsFunction {
+ /*< private >*/
SwfdecAsObject object;
};
diff --git a/libswfdec/swfdec_as_native_function.c b/libswfdec/swfdec_as_native_function.c
index a7554c1..b5b2f81 100644
--- a/libswfdec/swfdec_as_native_function.c
+++ b/libswfdec/swfdec_as_native_function.c
@@ -40,6 +40,12 @@
* This is the prototype for all native functions.
*/
+/**
+ * SwfdecAsNativeFunction:
+ *
+ * This is the object type for native functions.
+ */
+
/*** IMPLEMENTATION ***/
G_DEFINE_TYPE (SwfdecAsNativeFunction, swfdec_as_native_function, SWFDEC_TYPE_AS_FUNCTION)
@@ -97,6 +103,21 @@ swfdec_as_native_function_init (SwfdecAs
{
}
+/**
+ * swfdec_as_native_function_new:
+ * @context: a #SwfdecAsContext
+ * @name: name of the function
+ * @native: function to call when executed
+ * @min_args: minimum number of arguments required
+ *
+ * Creates a new native function, that will execute @native when called. The
+ * @min_args parameter sets a requirement for the minimum number of arguments
+ * to pass to @native. If the function gets called with less arguments, it
+ * will just redurn undefined. You might want to use
+ * swfdec_as_object_add_function() instead of this function.
+ *
+ * Returns: a new #SwfdecAsFunction or %NULL on OOM
+ **/
SwfdecAsFunction *
swfdec_as_native_function_new (SwfdecAsContext *context, const char *name,
SwfdecAsNative native, guint min_args)
diff --git a/libswfdec/swfdec_as_native_function.h b/libswfdec/swfdec_as_native_function.h
index cf11331..b5f6232 100644
--- a/libswfdec/swfdec_as_native_function.h
+++ b/libswfdec/swfdec_as_native_function.h
@@ -37,6 +37,7 @@ typedef struct _SwfdecAsNativeFunctionCl
/* FIXME: do two obejcts, one for scripts and one for native? */
struct _SwfdecAsNativeFunction {
+ /*< private >*/
SwfdecAsFunction function;
SwfdecAsNative native; /* native call or NULL when script */
diff-tree 5e442e22a25b6a18c953992b22299846b9dde706 (from 16734160846a05f523af75b5d0fd9e8cc3c34b1a)
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jul 13 17:06:13 2007 +0200
document arrays
diff --git a/doc/swfdec-sections.txt b/doc/swfdec-sections.txt
index 68d54fa..fd2f296 100644
--- a/doc/swfdec-sections.txt
+++ b/doc/swfdec-sections.txt
@@ -280,3 +280,20 @@ SWFDEC_IS_AS_OBJECT
SWFDEC_IS_AS_OBJECT_CLASS
SWFDEC_TYPE_AS_OBJECT
</SECTION>
+
+<SECTION>
+<FILE>SwfdecAsArray</FILE>
+<TITLE>SwfdecAsArray</TITLE>
+SwfdecAsArray
+swfdec_as_array_new
+swfdec_as_array_append
+swfdec_as_array_push
+<SUBSECTION Standard>
+swfdec_as_array_get_type
+SwfdecAsArrayClass
+SWFDEC_AS_ARRAY
+SWFDEC_AS_ARRAY_CLASS
+SWFDEC_AS_ARRAY_GET_CLASS
+SWFDEC_IS_AS_ARRAY
+SWFDEC_IS_AS_ARRAY_CLASS
+</SECTION>
diff --git a/libswfdec/swfdec_as_array.c b/libswfdec/swfdec_as_array.c
index fca9951..c37d224 100644
--- a/libswfdec/swfdec_as_array.c
+++ b/libswfdec/swfdec_as_array.c
@@ -36,6 +36,21 @@
G_DEFINE_TYPE (SwfdecAsArray, swfdec_as_array, SWFDEC_TYPE_AS_OBJECT)
+/**
+ * SECTION:SwfdecAsArray
+ * @title: SwfdecAsArray
+ * @short_description: the array object
+ *
+ * The array object provides some convenience functions for creating and
+ * modifying arrays.
+ */
+
+/**
+ * SwfdecAsArray
+ *
+ * This is the type of the array object.
+ */
+
/*
* Internal helper functions
*/
@@ -197,6 +212,23 @@ swfdec_as_array_set_range (SwfdecAsArray
}
}
+/**
+ * swfdec_as_array_push:
+ * @array: a #SwfdecAsArray
+ * @value: the value to add
+ *
+ * Adds the given value to the array. This a macro that just calls
+ * swfdec_as_array_append().
+ */
+
+/**
+ * swfdec_as_array_append:
+ * @array: a #SwfdecAsArray
+ * @n: number of values to add
+ * @values: the values to add
+ *
+ * Appends the given @values to the array.
+ **/
void
swfdec_as_array_append (SwfdecAsArray *array, guint n, const SwfdecAsValue *value)
{
diff --git a/libswfdec/swfdec_as_array.h b/libswfdec/swfdec_as_array.h
index cdaaf8c..a437301 100644
--- a/libswfdec/swfdec_as_array.h
+++ b/libswfdec/swfdec_as_array.h
@@ -37,6 +37,7 @@ typedef struct _SwfdecAsArrayClass Swfde
#define SWFDEC_AS_ARRAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWFDEC_TYPE_AS_ARRAY, SwfdecAsArrayClass))
struct _SwfdecAsArray {
+ /*< private >*/
SwfdecAsObject object;
};
diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c
index 4193fdf..1284bea 100644
--- a/libswfdec/swfdec_as_object.c
+++ b/libswfdec/swfdec_as_object.c
@@ -76,6 +76,19 @@
* Swfdec. You can manually set them with swfdec_as_object_set_variable_flags().
*/
+/**
+ * SwfdecAsVariableForeach:
+ * @object: The object this function is run on
+ * @variable: garbage-collected name of the current variables
+ * @value: value of the current variable
+ * @flags: Flags associated with the current variable
+ * @data: User dta passed to swfdec_as_object_foreach()
+ *
+ * Function prototype for the swfdec_as_object_foreach() function.
+ *
+ * Returns: %TRUE to continue running the foreach function, %FALSE to stop
+ */
+
typedef struct _SwfdecAsVariable SwfdecAsVariable;
struct _SwfdecAsVariable {
guint flags; /* SwfdecAsVariableFlag values */
diff-tree 16734160846a05f523af75b5d0fd9e8cc3c34b1a (from 198a961482d0cf6f32eac345c364802e10f6afb7)
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jul 13 15:48:24 2007 +0200
add more documentation
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 540729e..1a3e287 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -56,6 +56,7 @@ IGNORE_HFILES= \
jpeg \
swfdec_amf.h \
swfdec_as_boolean.h \
+ swfdec_as_internal.h \
swfdec_as_interpret.h \
swfdec_as_math.h \
swfdec_as_number.h \
diff --git a/doc/swfdec-docs.sgml b/doc/swfdec-docs.sgml
index 4d1fe45..2c7787f 100644
--- a/doc/swfdec-docs.sgml
+++ b/doc/swfdec-docs.sgml
@@ -26,5 +26,6 @@
<xi:include href="xml/SwfdecAsValue.xml"/>
<xi:include href="xml/SwfdecAsContext.xml"/>
<xi:include href="xml/SwfdecAsObject.xml"/>
+ <xi:include href="xml/SwfdecAsArray.xml"/>
</chapter>
</book>
diff --git a/doc/swfdec-sections.txt b/doc/swfdec-sections.txt
index 2ac4b92..68d54fa 100644
--- a/doc/swfdec-sections.txt
+++ b/doc/swfdec-sections.txt
@@ -250,26 +250,26 @@ SWFDEC_TYPE_AS_CONTEXT
<FILE>SwfdecAsObject</FILE>
<TITLE>SwfdecAsObject</TITLE>
SwfdecAsObject
-swfdec_as_object_add
-swfdec_as_object_add_function
-swfdec_as_object_call
-swfdec_as_object_collect
-swfdec_as_object_create
-swfdec_as_object_delete_variable
-swfdec_as_object_foreach
-swfdec_as_object_get_debug
-swfdec_as_object_get_variable
-swfdec_as_object_get_variable_and_flags
-swfdec_as_object_has_function
-swfdec_as_object_init_context
swfdec_as_object_new
swfdec_as_object_new_empty
-swfdec_as_object_resolve
-swfdec_as_object_run
+swfdec_as_object_create
+swfdec_as_object_add
swfdec_as_object_set_constructor
+SwfdecAsVariableFlag
+swfdec_as_object_get_variable
+swfdec_as_object_get_variable_and_flags
swfdec_as_object_set_variable
swfdec_as_object_set_variable_flags
swfdec_as_object_unset_variable_flags
+swfdec_as_object_delete_variable
+SwfdecAsVariableForeach
+swfdec_as_object_foreach
+swfdec_as_object_has_function
+swfdec_as_object_call
+swfdec_as_object_run
+swfdec_as_object_add_function
+swfdec_as_object_get_debug
+swfdec_as_object_resolve
<SUBSECTION Standard>
swfdec_as_object_get_type
SwfdecAsObjectClass
diff --git a/libswfdec/swfdec_as_internal.h b/libswfdec/swfdec_as_internal.h
index 329416f..00d56db 100644
--- a/libswfdec/swfdec_as_internal.h
+++ b/libswfdec/swfdec_as_internal.h
@@ -20,6 +20,7 @@
#ifndef _SWFDEC_AS_INTERNAL_H_
#define _SWFDEC_AS_INTERNAL_H_
+#include <libswfdec/swfdec_as_object.h>
#include <libswfdec/swfdec_as_types.h>
G_BEGIN_DECLS
@@ -37,6 +38,9 @@ void swfdec_as_function_init_context (S
guint version);
/* swfdec_as_object.c */
+typedef SwfdecAsVariableForeach SwfdecAsVariableForeachRemove;
+typedef const char *(* SwfdecAsVariableForeachRename) (SwfdecAsObject *object,
+ const char *variable, SwfdecAsValue *value, guint flags, gpointer data);
void swfdec_as_object_collect (SwfdecAsObject * object);
guint swfdec_as_object_foreach_remove (SwfdecAsObject * object,
SwfdecAsVariableForeach func,
diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c
index d747f3a..4193fdf 100644
--- a/libswfdec/swfdec_as_object.c
+++ b/libswfdec/swfdec_as_object.c
@@ -26,12 +26,55 @@
#include "swfdec_as_object.h"
#include "swfdec_as_context.h"
#include "swfdec_as_frame.h"
+#include "swfdec_as_internal.h"
#include "swfdec_as_native_function.h"
#include "swfdec_as_stack.h"
#include "swfdec_as_strings.h"
#include "swfdec_as_super.h"
#include "swfdec_debug.h"
+/**
+ * SECTION:SwfdecAsObject
+ * @title: SwfdecAsObject
+ * @short_description: the base object type for scriptable objects
+ *
+ * This is the basic object type in Swfdec. Every object used by the script
+ * engine must be a #SwfdecAsObject. It handles memory management and assigning
+ * variables to it. Almost all functions that are called on objects require that
+ * the objects have been added to the garbage collector previously. For
+ * custom-created objects, you need to do this using swfdec_as_object_add(),
+ * built-in functions that create objects do this manually.
+ *
+ * Note that you cannot know the lifetime of a #SwfdecAsObject, since scripts
+ * may assign it as a variable to other objects. So you should not assume to
+ * know when an object gets removed.
+ */
+
+/**
+ * SwfdecAsObject:
+ * @object: do not access
+ * @context: the context the object was added to or %NULL if it has not yet been
+ * added. Read-only.
+ *
+ * Every object value inside the Swfdec script engine must be a SwfdecAsObject.
+ * If you want to add custom objects to your script engine, you need to create a
+ * subclass. The class provides a number of virtual functions that you can
+ * override to achieve the desired behaviour.
+ */
+
+/**
+ * SwfdecAsVariableFlag:
+ * @SWFDEC_AS_VARIABLE_DONT_ENUM: Do not include variable in enumerations and
+ * swfdec_as_object_foreach().
+ * @SWFDEC_AS_VARIABLE_PERMANENT: Do not all swfdec_as_object_delete_variable()
+ * to delete this variable.
+ * @SWFDEC_AS_VARIABLE_READONLY: Do not allow changing the value with
+ * swfdec_as_object_set_variable().
+ * @SWFDEC_AS_VARIABLE_NATIVE: The variable is implemented natively.
+ *
+ * These flags are used to describe various properties of a variable inside
+ * Swfdec. You can manually set them with swfdec_as_object_set_variable_flags().
+ */
typedef struct _SwfdecAsVariable SwfdecAsVariable;
struct _SwfdecAsVariable {
@@ -413,6 +456,16 @@ swfdec_as_object_collect (SwfdecAsObject
g_object_unref (object);
}
+/**
+ * swfdec_as_object_set_variable:
+ * @object: a #SwfdecAsObject
+ * @variable: garbage-collected name of the variable to set
+ * @value: value to set the variable to
+ *
+ * Sets a variable on @object. It is not guaranteed that getting the variable
+ * after setting it results in the same value, as some variables can be
+ * read-only or require a specific type.
+ **/
void
swfdec_as_object_set_variable (SwfdecAsObject *object,
const char *variable, const SwfdecAsValue *value)
@@ -427,6 +480,34 @@ swfdec_as_object_set_variable (SwfdecAsO
klass->set (object, variable, value);
}
+/**
+ * swfdec_as_object_get_variable:
+ * @object: a #SwfdecAsObject
+ * @variable: a garbage-collected string containing the name of the variable
+ * @value: pointer to a #SwfdecAsValue that takes the return value or %NULL
+ *
+ * Gets the value of the given @variable on @object. It walks the prototype
+ * chain. This is a shortcut macro for
+ * swfdec_as_object_get_variable_and_flags().
+ *
+ * Returns: %TRUE if the variable existed, %FALSE otherwise
+ */
+
+/**
+ * swfdec_as_object_get_variable_and_flags:
+ * @object: a #SwfdecAsObject
+ * @variable: a garbage-collected string containing the name of the variable
+ * @value: pointer to a #SwfdecAsValue that takes the return value or %NULL
+ * @flags: pointer to a guint taking the variable's flags or %NULL
+ * @pobject: pointer to set to the object that really holds the property or
+ * %NULL
+ *
+ * Looks up @variable on @object. It also walks the object's prototype chain.
+ * If the variable exists, its value, flags and the real object containing the
+ * variable will be set and %TRUE will be returned.
+ *
+ * Returns: %TRUE if the variable exists, %FALSE otherwise
+ **/
gboolean
swfdec_as_object_get_variable_and_flags (SwfdecAsObject *object,
const char *variable, SwfdecAsValue *value, guint *flags, SwfdecAsObject **pobject)
@@ -468,6 +549,18 @@ swfdec_as_object_get_variable_and_flags
return FALSE;
}
+/**
+ * swfdec_as_object_delete_variable:
+ * @object: a #SwfdecAsObject
+ * @variable: garbage-collected name of the variable
+ *
+ * Deletes the given variable if possible. If the variable is protected from
+ * deletion, it will not be deleted.
+ *
+ * Returns: %TRUE if the variable existed. Note that this doesn't mean that the
+ * variable was actually removed. Permanent variables for example
+ * cannot be removed.
+ **/
gboolean
swfdec_as_object_delete_variable (SwfdecAsObject *object, const char *variable)
{
@@ -523,6 +616,17 @@ swfdec_as_object_unset_variable_flags (S
klass->set_flags (object, variable, 0, flags);
}
+/**
+ * swfdec_as_object_foreach:
+ * @object: a #SwfdecAsObject
+ * @func: function to call
+ * @data: data to pass to @func
+ *
+ * Calls @func for every variable of @object or until @func returns %FALSE. The
+ * variables of @object must not be modified by @func.
+ *
+ * Returns: %TRUE if @func always returned %TRUE
+ **/
gboolean
swfdec_as_object_foreach (SwfdecAsObject *object, SwfdecAsVariableForeach func,
gpointer data)
@@ -650,6 +754,16 @@ swfdec_as_object_call (SwfdecAsObject *o
swfdec_as_context_run (object->context);
}
+/**
+ * swfdec_as_object_has_function:
+ * @object: a #SwfdecAsObject
+ * @name: garbage-collected name of th function
+ *
+ * Convenience function that checks of @object has a variable that references
+ * a function.
+ *
+ * Returns: %TRUE if object.name is a function.
+ **/
gboolean
swfdec_as_object_has_function (SwfdecAsObject *object, const char *name)
{
@@ -673,7 +787,7 @@ swfdec_as_object_has_function (SwfdecAsO
* Creates a new object for the given constructor and pushes the constructor on
* top of the stack. To actually run the constructor, you need to call
* swfdec_as_context_run(). After the constructor has been run, the new object
- * will be pushed on top of the stack.
+ * will be pushed to the top of the stack.
**/
void
swfdec_as_object_create (SwfdecAsFunction *fun, guint n_args,
@@ -845,6 +959,16 @@ swfdec_as_variable_set (SwfdecAsVariable
var->value = *value;
}
+/**
+ * swfdec_as_object_get_debug:
+ * @object: a #SwfdecAsObject
+ *
+ * Gets a representation string suitable for debugging. This function is
+ * guaranteed to not modify the state of the script engine, unlike
+ * swfdec_as_value_to_string() for example.
+ *
+ * Returns: A newly allocated string. Free it with g_free() after use.
+ **/
char *
swfdec_as_object_get_debug (SwfdecAsObject *object)
{
diff --git a/libswfdec/swfdec_as_object.h b/libswfdec/swfdec_as_object.h
index 8425e0d..d109a72 100644
--- a/libswfdec/swfdec_as_object.h
+++ b/libswfdec/swfdec_as_object.h
@@ -39,9 +39,6 @@ typedef enum {
typedef struct _SwfdecAsObjectClass SwfdecAsObjectClass;
typedef gboolean (* SwfdecAsVariableForeach) (SwfdecAsObject *object,
const char *variable, SwfdecAsValue *value, guint flags, gpointer data);
-typedef SwfdecAsVariableForeach SwfdecAsVariableForeachRemove;
-typedef const char *(* SwfdecAsVariableForeachRename) (SwfdecAsObject *object,
- const char *variable, SwfdecAsValue *value, guint flags, gpointer data);
#define SWFDEC_TYPE_AS_OBJECT (swfdec_as_object_get_type())
#define SWFDEC_IS_AS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SWFDEC_TYPE_AS_OBJECT))
diff-tree 198a961482d0cf6f32eac345c364802e10f6afb7 (from 3db929b86a8b227b69df0f36196c5da1ccbf4483)
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jul 13 13:10:37 2007 +0200
swfdec_as_object_collect() is internal
diff --git a/libswfdec/swfdec_as_internal.h b/libswfdec/swfdec_as_internal.h
index 49c982c..329416f 100644
--- a/libswfdec/swfdec_as_internal.h
+++ b/libswfdec/swfdec_as_internal.h
@@ -37,6 +37,7 @@ void swfdec_as_function_init_context (S
guint version);
/* swfdec_as_object.c */
+void swfdec_as_object_collect (SwfdecAsObject * object);
guint swfdec_as_object_foreach_remove (SwfdecAsObject * object,
SwfdecAsVariableForeach func,
gpointer data);
diff --git a/libswfdec/swfdec_as_object.h b/libswfdec/swfdec_as_object.h
index 49d244f..8425e0d 100644
--- a/libswfdec/swfdec_as_object.h
+++ b/libswfdec/swfdec_as_object.h
@@ -112,7 +112,6 @@ char * swfdec_as_object_get_debug (Swfd
void swfdec_as_object_add (SwfdecAsObject * object,
SwfdecAsContext * context,
gsize size);
-void swfdec_as_object_collect (SwfdecAsObject * object);
/* I'd like to name these [gs]et_property, but binding authors will complain
* about overlap with g_object_[gs]et_property then */
diff-tree 3db929b86a8b227b69df0f36196c5da1ccbf4483 (from 521ac1b3397c1f224f07287b0a26505539101e0b)
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jul 13 13:09:20 2007 +0200
add more documentation
diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c
index f2b7bf5..d747f3a 100644
--- a/libswfdec/swfdec_as_object.c
+++ b/libswfdec/swfdec_as_object.c
@@ -317,6 +317,17 @@ swfdec_as_object_init (SwfdecAsObject *o
{
}
+/**
+ * swfdec_as_object_new_empty:
+ * @context: a #SwfdecAsContext
+ *
+ * Creates an empty object. The prototype and constructor properties of the
+ * returned object will not be set. You probably want to call
+ * swfdec_as_object_set_constructor() on the returned object yourself.
+ * You may want to use swfdec_as_object_new() instead.
+ *
+ * Returns: A new #SwfdecAsObject adde to @context or %NULL on OOM.
+ **/
SwfdecAsObject *
swfdec_as_object_new_empty (SwfdecAsContext *context)
{
@@ -337,7 +348,6 @@ swfdec_as_object_new_empty (SwfdecAsCont
*
* Allocates a new Object. This does the same as the Actionscript code
* "new Object()".
- * <warning>This function may run the garbage collector.</warning>
*
* Returns: the new object or NULL on out of memory.
**/
@@ -662,8 +672,8 @@ swfdec_as_object_has_function (SwfdecAsO
*
* Creates a new object for the given constructor and pushes the constructor on
* top of the stack. To actually run the constructor, you need to call
- * swfdec_as_context_run() yourself. After the constructor has been run, the new
- * object will be pushed on top of the stack.
+ * swfdec_as_context_run(). After the constructor has been run, the new object
+ * will be pushed on top of the stack.
**/
void
swfdec_as_object_create (SwfdecAsFunction *fun, guint n_args,
@@ -715,6 +725,21 @@ swfdec_as_object_create (SwfdecAsFunctio
context->frame->construct = TRUE;
}
+/**
+ * swfdec_as_object_set_constructor:
+ * @object: a #SwfdecAsObject
+ * @construct: the constructor of @object
+ * @scripted: %TRUE if this object was created by a script. Flash sets the
+ * property named "__constructor__" on script-created objects, but
+ * "constructor" on native ones.
+ *
+ * Sets the constructor variables for @object. Most objects get these
+ * variables set automatically, but for objects you created yourself, you want
+ * to call this function. This is essentially the same as the following script
+ * code:
+ * |[ object.__constructor__ = construct;
+ * object.__proto__ = construct.prototype; ]|
+ **/
void
swfdec_as_object_set_constructor (SwfdecAsObject *object, SwfdecAsObject *construct, gboolean scripted)
{
diff-tree 521ac1b3397c1f224f07287b0a26505539101e0b (from b0669a9ca2e09fd79868c9cdb66af8de2360bb9c)
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jul 13 12:52:08 2007 +0200
make swfdec_as_object_foreach_rename() and swfdec_as_object_foreach_rename() internal
also document them
diff --git a/doc/swfdec-sections.txt b/doc/swfdec-sections.txt
index 33565a8..2ac4b92 100644
--- a/doc/swfdec-sections.txt
+++ b/doc/swfdec-sections.txt
@@ -257,8 +257,6 @@ swfdec_as_object_collect
swfdec_as_object_create
swfdec_as_object_delete_variable
swfdec_as_object_foreach
-swfdec_as_object_foreach_remove
-swfdec_as_object_foreach_rename
swfdec_as_object_get_debug
swfdec_as_object_get_variable
swfdec_as_object_get_variable_and_flags
diff --git a/libswfdec/swfdec_as_array.c b/libswfdec/swfdec_as_array.c
index c5070c8..fca9951 100644
--- a/libswfdec/swfdec_as_array.c
+++ b/libswfdec/swfdec_as_array.c
@@ -29,6 +29,7 @@
#include "swfdec_as_context.h"
#include "swfdec_as_frame.h"
#include "swfdec_as_function.h"
+#include "swfdec_as_internal.h"
#include "swfdec_as_native_function.h"
#include "swfdec_as_strings.h"
#include "swfdec_debug.h"
diff --git a/libswfdec/swfdec_as_internal.h b/libswfdec/swfdec_as_internal.h
index aa192f8..49c982c 100644
--- a/libswfdec/swfdec_as_internal.h
+++ b/libswfdec/swfdec_as_internal.h
@@ -37,6 +37,13 @@ void swfdec_as_function_init_context (S
guint version);
/* swfdec_as_object.c */
+guint swfdec_as_object_foreach_remove (SwfdecAsObject * object,
+ SwfdecAsVariableForeach func,
+ gpointer data);
+void swfdec_as_object_foreach_rename (SwfdecAsObject * object,
+ SwfdecAsVariableForeachRename func,
+ gpointer data);
+
void swfdec_as_object_init_context (SwfdecAsContext * context,
guint version);
diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c
index f9bf7ac..f2b7bf5 100644
--- a/libswfdec/swfdec_as_object.c
+++ b/libswfdec/swfdec_as_object.c
@@ -212,12 +212,26 @@ swfdec_as_object_hash_foreach_remove (gp
return TRUE;
}
+/**
+ * swfdec_as_object_foreach_remove:
+ * @object: a #SwfdecAsObject
+ * @func: function that determines which object to remove
+ * @data: data to pass to @func
+ *
+ * Removes all variables form @object where @func returns %TRUE. This is an
+ * internal function for array operations.
+ *
+ * Returns: he number of variables removed
+ **/
guint
swfdec_as_object_foreach_remove (SwfdecAsObject *object, SwfdecAsVariableForeach func,
gpointer data)
{
ForeachRemoveData fdata = { object, func, data };
+ g_return_val_if_fail (SWFDEC_IS_AS_OBJECT (object), 0);
+ g_return_val_if_fail (func != NULL, 0);
+
return g_hash_table_foreach_remove (object->properties,
swfdec_as_object_hash_foreach_remove, &fdata);
}
@@ -246,13 +260,27 @@ swfdec_as_object_hash_foreach_rename (gp
return TRUE;
}
+/**
+ * swfdec_as_object_foreach_rename:
+ * @object: a #SwfdecAsObject
+ * @func: function determining the new name
+ * @data: data to pass to @func
+ *
+ * Calls @func for each variable of @object. If The function is then supposed
+ * to return the new name of the variable or %NULL if the variable should be
+ * removed. This is an internal function for array operations.
+ **/
void
swfdec_as_object_foreach_rename (SwfdecAsObject *object, SwfdecAsVariableForeachRename func,
gpointer data)
{
- GHashTable *properties_new = g_hash_table_new (g_direct_hash, g_direct_equal);
+ GHashTable *properties_new;
ForeachRenameData fdata = { object, properties_new, func, data };
+ g_return_if_fail (SWFDEC_IS_AS_OBJECT (object));
+ g_return_if_fail (func != NULL);
+
+ properties_new = g_hash_table_new (g_direct_hash, g_direct_equal);
g_hash_table_foreach_remove (object->properties, swfdec_as_object_hash_foreach_rename, &fdata);
g_hash_table_destroy (object->properties);
object->properties = properties_new;
diff --git a/libswfdec/swfdec_as_object.h b/libswfdec/swfdec_as_object.h
index 0afa5a8..49d244f 100644
--- a/libswfdec/swfdec_as_object.h
+++ b/libswfdec/swfdec_as_object.h
@@ -140,12 +140,6 @@ void swfdec_as_object_unset_variable_fl
gboolean swfdec_as_object_foreach (SwfdecAsObject * object,
SwfdecAsVariableForeach func,
gpointer data);
-guint swfdec_as_object_foreach_remove (SwfdecAsObject * object,
- SwfdecAsVariableForeach func,
- gpointer data);
-void swfdec_as_object_foreach_rename (SwfdecAsObject * object,
- SwfdecAsVariableForeachRename func,
- gpointer data);
SwfdecAsFunction *swfdec_as_object_add_function (SwfdecAsObject * object,
const char * name,
diff-tree b0669a9ca2e09fd79868c9cdb66af8de2360bb9c (from e5d9d41d284a3a4afea400591bbb0029b5cf3453)
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jul 13 10:05:38 2007 +0200
install swfdec_as_object.h
diff --git a/libswfdec/Makefile.am b/libswfdec/Makefile.am
index 3e8be5d..1e06a10 100644
--- a/libswfdec/Makefile.am
+++ b/libswfdec/Makefile.am
@@ -121,6 +121,7 @@ libswfdec_ at SWFDEC_MAJORMINOR@_la_LDFLAGS
public_headers = \
swfdec.h \
swfdec_as_context.h \
+ swfdec_as_object.h \
swfdec_as_types.h \
swfdec_audio.h \
swfdec_buffer.h \
@@ -141,7 +142,6 @@ noinst_HEADERS = \
swfdec_as_math.h \
swfdec_as_native_function.h \
swfdec_as_number.h \
- swfdec_as_object.h \
swfdec_as_scope.h \
swfdec_as_script_function.h \
swfdec_as_stack.h \
diff-tree e5d9d41d284a3a4afea400591bbb0029b5cf3453 (from 03af4a28a5866a07a685597477a4f768ab10729a)
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jul 13 10:04:53 2007 +0200
put stuff that shouldn't be exported into an internal header
diff --git a/libswfdec/Makefile.am b/libswfdec/Makefile.am
index 77e166e..3e8be5d 100644
--- a/libswfdec/Makefile.am
+++ b/libswfdec/Makefile.am
@@ -136,6 +136,7 @@ noinst_HEADERS = \
swfdec_as_boolean.h \
swfdec_as_frame.h \
swfdec_as_function.h \
+ swfdec_as_internal.h \
swfdec_as_interpret.h \
swfdec_as_math.h \
swfdec_as_native_function.h \
diff --git a/libswfdec/swfdec_as_array.h b/libswfdec/swfdec_as_array.h
index 5fac3bf..cdaaf8c 100644
--- a/libswfdec/swfdec_as_array.h
+++ b/libswfdec/swfdec_as_array.h
@@ -54,9 +54,6 @@ void swfdec_as_array_append (SwfdecAsA
guint n,
const SwfdecAsValue * values);
-void swfdec_as_array_init_context (SwfdecAsContext * context,
- guint version);
-
G_END_DECLS
#endif
diff --git a/libswfdec/swfdec_as_context.c b/libswfdec/swfdec_as_context.c
index 1b444e2..8a5c20d 100644
--- a/libswfdec/swfdec_as_context.c
+++ b/libswfdec/swfdec_as_context.c
@@ -28,6 +28,7 @@
#include "swfdec_as_boolean.h"
#include "swfdec_as_frame.h"
#include "swfdec_as_function.h"
+#include "swfdec_as_internal.h"
#include "swfdec_as_interpret.h"
#include "swfdec_as_math.h"
#include "swfdec_as_native_function.h"
diff --git a/libswfdec/swfdec_as_function.c b/libswfdec/swfdec_as_function.c
index b68d7c4..f6e040d 100644
--- a/libswfdec/swfdec_as_function.c
+++ b/libswfdec/swfdec_as_function.c
@@ -40,6 +40,17 @@ swfdec_as_function_init (SwfdecAsFunctio
{
}
+/**
+ * swfdec_as_function_create:
+ * @context: a #SwfdecAsFunction
+ * @type: the type of function to create
+ * @size: size of @type
+ *
+ * Creates a new function. The function will be of @type. It will be added to
+ * @context and its prototype and constructor object will be set correctly.
+ *
+ * Returns: a new object of @type or %NULL on OOM
+ **/
SwfdecAsFunction *
swfdec_as_function_create (SwfdecAsContext *context, GType type, guint size)
{
diff --git a/libswfdec/swfdec_as_function.h b/libswfdec/swfdec_as_function.h
index 8554c77..ab3d203 100644
--- a/libswfdec/swfdec_as_function.h
+++ b/libswfdec/swfdec_as_function.h
@@ -59,9 +59,6 @@ void swfdec_as_function_call (SwfdecA
const SwfdecAsValue * args,
SwfdecAsValue * return_value);
-void swfdec_as_function_init_context (SwfdecAsContext * context,
- guint version);
-
G_END_DECLS
#endif
diff --git a/libswfdec/swfdec_as_internal.h b/libswfdec/swfdec_as_internal.h
new file mode 100644
index 0000000..aa192f8
--- /dev/null
+++ b/libswfdec/swfdec_as_internal.h
@@ -0,0 +1,44 @@
+/* Swfdec
+ * Copyright (C) 2007 Benjamin Otte <otte at gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ */
+
+#ifndef _SWFDEC_AS_INTERNAL_H_
+#define _SWFDEC_AS_INTERNAL_H_
+
+#include <libswfdec/swfdec_as_types.h>
+
+G_BEGIN_DECLS
+
+/* This header contains all the non-exported symbols that can't go into
+ * exported headers
+ */
+
+/* swfdec_as_array.c */
+void swfdec_as_array_init_context (SwfdecAsContext * context,
+ guint version);
+
+/* swfdec_as_function.c */
+void swfdec_as_function_init_context (SwfdecAsContext * context,
+ guint version);
+
+/* swfdec_as_object.c */
+void swfdec_as_object_init_context (SwfdecAsContext * context,
+ guint version);
+
+G_END_DECLS
+#endif
diff --git a/libswfdec/swfdec_as_object.h b/libswfdec/swfdec_as_object.h
index 09318cb..0afa5a8 100644
--- a/libswfdec/swfdec_as_object.h
+++ b/libswfdec/swfdec_as_object.h
@@ -162,9 +162,6 @@ void swfdec_as_object_call (SwfdecAsOb
guint argc,
SwfdecAsValue * argv,
SwfdecAsValue * return_value);
-
-void swfdec_as_object_init_context (SwfdecAsContext * context,
- guint version);
G_END_DECLS
diff-tree 03af4a28a5866a07a685597477a4f768ab10729a (from c94bf3153af1b18a27f21185bd5d14a5a8a3232a)
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jul 13 09:58:14 2007 +0200
remove scripted argument from swfdec_as_object_create()
diff --git a/libswfdec/swfdec_as_interpret.c b/libswfdec/swfdec_as_interpret.c
index 938165e..d011028 100644
--- a/libswfdec/swfdec_as_interpret.c
+++ b/libswfdec/swfdec_as_interpret.c
@@ -1360,7 +1360,7 @@ swfdec_action_new_object (SwfdecAsContex
}
swfdec_as_stack_pop_n (cx, 2);
- swfdec_as_object_create (fun, n_args, NULL, TRUE);
+ swfdec_as_object_create (fun, n_args, NULL);
return;
fail:
@@ -1397,7 +1397,7 @@ swfdec_action_new_method (SwfdecAsContex
}
swfdec_as_stack_pop_n (cx, 3);
- swfdec_as_object_create (fun, n_args, NULL, TRUE);
+ swfdec_as_object_create (fun, n_args, NULL);
return;
fail:
diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c
index 02fdeae..f9bf7ac 100644
--- a/libswfdec/swfdec_as_object.c
+++ b/libswfdec/swfdec_as_object.c
@@ -631,8 +631,6 @@ swfdec_as_object_has_function (SwfdecAsO
* @fun: constructor
* @n_args: number of arguments
* @args: arguments to pass to constructor
- * @scripted: If this variable is %TRUE, the variable "constructor" will be
- * named "__constructor__"
*
* Creates a new object for the given constructor and pushes the constructor on
* top of the stack. To actually run the constructor, you need to call
@@ -641,7 +639,7 @@ swfdec_as_object_has_function (SwfdecAsO
**/
void
swfdec_as_object_create (SwfdecAsFunction *fun, guint n_args,
- const SwfdecAsValue *args, gboolean scripted)
+ const SwfdecAsValue *args)
{
SwfdecAsObject *new;
SwfdecAsContext *context;
@@ -649,13 +647,13 @@ swfdec_as_object_create (SwfdecAsFunctio
guint size;
GType type = 0;
- g_return_if_fail (SWFDEC_IS_AS_FUNCTION (construct));
+ g_return_if_fail (SWFDEC_IS_AS_FUNCTION (fun));
- context = SWFDEC_AS_OBJECT (construct)->context;
- cur = construct;
+ context = SWFDEC_AS_OBJECT (fun)->context;
+ cur = fun;
while (type == 0 && cur != NULL) {
- if (SWFDEC_IS_AS_NATIVE_FUNCTION (construct)) {
- SwfdecAsNativeFunction *native = SWFDEC_AS_NATIVE_FUNCTION (construct);
+ if (SWFDEC_IS_AS_NATIVE_FUNCTION (cur)) {
+ SwfdecAsNativeFunction *native = SWFDEC_AS_NATIVE_FUNCTION (cur);
if (native->construct_size) {
type = native->construct_type;
size = native->construct_size;
@@ -684,8 +682,8 @@ swfdec_as_object_create (SwfdecAsFunctio
return;
new = g_object_new (type, NULL);
swfdec_as_object_add (new, context, size);
- swfdec_as_object_set_constructor (new, SWFDEC_AS_OBJECT (construct), FALSE);
- swfdec_as_function_call (construct, new, n_args, args, NULL);
+ swfdec_as_object_set_constructor (new, SWFDEC_AS_OBJECT (fun), FALSE);
+ swfdec_as_function_call (fun, new, n_args, args, NULL);
context->frame->construct = TRUE;
}
diff --git a/libswfdec/swfdec_as_object.h b/libswfdec/swfdec_as_object.h
index d20df5d..09318cb 100644
--- a/libswfdec/swfdec_as_object.h
+++ b/libswfdec/swfdec_as_object.h
@@ -102,8 +102,7 @@ SwfdecAsObject *swfdec_as_object_new (S
SwfdecAsObject *swfdec_as_object_new_empty (SwfdecAsContext * context);
void swfdec_as_object_create (SwfdecAsFunction * fun,
guint n_args,
- const SwfdecAsValue * args,
- gboolean scripted);
+ const SwfdecAsValue * args);
void swfdec_as_object_set_constructor(SwfdecAsObject * object,
SwfdecAsObject * construct,
gboolean scripted);
diff --git a/libswfdec/swfdec_as_types.c b/libswfdec/swfdec_as_types.c
index 64f7de5..8282996 100644
--- a/libswfdec/swfdec_as_types.c
+++ b/libswfdec/swfdec_as_types.c
@@ -549,7 +549,7 @@ swfdec_as_value_to_object (SwfdecAsConte
if (!SWFDEC_AS_VALUE_IS_OBJECT (&val) ||
!SWFDEC_IS_AS_FUNCTION (fun = (SwfdecAsFunction *) SWFDEC_AS_VALUE_GET_OBJECT (&val)))
return NULL;
- swfdec_as_object_create (fun, 1, value, TRUE);
+ swfdec_as_object_create (fun, 1, value);
swfdec_as_context_run (context);
value = swfdec_as_stack_pop (context);
if (SWFDEC_AS_VALUE_IS_OBJECT (value)) {
diff-tree c94bf3153af1b18a27f21185bd5d14a5a8a3232a (from b062a5b2c9be1874e6f18dd67341acd45bb2a1b4)
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jul 13 09:54:06 2007 +0200
remove SWFDEC_AS_OBJECT_HAS_CONTEXT
This must implicitly be true for pretty much every function, so don't check it.
Also fix some doc issues
diff --git a/libswfdec/swfdec_as_object.c b/libswfdec/swfdec_as_object.c
index 3f81101..02fdeae 100644
--- a/libswfdec/swfdec_as_object.c
+++ b/libswfdec/swfdec_as_object.c
@@ -46,7 +46,7 @@ swfdec_as_object_dispose (GObject *gobje
{
SwfdecAsObject *object = SWFDEC_AS_OBJECT (gobject);
- g_assert (!SWFDEC_AS_OBJECT_HAS_CONTEXT (object));
+ g_assert (object->properties == NULL);
G_OBJECT_CLASS (swfdec_as_object_parent_class)->dispose (gobject);
}
@@ -350,7 +350,7 @@ swfdec_as_object_add (SwfdecAsObject *ob
g_return_if_fail (SWFDEC_IS_AS_OBJECT (object));
g_return_if_fail (SWFDEC_IS_AS_CONTEXT (context));
- g_return_if_fail (!SWFDEC_AS_OBJECT_HAS_CONTEXT (object));
+ g_return_if_fail (object->properties == NULL);
object->context = context;
object->size = size;
@@ -365,7 +365,7 @@ void
swfdec_as_object_collect (SwfdecAsObject *object)
{
g_return_if_fail (SWFDEC_IS_AS_OBJECT (object));
- g_return_if_fail (SWFDEC_AS_OBJECT_HAS_CONTEXT (object));
+ g_return_if_fail (object->properties != NULL);
g_hash_table_foreach (object->properties, swfdec_as_object_free_property, object);
g_hash_table_destroy (object->properties);
@@ -562,7 +562,6 @@ swfdec_as_object_run (SwfdecAsObject *ob
SwfdecAsFrame *frame;
g_return_if_fail (SWFDEC_IS_AS_OBJECT (object));
- g_return_if_fail (SWFDEC_AS_OBJECT_HAS_CONTEXT (object));
g_return_if_fail (script != NULL);
context = object->context;
@@ -629,7 +628,7 @@ swfdec_as_object_has_function (SwfdecAsO
/**
* swfdec_as_object_create:
- * @construct: constructor
+ * @fun: constructor
* @n_args: number of arguments
* @args: arguments to pass to constructor
* @scripted: If this variable is %TRUE, the variable "constructor" will be
@@ -641,7 +640,7 @@ swfdec_as_object_has_function (SwfdecAsO
* object will be pushed on top of the stack.
**/
void
-swfdec_as_object_create (SwfdecAsFunction *construct, guint n_args,
+swfdec_as_object_create (SwfdecAsFunction *fun, guint n_args,
const SwfdecAsValue *args, gboolean scripted)
{
SwfdecAsObject *new;
diff --git a/libswfdec/swfdec_as_object.h b/libswfdec/swfdec_as_object.h
index 0236bf5..d20df5d 100644
--- a/libswfdec/swfdec_as_object.h
+++ b/libswfdec/swfdec_as_object.h
@@ -50,8 +50,6 @@ typedef const char *(* SwfdecAsVariableF
#define SWFDEC_AS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SWFDEC_TYPE_AS_OBJECT, SwfdecAsObjectClass))
#define SWFDEC_AS_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SWFDEC_TYPE_AS_OBJECT, SwfdecAsObjectClass))
-#define SWFDEC_AS_OBJECT_HAS_CONTEXT(obj) (SWFDEC_AS_OBJECT (obj)->properties != NULL)
-
struct _SwfdecAsObject {
GObject object;
@@ -102,7 +100,7 @@ GType swfdec_as_object_get_type (void);
SwfdecAsObject *swfdec_as_object_new (SwfdecAsContext * context);
SwfdecAsObject *swfdec_as_object_new_empty (SwfdecAsContext * context);
-void swfdec_as_object_create (SwfdecAsFunction * construct,
+void swfdec_as_object_create (SwfdecAsFunction * fun,
guint n_args,
const SwfdecAsValue * args,
gboolean scripted);
diff --git a/libswfdec/swfdec_as_types.c b/libswfdec/swfdec_as_types.c
index 98d61d7..64f7de5 100644
--- a/libswfdec/swfdec_as_types.c
+++ b/libswfdec/swfdec_as_types.c
@@ -605,7 +605,6 @@ return FALSE;
/**
* swfdec_as_value_to_primitive:
-* @context: a #SwfdecAsContext
* @value: value to convert
*
* Tries to convert the given @value inline to its primitive value. Primitive
diff --git a/libswfdec/swfdec_sprite_movie.c b/libswfdec/swfdec_sprite_movie.c
index 8bac537..bbe4999 100644
--- a/libswfdec/swfdec_sprite_movie.c
+++ b/libswfdec/swfdec_sprite_movie.c
@@ -702,7 +702,7 @@ swfdec_sprite_movie_mark (SwfdecAsObject
for (walk = SWFDEC_MOVIE (object)->list; walk; walk = walk->next) {
SwfdecAsObject *child = walk->data;
- g_assert (SWFDEC_AS_OBJECT_HAS_CONTEXT (child));
+ g_assert (child->properties != NULL);
swfdec_as_object_mark (child);
}
diff-tree b062a5b2c9be1874e6f18dd67341acd45bb2a1b4 (from 9dbe249d4544cdec12e62f9a61b4f7caeb21051a)
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jul 13 09:54:01 2007 +0200
include swfdec_as_object.h
diff --git a/libswfdec/swfdec.h b/libswfdec/swfdec.h
index c527798..6af4d0a 100644
--- a/libswfdec/swfdec.h
+++ b/libswfdec/swfdec.h
@@ -29,6 +29,7 @@
#include <libswfdec/swfdec_player.h>
#include <libswfdec/swfdec_as_context.h>
+#include <libswfdec/swfdec_as_object.h>
#include <libswfdec/swfdec_as_types.h>
#endif
diff-tree 9dbe249d4544cdec12e62f9a61b4f7caeb21051a (from 576a51e3a4a0e2a9d4c6c4e031ef27ba62b8199a)
Author: Benjamin Otte <otte at gnome.org>
Date: Fri Jul 13 09:46:47 2007 +0200
fix AUTHORS and MAINTAINERS
diff --git a/AUTHORS b/AUTHORS
index 4c004b0..9b941b6 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,2 +1,6 @@
+Andreas Henriksson <andreas at fatal.se>
Benjamin Otte <otte at gnome.org>
David Schleef <ds at schleef.org>
+Eric Anholt <eric at anholt.net>
+Nguyá»
n Thái Ngá»c Duy <pclouds at gmail.com>
+Pekka Lampila <pekka.lampila at iki.fi>
diff --git a/MAINTAINERS b/MAINTAINERS
index 4c004b0..4f8b31b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1,2 +1 @@
Benjamin Otte <otte at gnome.org>
-David Schleef <ds at schleef.org>
More information about the Swfdec
mailing list