#include <string>
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/preprocessor/repetition/enum_params.hpp>
#include <boost/preprocessor/repetition/repeat.hpp>
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
#include <boost/preprocessor/seq/for_each.hpp>
#include <boost/preprocessor/facilities/empty.hpp>
#include <boost/scoped_ptr.hpp>
#include "as_object.h"
#include "fn_call.h"
#include "log.h"
#include "ClassHierarchy.h"
Go to the source code of this file.
Namespaces |
namespace | gnash |
| Anonymous namespace for callbacks, local functions, event handlers etc.
|
Macros |
#define | FUNC_PARAM(z, n, t) BOOST_PP_COMMA_IF(n) t arg##n |
| Helper macros for callMethod arguments.
|
#define | VALUE_ARG(z, n, t) BOOST_PP_COMMA_IF(n) arg##n |
#define | CALL_METHOD(x, n, t) |
| Call a member function of this object in an AS-compatible way.
|
#define | MAX_ARGS 4 |
| The maximum number of as_value arguments allowed in callMethod functions.
|
Functions |
as_object * | gnash::createObject (const Global_as &gl) |
as_object * | gnash::registerBuiltinObject (as_object &where, Global_as::Properties p, const ObjectURI &uri) |
| Register a built-in object.
|
as_object * | gnash::registerBuiltinClass (as_object &where, Global_as::ASFunction ctor, Global_as::Properties p, Global_as::Properties c, const ObjectURI &uri) |
| Register a built-in class.
|
DSOEXPORT as_value | gnash::invoke (const as_value &method, const as_environment &env, as_object *this_ptr, fn_call::Args &args, as_object *super=0, const movie_definition *callerDef=0) |
| Call an as_value on an as_object.
|
as_function * | gnash::getClassConstructor (const fn_call &fn, const std::string &s) |
| Convenience function for finding a class constructor.
|
as_value | gnash::emptyFunction (const fn_call &) |
Macro Definition Documentation
#define CALL_METHOD |
( |
|
x, |
|
|
|
n, |
|
|
|
t |
|
) |
| |
Value:inline as_value \
callMethod(as_object* obj,
const ObjectURI& uri BOOST_PP_COMMA_IF(
n)\
if (!obj) return as_value();\
as_value func;\
if (!obj->get_member(uri, &func)) return as_value();\
fn_call::Args args;\
BOOST_PP_EXPR_IF(
n, (args += BOOST_PP_REPEAT(n,
VALUE_ARG, BOOST_PP_EMPTY));)\
return
invoke(func, as_environment(
getVM(*obj)), obj, args);\
}
Call a member function of this object in an AS-compatible way.
This is a macro to cope with a varying number of arguments. The function signature is as follows: as_value callMethod(as_object* obj, const ObjectURI& uri, const as_value& arg1, ..., const as_value& argN); If the member function exists and is a function, invoke() is called on the member with the object as the this pointer.
- Parameters
-
obj | The object to call the method on. This may be null, in which case the call is a no-op. This is because calling methods on null or non-objects in AS is harmless. |
name | The name of the method. |
arg0..argN | The arguments to pass |
- Returns
- The return value of the call (possibly undefined).
#define FUNC_PARAM |
( |
|
z, |
|
|
|
n, |
|
|
|
t |
|
) |
| BOOST_PP_COMMA_IF(n) t arg##n |
Helper macros for callMethod arguments.
The maximum number of as_value arguments allowed in callMethod functions.
#define VALUE_ARG |
( |
|
z, |
|
|
|
n, |
|
|
|
t |
|
) |
| BOOST_PP_COMMA_IF(n) arg##n |