![]() |
![]() |
![]() |
Swfdec Reference Manual | ![]() |
---|---|---|---|---|
SwfdecAsFunction; void (*SwfdecAsNative) (SwfdecAsContext *context, SwfdecAsObject *thisp, guint argc, SwfdecAsValue *argv, SwfdecAsValue *retval); SwfdecAsNativeFunction; SwfdecAsFunction* swfdec_as_function_create (SwfdecAsContext *context, GType type, guint size); void swfdec_as_function_call (SwfdecAsFunction *function, SwfdecAsObject *thisp, guint n_args, const SwfdecAsValue *args, SwfdecAsValue *return_value); SwfdecAsFunction* swfdec_as_native_function_new (SwfdecAsContext *context, const char *name, SwfdecAsNative native, guint min_args); void swfdec_as_native_function_set_construct_type (SwfdecAsNativeFunction *function, GType type); void swfdec_as_native_function_set_object_type (SwfdecAsNativeFunction *function, GType type);
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()
.
typedef struct { } SwfdecAsFunction;
This is the base executable object in Swfdec. It is an abstract object. If you want to create functions yourself, use SwfdecAsNativeFunction.
void (*SwfdecAsNative) (SwfdecAsContext *context, SwfdecAsObject *thisp, guint argc, SwfdecAsValue *argv, SwfdecAsValue *retval);
This is the prototype for all native functions.
context : |
SwfdecAsContext |
thisp : |
the this object. WarningCan beNULL . |
argc : |
number of arguments passed to this function |
argv : |
the argc arguments passed to this function
|
retval : |
set to the return value. Initialized to undefined by default |
typedef struct { } SwfdecAsNativeFunction;
This is the object type for native functions.
SwfdecAsFunction* swfdec_as_function_create (SwfdecAsContext *context, GType type, guint size);
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.
context : |
a SwfdecAsFunction |
type : |
the type of function to create |
size : |
size of type
|
Returns : | a new object of type or NULL on OOM
|
void swfdec_as_function_call (SwfdecAsFunction *function, SwfdecAsObject *thisp, guint n_args, const SwfdecAsValue *args, SwfdecAsValue *return_value);
Calls the given function. This means a SwfdecAsFrame is created for the
function and pushed on top of the execution stack. The function is however
not executed. Call swfdec_as_context_run()
to execute it.
function : |
the SwfdecAsFunction to call |
thisp : |
this argument to use for the call or NULL for none
|
n_args : |
number of arguments to pass to the function |
args : |
the arguments to pass or NULL to read the last n_args stack elements
|
return_value : |
pointer for return value or NULL to push the return value to
the stack
|
SwfdecAsFunction* swfdec_as_native_function_new (SwfdecAsContext *context, const char *name, SwfdecAsNative native, guint min_args);
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.
context : |
a SwfdecAsContext |
name : |
name of the function |
native : |
function to call when executed |
min_args : |
minimum number of arguments required |
Returns : | a new SwfdecAsFunction or NULL on OOM
|
void swfdec_as_native_function_set_construct_type (SwfdecAsNativeFunction *function, GType type);
Sets the type
to be used when using function
as a constructor. If this is
not set, using function
as a constructor will create a SwfdecAsObject.
function : |
a SwfdecAsNativeFunction |
type : |
GType used when constructing an object with function
|
void swfdec_as_native_function_set_object_type (SwfdecAsNativeFunction *function, GType type);
Sets the required type for the this object to type
. If the this object
isn't of the required type, the function will not be called and its
return value will be undefined.
function : |
a SwfdecAsNativeFunction |
type : |
required GType for the this object |