#include "..\kernel\value.h"#include "..\foundation\streams.h"#include "..\ui\rollouts.h"#include "..\ui\uiextend.h"Go to the source code of this file.
Classes |
|
| class | GlobalThunk |
| class | ConstGlobalThunk |
| class | SystemGlobalThunk |
| class | LocalThunk |
| class | IndirectLocalThunk |
| class | ContextThunk |
| class | FreeThunk |
| class | IndirectFreeThunk |
| class | ClosureFreeThunk |
| class | PropertyThunk |
| class | FnCallPropertyThunk |
| class | IndexThunk |
| class | RolloutControlThunk |
| class | RolloutLocalThunk |
| class | ConstRolloutLocalThunk |
| class | ToolLocalThunk |
| class | CodeBlockLocalThunk |
| class | RCMenuItemThunk |
| class | RCMenuLocalThunk |
| class | PluginLocalThunk |
| class | ConstPluginLocalThunk |
| class | PluginParamThunk |
| class | StructMemberThunk |
| class | ThunkReference |
| class | DerefThunk |
| class | OwnerThunk |
Defines |
|
| #define | is_thunk(v) ((v)->_is_thunk()) |
| #define | is_indirect_thunk(v) ((v)->_is_indirect_thunk()) |
| #define | is_globalthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_GLOBAL_THUNK_TAG) |
| #define | is_constglobalthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_CONST_GLOBAL_THUNK_TAG) |
| #define | is_systemglobalthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_SYS_GLOBAL_THUNK_TAG) |
| #define | is_localthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_LOCAL_THUNK_TAG) |
| #define | is_contextthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_CONTEXT_THUNK_TAG) |
| #define | is_freethunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_FREE_THUNK_TAG) |
| #define | is_propertythunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_PROP_THUNK_TAG) |
| #define | is_indexthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_INDEX_THUNK_TAG) |
| #define | is_rolloutthunk(v) ((v)->_is_rolloutthunk()) |
| #define | is_rolloutlocalthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_RO_LOCAL_THUNK_TAG) |
| #define | is_toollocalthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_TOOL_LOCAL_THUNK_TAG) |
| #define | is_codeblocklocalthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_CODEBLOCK_LOCAL_TAG) |
| #define | is_rcmenuitemthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_RCMENU_ITEM_THUNK_TAG) |
| #define | is_rcmenulocalthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_RCMENU_LOCAL_THUNK_TAG) |
| #define | is_rcmenuthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_RCMENU_LOCAL_THUNK_TAG || (v)->tag == INTERNAL_RCMENU_ITEM_THUNK_TAG) |
| #define | is_pluginlocalthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_PLUGIN_LOCAL_THUNK_TAG) |
| #define | is_pluginparamthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_PLUGIN_PARAM_THUNK_TAG) |
| #define | push_plugin(_pi) |
| #define | pop_plugin() thread_local(current_plugin) = _save_cp; |
| #define | push_struct(_struct) |
| #define | pop_struct() thread_local(current_struct) = _save_struct; |
| #define | is_thunkref(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_THUNK_REF_TAG) |
| #define | is_derefthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_THUNK_DEREF_TAG) |
| #define | is_ownerthunk(v) ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_OWNER_THUNK_TAG) |
Functions |
|
| visible_class (Thunk) class Thunk | |
| #define is_thunk | ( | v | ) | ((v)->_is_thunk()) |
| #define is_indirect_thunk | ( | v | ) | ((v)->_is_indirect_thunk()) |
| #define is_globalthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_GLOBAL_THUNK_TAG) |
| #define is_constglobalthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_CONST_GLOBAL_THUNK_TAG) |
| #define is_systemglobalthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_SYS_GLOBAL_THUNK_TAG) |
| #define is_localthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_LOCAL_THUNK_TAG) |
| #define is_contextthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_CONTEXT_THUNK_TAG) |
| #define is_freethunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_FREE_THUNK_TAG) |
| #define is_propertythunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_PROP_THUNK_TAG) |
| #define is_indexthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_INDEX_THUNK_TAG) |
| #define is_rolloutthunk | ( | v | ) | ((v)->_is_rolloutthunk()) |
| #define is_rolloutlocalthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_RO_LOCAL_THUNK_TAG) |
| #define is_toollocalthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_TOOL_LOCAL_THUNK_TAG) |
| #define is_codeblocklocalthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_CODEBLOCK_LOCAL_TAG) |
| #define is_rcmenuitemthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_RCMENU_ITEM_THUNK_TAG) |
| #define is_rcmenulocalthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_RCMENU_LOCAL_THUNK_TAG) |
| #define is_rcmenuthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_RCMENU_LOCAL_THUNK_TAG || (v)->tag == INTERNAL_RCMENU_ITEM_THUNK_TAG) |
| #define is_pluginlocalthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_PLUGIN_LOCAL_THUNK_TAG) |
| #define is_pluginparamthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_PLUGIN_PARAM_THUNK_TAG) |
| #define push_plugin | ( | _pi | ) |
MSPlugin* _save_cp = thread_local(current_plugin); \ thread_local(current_plugin) = _pi;
| #define pop_plugin | ( | ) | thread_local(current_plugin) = _save_cp; |
| #define push_struct | ( | _struct | ) |
Struct* _save_struct = thread_local(current_struct); \ thread_local(current_struct) = _struct;
| #define pop_struct | ( | ) | thread_local(current_struct) = _save_struct; |
| #define is_thunkref | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_THUNK_REF_TAG) |
| #define is_derefthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_THUNK_DEREF_TAG) |
| #define is_ownerthunk | ( | v | ) | ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_OWNER_THUNK_TAG) |
| visible_class | ( | Thunk | ) |
Definition at line 21 of file thunks.h.
: public Value
{
public:
Value* name;
BOOL clear_container; // outer-level prop in a prop sequence, clear current_container when done
classof_methods (Thunk, Value);
# define is_thunk(v) ((v)->_is_thunk())
# define is_indirect_thunk(v) ((v)->_is_indirect_thunk())
BOOL _is_thunk() { DbgAssert(!is_sourcepositionwrapper(this)); return TRUE; }
ScripterExport void gc_trace();
Thunk() : clear_container(FALSE), name(NULL) { }
Thunk* to_thunk() {return this; }
virtual Thunk* make_free_thunk(int level) { return NULL; }
void assign(Value* val) { assign_vf(&val, 1); }
ScripterExport Value* get_property(Value** arg_list, int count);
ScripterExport Value* set_property(Value** arg_list, int count);
};