maxscript/compiler/thunks.h File Reference

thunks.h File Reference

Classes

class  Thunk
 
class  GlobalThunk
 
class  ConstGlobalThunk
 
class  SystemGlobalThunk
 
class  LocalThunk
 
class  IndirectLocalThunk
 
class  ContextThunk
 
class  FreeThunk
 
class  IndirectFreeThunk
 
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  ScopedPushPlugin
 Class that uses the RAII idiom to push/pop the plugin stored in thread local current_plugin. More...
 
class  ScopedPushStruct
 Class that uses the RAII idiom to push/pop the struct stored in thread local current_struct. More...
 
class  StructMemberThunk
 
class  ThunkReference
 
class  DerefThunk
 
class  OwnerThunk
 

Macros

#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 is_structmemberthunk(v)   ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_STRUCT_MEM_THUNK_TAG)
 
#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)
 

Macro Definition Documentation

#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 is_structmemberthunk (   v)    ((DbgVerify(!is_sourcepositionwrapper(v)), (v))->tag == INTERNAL_STRUCT_MEM_THUNK_TAG)
#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)