ActionScript execution environment. More...
#include <as_environment.h>
Public Types | |
| typedef std::vector< as_object * > | ScopeStack |
| A stack of objects used for variables/members lookup. | |
Public Member Functions | |
| as_environment (VM &vm) | |
| VM & | getVM () const |
| DisplayObject * | get_target () const |
| void | set_target (DisplayObject *target) |
| Set default target for timeline opcodes. | |
| void | set_original_target (DisplayObject *target) |
| DisplayObject * | get_original_target () |
| void | reset_target () |
| void | push (const as_value &val) |
| Push a value on the stack. | |
| as_value | pop () |
| Pops an as_value off the stack top and return it. | |
| as_value & | top (size_t dist) |
| Get stack value at the given distance from top. | |
| as_value & | bottom (size_t index) const |
| Get stack value at the given distance from bottom. | |
| void | drop (size_t count) |
| Drop 'count' values off the top of the stack. | |
| size_t | stack_size () const |
| bool | delVariableRaw (const std::string &varname, const ScopeStack &scopeStack) |
| Delete a variable, w/out support for the path, using a ScopeStack. | |
| as_value | get_variable (const std::string &varname, const ScopeStack &scopeStack, as_object **retTarget=NULL) const |
| Return the (possibly UNDEFINED) value of the named var. | |
| void | set_variable (const std::string &path, const as_value &val, const ScopeStack &scopeStack) |
| Given a path to variable, set its value. | |
| void | markReachableResources () const |
| Mark all reachable resources. | |
| DisplayObject * | find_target (const std::string &path) const |
| Find the sprite/movie referenced by the given path. | |
| as_object * | find_object (const std::string &path, const ScopeStack *scopeStack=0) const |
| Find the object referenced by the given path. | |
| int | get_version () const |
| Return the SWF version we're running for. | |
ActionScript execution environment.
| typedef std::vector<as_object*> gnash::as_environment::ScopeStack |
A stack of objects used for variables/members lookup.
| gnash::as_environment::as_environment | ( | VM & | vm | ) |
References gnash::string_table::find(), gnash::getStringTable(), and gnash::Property::setValue().
| as_value& gnash::as_environment::bottom | ( | size_t | index | ) | const [inline] |
Get stack value at the given distance from bottom.
bottom(stack_size()-1) is actual stack top
Throw StackException if index is out of range
References gnash::SafeStack< T >::value().
| bool gnash::as_environment::delVariableRaw | ( | const std::string & | varname, | |
| const ScopeStack & | scopeStack | |||
| ) |
Delete a variable, w/out support for the path, using a ScopeStack.
| varname | Variable name. Must not contain path elements. TODO: should be case-insensitive up to SWF6. NOTE: no case conversion is performed currently, so make sure you do it yourself. Note that ActionExec performs the conversion before calling this method. | |
| scopeStack | The Scope stack to use for lookups. |
Referenced by gnash::ActionExec::delVariable().
| void gnash::as_environment::drop | ( | size_t | count | ) | [inline] |
Drop 'count' values off the top of the stack.
References gnash::SafeStack< T >::drop(), and gnash::SafeStack< T >::size().
Referenced by gnash::ActionExec::operator()().
| as_object * gnash::as_environment::find_object | ( | const std::string & | path, | |
| const ScopeStack * | scopeStack = 0 | |||
| ) | const |
Find the object referenced by the given path.
Supports both /slash/syntax and dot.syntax Case insensitive for SWF up to 6, sensitive from 7 up
| DisplayObject * gnash::as_environment::find_target | ( | const std::string & | path_in | ) | const |
Find the sprite/movie referenced by the given path.
Supports both /slash/syntax and dot.syntax Case insensitive for SWF up to 6, sensitive from 7 up
Supports both /slash/syntax and dot.syntax
References gnash::key::p.
| DisplayObject* gnash::as_environment::get_original_target | ( | ) | [inline] |
Referenced by gnash::Function2::call(), and gnash::ActionExec::getThisPointer().
| DisplayObject* gnash::as_environment::get_target | ( | ) | const [inline] |
Referenced by gnash::Function2::call(), gnash::ActionExec::getTarget(), and gnash::ActionExec::operator()().
| as_value gnash::as_environment::get_variable | ( | const std::string & | varname, | |
| const ScopeStack & | scopeStack, | |||
| as_object ** | retTarget = NULL | |||
| ) | const |
Return the (possibly UNDEFINED) value of the named var.
| varname | Variable name. Can contain path elements. TODO: should be case-insensitive up to SWF6. NOTE: no case conversion is performed currently, so make sure you do it yourself. Note that ActionExec performs the conversion before calling this method. | |
| scopeStack | The Scope stack to use for lookups. | |
| retTarget | If not NULL, the pointer will be set to the actual object containing the found variable (if found). |
Referenced by gnash::ActionExec::getVariable().
| int gnash::as_environment::get_version | ( | ) | const |
Return the SWF version we're running for.
NOTE: this is the version encoded in the first loaded movie, and cannot be changed during play even if replacing the root movie with an externally loaded one.
| VM& gnash::as_environment::getVM | ( | ) | const [inline] |
Referenced by gnash::fn_call::getVM(), and gnash::getVM().
| void gnash::as_environment::markReachableResources | ( | ) | const |
Mark all reachable resources.
Reachable resources from an as_environment would be global registers, stack (expected to be empty actually), stack frames and targets (original and current).
| as_value gnash::as_environment::pop | ( | ) | [inline] |
Pops an as_value off the stack top and return it.
References gnash::SafeStack< T >::pop().
| void gnash::as_environment::push | ( | const as_value & | val | ) | [inline] |
Push a value on the stack.
References gnash::SafeStack< T >::push().
Referenced by gnash::PropertyList::enumerateKeys().
| void gnash::as_environment::reset_target | ( | ) | [inline] |
| void gnash::as_environment::set_original_target | ( | DisplayObject * | target | ) | [inline] |
Referenced by gnash::Function::call(), and gnash::TargetGuard::~TargetGuard().
| void gnash::as_environment::set_target | ( | DisplayObject * | target | ) |
Set default target for timeline opcodes.
| target | A DisplayObject to apply timeline opcodes on. Zero is a valid target, disabling timeline opcodes (would get ignored). |
Referenced by gnash::Function::call(), and gnash::TargetGuard::~TargetGuard().
| void gnash::as_environment::set_variable | ( | const std::string & | path, | |
| const as_value & | val, | |||
| const ScopeStack & | scopeStack | |||
| ) |
Given a path to variable, set its value.
If no variable with that name is found, a new one is created.
For path-less variables, this would act as a proxy for set_variable_raw.
| path | Variable path. TODO: should be case-insensitive up to SWF6. | |
| val | The value to assign to the variable. | |
| scopeStack | The Scope stack to use for lookups. |
Referenced by gnash::ActionExec::setLocalVariable(), and gnash::ActionExec::setVariable().
| size_t gnash::as_environment::stack_size | ( | ) | const [inline] |
References gnash::SafeStack< T >::size().
Referenced by gnash::ActionExec::operator()().
| as_value& gnash::as_environment::top | ( | size_t | dist | ) | [inline] |
Get stack value at the given distance from top.
top(0) is actual stack top
Throw StackException if index is out of range
References gnash::SafeStack< T >::top().
Referenced by gnash::ActionExec::operator()().
1.7.1