31 #include <boost/random/mersenne_twister.hpp> 32 #include <boost/noncopyable.hpp> 50 class SharedObjectLibrary;
111 void setSWFVersion(
int v);
114 unsigned long int getTime()
const;
124 const std::string& getPlayerVersion()
const;
130 std::string getOSName()
const;
135 std::string getSystemLanguage()
const;
152 typedef boost::mt11213b
RNG;
156 RNG& randomNumberGenerator();
163 assert(_shLib.get());
175 void markReachableResources()
const;
199 const as_value* getRegister(
size_t index);
218 void setRegister(
size_t index,
const as_value& val);
241 return !_callStack.empty();
245 void dumpState(std::ostream&
o,
size_t limit = 0);
262 typedef std::map<unsigned int, as_c_function_ptr> FuncMap;
263 typedef std::map<unsigned int, FuncMap> AsNativeTable;
264 AsNativeTable _asNativeTable;
273 typedef std::array<as_value, 4> GlobalRegisters;
274 GlobalRegisters _globalRegisters;
279 std::unique_ptr<SharedObjectLibrary> _shLib;
290 getURI(
const VM& vm,
const std::string& str,
bool lowerCaseHint=
false)
307 inline const std::string&
324 _callFrame(_vm.pushCallFrame(func))
Definition: GnashKey.h:147
double toNumber(const as_value &v, const VM &vm)
Convert an as_value to a double.
Definition: VM.cpp:451
as_object * toObject(const as_value &v, VM &vm)
Convert an as_value to an object.
Definition: VM.cpp:457
FrameGuard(VM &vm, UserFunction &func)
Definition: VM.h:321
SharedObjectLibrary & getSharedObjectLibrary() const
Return the Shared Object Library.
Definition: VM.h:162
A class used to virtualize time flow.
Definition: VirtualClock.h:33
bool toBool(const as_value &v, const VM &vm)
Convert an as_value to boolean type.
Definition: VM.cpp:445
ActionScript value type.
Definition: as_value.h:94
void setConstantPool(const ConstantPool *pool)
Definition: VM.h:247
#define UNUSED(x)
Definition: utility.h:113
string_table & getStringTable() const
Get a reference to the string table used by the VM.
Definition: VM.h:117
CallFrame & callFrame()
Get the CallFrame we've just pushed.
Definition: VM.h:329
Global_as & getGlobal(const as_environment &env)
Definition: as_environment.cpp:651
A CallFrame is an element of a CallStack.
Definition: CallStack.h:43
as_value & convertToPrimitive(as_value &v, const VM &vm)
Convert to the appropriate primitive type.
Definition: VM.cpp:508
uri
Definition: test.py:12
Anonymous namespace for callbacks, local functions, event handlers etc.
Definition: dbus_ext.cpp:40
void newAdd(as_value &op1, const as_value &op2, const VM &vm)
Carry out ActionNewAdd.
Definition: VM.cpp:356
as_value(* as_c_function_ptr)(const fn_call &fn)
Definition: Property.h:34
Definition: SafeStack.h:41
as_value newLessThan(const as_value &op1, const as_value &op2, const VM &vm)
Carry out ActionSubtract.
Definition: VM.cpp:400
Definition: GnashKey.h:152
The base class for all ActionScript objects.
Definition: as_object.h:161
Definition: GnashKey.h:161
A general use string table.
Definition: string_table.h:41
boost::mt11213b RNG
Definition: VM.h:152
bool calling() const
Whether a function call is in progress.
Definition: VM.h:240
A URI for describing as_objects.
Definition: ObjectURI.h:44
NamedStrings
Definition: namedStrings.h:57
Definition: SharedObject_as.h:36
VirtualClock & getClock()
Get the VM clock.
Definition: VM.h:98
const std::string & toString(VM &vm, const ObjectURI &uri)
Definition: VM.h:308
ObjectURI getURI(const VM &vm, const std::string &str, bool lowerCaseHint=false)
Definition: VM.h:290
as_value & convertToBoolean(as_value &v, const VM &vm)
Force type to bool.
Definition: VM.cpp:501
~FrameGuard()
Definition: VM.h:333
A UserFunction is a callable function defined in ActionScript.
Definition: UserFunction.h:37
std::int32_t x
Definition: BitmapData_as.cpp:434
bool equals(const as_value &a, const as_value &b, const VM &vm)
Check if two values are equal.
Definition: VM.cpp:439
void subtract(as_value &op1, const as_value &op2, const VM &vm)
Carry out ActionSubtract.
Definition: VM.cpp:392
Definition: GnashKey.h:148
#define DSOEXPORT
Definition: dsodefs.h:55
as_value & convertToString(as_value &v, const VM &vm)
Force type to string.
Definition: VM.cpp:493
This class implements functions native to the player.
Definition: NativeFunction.h:40
The Global object ultimately contains all objects in an ActionScript run.
Definition: Global_as.h:49
as_value & convertToNumber(as_value &v, const VM &vm)
Force type to number.
Definition: VM.cpp:485
int getSWFVersion() const
Get SWF version context for the currently running actions.
Definition: VM.h:106
The AVM1 virtual machine.
Definition: VM.h:71
std::vector< CallFrame > CallStack
Definition: CallStack.h:146
std::int32_t y
Definition: BitmapData_as.cpp:435
SafeStack< as_value > & getStack()
Accessor for the VM's stack.
Definition: VM.h:88
#define DSOTEXPORT
Definition: dsodefs.h:63
key find(const std::string &to_find, bool insert_unfound=true)
Find a key for a string.
Definition: string_table.cpp:40
const std::string & toString(string_table &st) const
Definition: ObjectURI.h:80
Definition: GnashKey.h:165
Parameters/environment for builtin or user-defined functions callable from ActionScript.
Definition: fn_call.h:117
movie_root & getRoot(const as_environment &env)
Definition: as_environment.cpp:645
std::vector< const char * > ConstantPool
An indexed list of strings (must match the definition in action_buffer.h)
Definition: ConstantPool.h:27
const ConstantPool * getConstantPool() const
Definition: VM.h:249
std::int32_t toInt(const as_value &v, const VM &vm)
AS2-compatible conversion to 32bit integer.
Definition: VM.cpp:463
This class represents the 'Stage' and top-level movie.
Definition: movie_root.h:150