19 #ifndef GNASH_AS_METHOD_H 20 #define GNASH_AS_METHOD_H 69 void initPrototype(
Machine* machine);
74 _maxRegisters = maxRegisters;
109 _traits.push_back(t);
121 bool hasBody()
const {
return _body != NULL; }
129 return _needsActivation;
133 _needsActivation =
true;
143 std::uint32_t slotID,
Class *type);
152 std::uint32_t slotID,
Class *type);
155 std::uint32_t slotID,
Method *method);
165 Class* getReturnType()
const;
174 void setReturnType(
Class*
t);
182 bool isFinal()
const {
return _flags & FLAGS_FINAL; }
194 bool isPrivate()
const {
return _flags & FLAGS_PRIVATE; }
199 _flags = (_flags & ~(FLAGS_PUBLIC | FLAGS_PROTECTED)) | FLAGS_PRIVATE;
205 return _flags & FLAGS_PROTECTED;
211 _flags = (_flags & ~(FLAGS_PUBLIC | FLAGS_PRIVATE)) | FLAGS_PROTECTED; }
214 bool isPublic()
const {
return _flags & FLAGS_PUBLIC; }
218 _flags = (_flags & ~(FLAGS_PRIVATE | FLAGS_PROTECTED)) | FLAGS_PUBLIC;
243 return minArgumentCount() != maxArgumentCount();
266 FLAGS_PROTECTED = 0x02,
272 typedef std::map<string_table::key, asBinding> BindingContainer;
276 std::vector<Trait> _traits;
278 std::uint32_t _methodID;
283 std::uint32_t _bodyLength;
285 ArgumentList _arguments;
286 std::list<as_value> _optionalArguments;
288 unsigned char _flags;
290 std::uint32_t _maxRegisters;
292 std::uint32_t _scopeDepth;
293 std::uint32_t _maxScope;
294 std::uint32_t _maxStack;
296 bool _needsActivation;
void setFinal()
Set the method as final.
Definition: Method.h:186
bool hasBody() const
Definition: Method.h:121
The ActionScript bytecode of a single ABC tag in a SWF.
Definition: AbcBlock.h:208
Class describing a static property.
Definition: AbcBlock.h:71
CodeStream * getBody()
Definition: Method.h:136
as_function * getImplementation()
Get an object capable of executing this function. Note: This may be NULL, because we might have infor...
Definition: Method.h:255
bool isNative()
Definition: Method.h:120
void pushArgument(Class *t)
Push an argument of type t into the method definition.
Definition: Method.h:236
ActionScript value type.
Definition: as_value.h:94
An abstract property.
Definition: Property.h:276
void setMaxStack(std::uint32_t max)
Definition: Method.h:81
int maxArgumentCount() const
How many arguments are allowed? -1 means unknown.
Definition: Method.h:228
void setMaxArgumentCount(int i)
Set the required maximum arguments.
Definition: Method.h:231
Anonymous namespace for callbacks, local functions, event handlers etc.
Definition: dbus_ext.cpp:40
void setMaxScope(std::uint32_t max)
Definition: Method.h:89
void setMaxRegisters(std::uint32_t maxRegisters)
Definition: Method.h:73
abc_function * getPrototype()
Definition: Method.h:105
type
Definition: GnashKey.h:329
std::uint32_t maxScope() const
Definition: Method.h:93
Represent an ActionScript Namespace.
Definition: Namespace.h:48
void setScopeDepth(std::uint32_t depth)
Definition: Method.h:97
void setPrivate()
Make the method private.
Definition: Method.h:198
The base class for all ActionScript objects.
Definition: as_object.h:161
bool isFinal() const
Is the method final? If so, it may not be overridden.
Definition: Method.h:182
void setBody(CodeStream *b)
Definition: Method.h:137
Definition: CodeStream.h:40
void setMinArgumentCount(int i)
Set the required minimum arguments.
Definition: Method.h:225
Definition: GnashKey.h:166
as_object * construct(as_object *)
Definition: Method.h:123
void setNeedsActivation()
Definition: Method.h:132
A class to represent AS3 Classes.
Definition: Class.h:75
bool isPrivate() const
Is the method private?
Definition: Method.h:194
const ArgumentList & getArgumentList() const
Get a reference to a list of argument types.
Definition: Method.h:249
int minArgumentCount() const
How many arguments are required? -1 means unknown.
Definition: Method.h:222
Property asBinding
Definition: Method.h:48
std::uint32_t scopeDepth() const
Definition: Method.h:101
void setMethodID(std::uint32_t m)
Definition: Method.h:65
Definition: klash_part.cpp:329
void setProtected()
Make the method protected.
Definition: Method.h:210
bool needsActivation() const
Definition: Method.h:128
Definition: GnashKey.h:148
void pushOptional(const as_value &v)
Push an optional argument's default value.
Definition: Method.h:239
void setBodyLength(std::uint32_t length)
Definition: Method.h:79
The virtual machine for executing ABC (ActionScript Bytecode).
Definition: Machine.h:73
bool isProtected() const
Is the method protected?
Definition: Method.h:204
std::uint32_t methodID() const
Definition: Method.h:61
std::uint32_t getMaxRegisters()
Definition: Method.h:71
bool isPublic() const
Is the method public?
Definition: Method.h:214
void unsetFinal()
Unset the method as final. Not final anymore.
Definition: Method.h:190
Definition: GnashKey.h:155
std::list< Class * > ArgumentList
Definition: Method.h:57
Definition: GnashKey.h:159
std::uint32_t getBodyLength()
Definition: Method.h:77
Definition: GnashKey.h:165
ABC-defined Function.
Definition: abc_function.h:40
std::size_t key
Definition: string_table.h:83
std::string name
Definition: LocalConnection_as.cpp:149
std::uint32_t maxStack() const
Definition: Method.h:85
void addTrait(const Trait &t)
Add a Trait to this Method.
Definition: Method.h:108
ActionScript Function, either builtin or SWF-defined.
Definition: as_function.h:62
bool optionalArguments() const
Are any of the arguments optional?
Definition: Method.h:242
void setPublic()
Make the method public.
Definition: Method.h:217