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))
365 void newAdd(as_value& op1,
const as_value& op2,
const VM& vm);
372 void subtract(as_value& op1,
const as_value& op2,
const VM& vm);
379 as_value
newLessThan(
const as_value& op1,
const as_value& op2,
const VM& vm);
394 bool equals(
const as_value&
a,
const as_value&
b,
const VM& vm);
401 bool toBool(
const as_value&
v,
const VM& vm);
415 as_object*
toObject(
const as_value&
v, VM& vm);
428 std::int32_t
toInt(
const as_value& val,
const VM& vm);
Definition: GnashKey.h:147
const std::string & toString(string_table &st) const
Definition: ObjectURI.h:80
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
const ConstantPool * getConstantPool() const
Definition: VM.h:249
FrameGuard(VM &vm, UserFunction &func)
Definition: VM.h:321
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
SWFStream & s
Definition: DefineBitsTag.cpp:71
ActionScript value type.
Definition: as_value.h:94
void setConstantPool(const ConstantPool *pool)
Definition: VM.h:247
#define UNUSED(x)
Definition: utility.h:113
void popCallFrame()
Remove a function call from the call frame.
Definition: VM.cpp:261
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
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
int getSWFVersion() const
Get SWF version context for the currently running actions.
Definition: VM.h:106
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
Definition: GnashKey.h:161
A general use string table.
Definition: string_table.h:41
boost::mt11213b RNG
Definition: VM.h:152
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
bool calling() const
Whether a function call is in progress.
Definition: VM.h:240
~FrameGuard()
Definition: VM.h:333
A UserFunction is a callable function defined in ActionScript.
Definition: UserFunction.h:37
tuple v
Definition: test.py:11
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
SharedObjectLibrary & getSharedObjectLibrary() const
Return the Shared Object Library.
Definition: VM.h:162
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
string_table & getStringTable() const
Get a reference to the string table used by the VM.
Definition: VM.h:117
#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
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
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