Swfdec Reference Manual | ||||
---|---|---|---|---|
#include <swfdec/swfdec.h> SwfdecAsFrame; SwfdecAsFrame* swfdec_as_frame_get_next (SwfdecAsFrame *frame); SwfdecScript* swfdec_as_frame_get_script (SwfdecAsFrame *frame); SwfdecAsObject* swfdec_as_frame_get_this (SwfdecAsFrame *frame); SwfdecAsStackIterator; SwfdecAsValue* swfdec_as_stack_iterator_init (SwfdecAsStackIterator *iter, SwfdecAsFrame *frame); SwfdecAsValue* swfdec_as_stack_iterator_init_arguments (SwfdecAsStackIterator *iter, SwfdecAsFrame *frame); SwfdecAsValue* swfdec_as_stack_iterator_next (SwfdecAsStackIterator *iter);
This section is only interesting for people that want to look into debugging.
A SwfdecAsFrame describes a currently executing function while it is
running. On every new function call, a new frame is created and pushed on top
of the frame stack. To get the topmost one, use
swfdec_as_context_get_frame()
. After that you can inspect various properties
of the frame, like the current stack.
a SwfdecAsFrame is a SwfdecAsObject, so it is possible to set variables on
it. These are local variables inside the executing function. So you can use
functions such as swfdec_as_object_get_variable()
to inspect them.
typedef struct _SwfdecAsFrame SwfdecAsFrame;
the object used to represent an executing function.
SwfdecAsFrame* swfdec_as_frame_get_next (SwfdecAsFrame *frame);
Gets the next frame in the frame stack. The next frame is the frame that
will be executed after this frame
.
|
a SwfdecAsFrame |
Returns : |
the next SwfdecAsFrame or NULL if this is the bottommost frame.
|
SwfdecScript* swfdec_as_frame_get_script (SwfdecAsFrame *frame);
Gets the script associated with the given frame
. If the frame references
a native function, there will be no script and this function returns NULL
.
|
a SwfdecAsFrame |
Returns : |
The script executed by this frame or NULL
|
SwfdecAsObject* swfdec_as_frame_get_this (SwfdecAsFrame *frame);
Gets the this object of the given frame
. If the frame has no this object,
NULL
is returned.
|
a SwfdecAsFrame |
Returns : |
The this object of the frame or NULL if none.
|
typedef struct { } SwfdecAsStackIterator;
This is a struct used to walk the stack of a frame. It is supposed to be allocated on the stack. All of its members are private.
SwfdecAsValue* swfdec_as_stack_iterator_init (SwfdecAsStackIterator *iter, SwfdecAsFrame *frame);
Initializes iter
to walk the stack of frame
. The first value on the stack
will alread be returned. This makes it possible to write a simple loop to
print the whole stack:
for (value = swfdec_as_stack_iterator_init (&iter, frame); value != NULL; value = swfdec_as_stack_iterator_next (&iter)) { char *s = swfdec_as_value_to_debug (value); g_print ("%s\n", s); g_free (s); }
|
a SwfdecStackIterator |
|
the frame to initialize from |
Returns : |
the topmost value on the stack of frame or NULL if none
|
SwfdecAsValue* swfdec_as_stack_iterator_init_arguments (SwfdecAsStackIterator *iter, SwfdecAsFrame *frame);
Initializes a stack iterator to walk the arguments passed to the given frame
. See
swfdec_as_stack_iterator_init()
about suggested iterator usage.
|
iterator to be initialized |
|
the frame to initialize from |
Returns : |
The value of the first argument |
SwfdecAsValue* swfdec_as_stack_iterator_next (SwfdecAsStackIterator *iter);
Gets the next value on the stack.
|
a SwfdecAsStackIterator |
Returns : |
The next value on the stack or NULL if no more values are on the stack
|