3ds Max C++ API Reference
value_locals.h File Reference

Classes

class  MXS_Exit_ValueLocal_Scope
 Class that uses the RAII idiom to push/pop the thread local current_locals_frame. More...
 
class  MXS_Exit_ValueLocalArray_Scope
 Class that uses the RAII idiom to push/pop the thread local current_locals_frame. More...
 
class  ScopedValueTempArray
 Class that uses the RAII idiom to allocate and deallocate value temp arrays. More...
 
class  ScopedSaveCurrentFrames
 Class that uses the RAII idiom to save and restore the current frame data. More...
 
class  ScopedMaxScriptSEHandler
 Class that uses the RAII idiom to push/pop setting a structured error handler. More...
 
class  ScopedMaxScriptEvaluationContext
 Class that uses the RAII idiom to create a maxscript visible stack frame. More...
 
class  ScopedPushControl
 Class that uses the RAII idiom to push/pop the thread local current_controller. More...
 

Macros

#define one_value_local(n1)
 
#define one_value_local_noFrameValidate(n1)
 
#define one_typed_value_local(n1)
 
#define one_typed_value_local_noFrameValidate(n1)
 
#define two_value_locals(n1, n2)
 
#define two_typed_value_locals(n1, n2)
 
#define three_value_locals(n1, n2, n3)
 
#define three_typed_value_locals(n1, n2, n3)
 
#define four_value_locals(n1, n2, n3, n4)
 
#define four_typed_value_locals(n1, n2, n3, n4)
 
#define five_value_locals(n1, n2, n3, n4, n5)
 
#define five_typed_value_locals(n1, n2, n3, n4, n5)
 
#define six_value_locals(n1, n2, n3, n4, n5, n6)
 
#define six_typed_value_locals(n1, n2, n3, n4, n5, n6)
 
#define seven_value_locals(n1, n2, n3, n4, n5, n6, n7)
 
#define seven_typed_value_locals(n1, n2, n3, n4, n5, n6, n7)
 
#define eight_value_locals(n1, n2, n3, n4, n5, n6, n7, n8)
 
#define eight_typed_value_locals(n1, n2, n3, n4, n5, n6, n7, n8)
 
#define nine_value_locals(n1, n2, n3, n4, n5, n6, n7, n8, n9)
 
#define nine_typed_value_locals(n1, n2, n3, n4, n5, n6, n7, n8, n9)
 
#define ten_value_locals(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10)
 
#define ten_typed_value_locals(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10)
 
#define eleven_value_locals(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11)
 
#define eleven_typed_value_locals(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11)
 
#define twelve_value_locals(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12)
 
#define twelve_typed_value_locals(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12)
 
#define thirteen_value_locals(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13)
 
#define thirteen_typed_value_locals(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13)
 
#define fourteen_value_locals(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14)
 
#define fourteen_typed_value_locals(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14)
 
#define value_local_array(var, count)
 
#define one_value_local_tls(n1)
 
#define one_value_local_noFrameValidate_tls(n1)
 
#define one_typed_value_local_tls(n1)
 
#define one_typed_value_local_noFrameValidate_tls(n1)
 
#define two_value_locals_tls(n1, n2)
 
#define two_typed_value_locals_tls(n1, n2)
 
#define three_value_locals_tls(n1, n2, n3)
 
#define three_typed_value_locals_tls(n1, n2, n3)
 
#define four_value_locals_tls(n1, n2, n3, n4)
 
#define four_typed_value_locals_tls(n1, n2, n3, n4)
 
#define five_value_locals_tls(n1, n2, n3, n4, n5)
 
#define five_typed_value_locals_tls(n1, n2, n3, n4, n5)
 
#define six_value_locals_tls(n1, n2, n3, n4, n5, n6)
 
#define six_typed_value_locals_tls(n1, n2, n3, n4, n5, n6)
 
#define seven_value_locals_tls(n1, n2, n3, n4, n5, n6, n7)
 
#define seven_typed_value_locals_tls(n1, n2, n3, n4, n5, n6, n7)
 
#define eight_value_locals_tls(n1, n2, n3, n4, n5, n6, n7, n8)
 
#define eight_typed_value_locals_tls(n1, n2, n3, n4, n5, n6, n7, n8)
 
#define nine_value_locals_tls(n1, n2, n3, n4, n5, n6, n7, n8, n9)
 
#define nine_typed_value_locals_tls(n1, n2, n3, n4, n5, n6, n7, n8, n9)
 
#define ten_value_locals_tls(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10)
 
#define ten_typed_value_locals_tls(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10)
 
#define eleven_value_locals_tls(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11)
 
#define eleven_typed_value_locals_tls(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11)
 
#define twelve_value_locals_tls(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12)
 
#define twelve_typed_value_locals_tls(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12)
 
#define thirteen_value_locals_tls(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13)
 
#define thirteen_typed_value_locals_tls(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13)
 
#define fourteen_value_locals_tls(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14)
 
#define fourteen_typed_value_locals_tls(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14)
 
#define value_local_array_tls(var, count)
 
#define return_value(r)   return templated_return_value_fn(r)
 
#define return_value_tls(r)   return templated_return_value_fn_tls(r, _tls)
 
#define save_current_source()
 
#define restore_current_source()
 
#define save_current_source_no_pos()
 
#define restore_current_source_no_pos()
 
#define save_current_source_pos()
 
#define restore_current_source_pos()
 
#define save_current_source_to_frame()
 
#define save_current_source_to_frame_no_pos()
 
#define save_current_source_to_frame_pos()
 
#define save_current_source_to_frame_no_file()
 
#define save_current_source_tls()
 
#define restore_current_source_tls()
 
#define save_current_source_no_pos_tls()
 
#define restore_current_source_no_pos_tls()
 
#define save_current_source_pos_tls()
 
#define restore_current_source_pos_tls()
 
#define save_current_source_to_frame_tls()
 
#define save_current_source_to_frame_no_pos_tls()
 
#define save_current_source_to_frame_pos_tls()
 
#define save_current_source_to_frame_no_file_tls()
 

Functions

template<typename Type >
Type templated_return_value_fn (Type r)
 
template<typename Type >
Type templated_return_value_fn_tls (Type r, MAXScript_TLS *_tls)
 
ScripterExport void save_error_source_data (MAXScript_TLS *tls=nullptr)
 
ScripterExport void clear_error_source_data (MAXScript_TLS *tls=nullptr)
 

Macro Definition Documentation

◆ one_value_local

#define one_value_local (   n1)
Value:
struct { int count; Value** link; Value* n1; } vl = \
{ 1, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;
#define thread_local(x)
Definition: MAXScript_TLS.h:46
#define NULL
Definition: autoptr.h:18
Definition: value.h:107

◆ one_value_local_noFrameValidate

#define one_value_local_noFrameValidate (   n1)
Value:
struct { int count; Value** link; Value* n1; } vl = \
{ 1, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(false);

◆ one_typed_value_local

#define one_typed_value_local (   n1)
Value:
struct { int count; Value** link; n1; } vl = \
{ 1, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ one_typed_value_local_noFrameValidate

#define one_typed_value_local_noFrameValidate (   n1)
Value:
struct { int count; Value** link; n1; } vl = \
{ 1, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(false);

◆ two_value_locals

#define two_value_locals (   n1,
  n2 
)
Value:
struct { int count; Value** link; Value *n1, *n2; } vl = \
{ 2, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ two_typed_value_locals

#define two_typed_value_locals (   n1,
  n2 
)
Value:
struct { int count; Value** link; n1; n2; } vl = \
{ 2, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ three_value_locals

#define three_value_locals (   n1,
  n2,
  n3 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3; } vl = \
{ 3, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ three_typed_value_locals

#define three_typed_value_locals (   n1,
  n2,
  n3 
)
Value:
struct { int count; Value** link; n1; n2; n3; } vl = \
{ 3, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ four_value_locals

#define four_value_locals (   n1,
  n2,
  n3,
  n4 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4; } vl = \
{ 4, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ four_typed_value_locals

#define four_typed_value_locals (   n1,
  n2,
  n3,
  n4 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; } vl = \
{ 4, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ five_value_locals

#define five_value_locals (   n1,
  n2,
  n3,
  n4,
  n5 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5; } vl = \
{ 5, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ five_typed_value_locals

#define five_typed_value_locals (   n1,
  n2,
  n3,
  n4,
  n5 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; } vl = \
{ 5, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ six_value_locals

#define six_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6; } vl = \
{ 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ six_typed_value_locals

#define six_typed_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; } vl = \
{ 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ seven_value_locals

#define seven_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7; } vl = \
{ 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ seven_typed_value_locals

#define seven_typed_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; } vl = \
{ 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ eight_value_locals

#define eight_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7, *n8; } vl = \
{ 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ eight_typed_value_locals

#define eight_typed_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; n8; } vl = \
{ 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ nine_value_locals

#define nine_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7, *n8, *n9; } vl = \
{ 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ nine_typed_value_locals

#define nine_typed_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; n8; n9; } vl = \
{ 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ ten_value_locals

#define ten_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7, *n8, *n9, *n10; } vl = \
{ 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ ten_typed_value_locals

#define ten_typed_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; n8; n9; n10; } vl = \
{ 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ eleven_value_locals

#define eleven_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7, *n8, *n9, *n10, *n11; } vl = \
{ 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ eleven_typed_value_locals

#define eleven_typed_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; n8; n9; n10; n11; } vl = \
{ 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ twelve_value_locals

#define twelve_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11,
  n12 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7, *n8, *n9, *n10, *n11, *n12; } vl = \
{ 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ twelve_typed_value_locals

#define twelve_typed_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11,
  n12 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; n8; n9; n10; n11; n12; } vl = \
{ 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ thirteen_value_locals

#define thirteen_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11,
  n12,
  n13 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7, *n8, *n9, *n10, *n11, *n12, *n13; } vl = \
{ 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ thirteen_typed_value_locals

#define thirteen_typed_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11,
  n12,
  n13 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; n8; n9; n10; n11; n12; n13; } vl = \
{ 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ fourteen_value_locals

#define fourteen_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11,
  n12,
  n13,
  n14 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7, *n8, *n9, *n10, *n11, *n12, *n13, *n14; } vl = \
{ 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ fourteen_typed_value_locals

#define fourteen_typed_value_locals (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11,
  n12,
  n13,
  n14 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; n8; n9; n10; n11; n12; n13; n14; } vl = \
{ 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
thread_local(current_locals_frame) = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ value_local_array

#define value_local_array (   var,
  count 
)
Value:
MAXScript_TLS* _## var ##_tls = (MAXScript_TLS*)TlsGetValue(thread_locals_index); \
void* _## var ##_alloc_ptr = _malloca(((count) + 2) * sizeof(Value*)); \
var = &((Value**)_## var ##_alloc_ptr)[2]; \
memset(var, 0, (count) * sizeof(Value*)); \
var[-2] = (Value*)(static_cast<INT_PTR>(count)); \
var[-1] = (Value*)_## var ##_tls->current_locals_frame; \
_## var ##_tls->current_locals_frame = &var[-2]; \
MXS_Exit_ValueLocalArray_Scope _## var ##_Exit_ValueLocal_Scope(_## var ##_alloc_ptr, _## var ##_tls);
ScripterExport int thread_locals_index
Class that uses the RAII idiom to push/pop the thread local current_locals_frame.
Definition: value_locals.h:36
Definition: MAXScript_TLS.h:34

◆ one_value_local_tls

#define one_value_local_tls (   n1)
Value:
struct { int count; Value** link; Value* n1; } vl = \
{ 1, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ one_value_local_noFrameValidate_tls

#define one_value_local_noFrameValidate_tls (   n1)
Value:
struct { int count; Value** link; Value* n1; } vl = \
{ 1, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(false, _tls);

◆ one_typed_value_local_tls

#define one_typed_value_local_tls (   n1)
Value:
struct { int count; Value** link; n1; } vl = \
{ 1, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ one_typed_value_local_noFrameValidate_tls

#define one_typed_value_local_noFrameValidate_tls (   n1)
Value:
struct { int count; Value** link; n1; } vl = \
{ 1, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(false, _tls);

◆ two_value_locals_tls

#define two_value_locals_tls (   n1,
  n2 
)
Value:
struct { int count; Value** link; Value *n1, *n2; } vl = \
{ 2, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ two_typed_value_locals_tls

#define two_typed_value_locals_tls (   n1,
  n2 
)
Value:
struct { int count; Value** link; n1; n2; } vl = \
{ 2, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ three_value_locals_tls

#define three_value_locals_tls (   n1,
  n2,
  n3 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3; } vl = \
{ 3, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ three_typed_value_locals_tls

#define three_typed_value_locals_tls (   n1,
  n2,
  n3 
)
Value:
struct { int count; Value** link; n1; n2; n3; } vl = \
{ 3, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ four_value_locals_tls

#define four_value_locals_tls (   n1,
  n2,
  n3,
  n4 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4; } vl = \
{ 4, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ four_typed_value_locals_tls

#define four_typed_value_locals_tls (   n1,
  n2,
  n3,
  n4 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; } vl = \
{ 4, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ five_value_locals_tls

#define five_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5; } vl = \
{ 5, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ five_typed_value_locals_tls

#define five_typed_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; } vl = \
{ 5, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ six_value_locals_tls

#define six_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6; } vl = \
{ 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ six_typed_value_locals_tls

#define six_typed_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; } vl = \
{ 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ seven_value_locals_tls

#define seven_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7; } vl = \
{ 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ seven_typed_value_locals_tls

#define seven_typed_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; } vl = \
{ 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ eight_value_locals_tls

#define eight_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7, *n8; } vl = \
{ 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ eight_typed_value_locals_tls

#define eight_typed_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; n8; } vl = \
{ 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ nine_value_locals_tls

#define nine_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7, *n8, *n9; } vl = \
{ 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ nine_typed_value_locals_tls

#define nine_typed_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; n8; n9; } vl = \
{ 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ ten_value_locals_tls

#define ten_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7, *n8, *n9, *n10; } vl = \
{ 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ ten_typed_value_locals_tls

#define ten_typed_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; n8; n9; n10; } vl = \
{ 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ eleven_value_locals_tls

#define eleven_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7, *n8, *n9, *n10, *n11; } vl = \
{ 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ eleven_typed_value_locals_tls

#define eleven_typed_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; n8; n9; n10; n11; } vl = \
{ 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = _tls->current_locals_frame; \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope(_tls);

◆ twelve_value_locals_tls

#define twelve_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11,
  n12 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7, *n8, *n9, *n10, *n11, *n12; } vl = \
{ 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ twelve_typed_value_locals_tls

#define twelve_typed_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11,
  n12 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; n8; n9; n10; n11; n12; } vl = \
{ 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ thirteen_value_locals_tls

#define thirteen_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11,
  n12,
  n13 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7, *n8, *n9, *n10, *n11, *n12, *n13; } vl = \
{ 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ thirteen_typed_value_locals_tls

#define thirteen_typed_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11,
  n12,
  n13 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; n8; n9; n10; n11; n12; n13; } vl = \
{ 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ fourteen_value_locals_tls

#define fourteen_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11,
  n12,
  n13,
  n14 
)
Value:
struct { int count; Value** link; Value *n1, *n2, *n3, *n4, *n5, *n6, *n7, *n8, *n9, *n10, *n11, *n12, *n13, *n14;} vl = \
{ 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ fourteen_typed_value_locals_tls

#define fourteen_typed_value_locals_tls (   n1,
  n2,
  n3,
  n4,
  n5,
  n6,
  n7,
  n8,
  n9,
  n10,
  n11,
  n12,
  n13,
  n14 
)
Value:
struct { int count; Value** link; n1; n2; n3; n4; n5; n6; n7; n8; n9; n10; n11; n12; n13; n14;} vl = \
{ 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; \
vl.link = thread_local(current_locals_frame); \
_tls->current_locals_frame = (Value**)&vl; \
MXS_Exit_ValueLocal_Scope mxs_Exit_ValueLocal_Scope;

◆ value_local_array_tls

#define value_local_array_tls (   var,
  count 
)
Value:
void* _## var ##_alloc_ptr = _malloca(((count) + 2) * sizeof(Value*)); \
var = &((Value**)_## var ##_alloc_ptr)[2]; \
memset(var, 0, (count) * sizeof(Value*)); \
var[-2] = (Value*)(static_cast<INT_PTR>(count)); \
var[-1] = (Value*)_tls->current_locals_frame; \
_tls->current_locals_frame = &var[-2]; \
MXS_Exit_ValueLocalArray_Scope _## var ##_Exit_ValueLocal_Scope(_## var ##_alloc_ptr, _tls);

◆ return_value

#define return_value (   r)    return templated_return_value_fn(r)

◆ return_value_tls

#define return_value_tls (   r)    return templated_return_value_fn_tls(r, _tls)

◆ save_current_source

#define save_current_source ( )
Value:
Value* _save_source = thread_local(source_file); \
MSZipPackage* _save_pkg = thread_local(current_pkg); \
unsigned int _save_pos = thread_local(source_pos); \
unsigned int _save_line = thread_local(source_line); \
DWORD _save_flags = thread_local(source_flags);

◆ restore_current_source

#define restore_current_source ( )
Value:
{ \
thread_local(source_file) = _save_source; \
thread_local(current_pkg) = _save_pkg; \
thread_local(source_pos) = _save_pos; \
thread_local(source_line) = _save_line; \
thread_local(source_flags) = _save_flags;}

◆ save_current_source_no_pos

#define save_current_source_no_pos ( )
Value:
Value* _save_source = thread_local(source_file); \
MSZipPackage* _save_pkg = thread_local(current_pkg); \
DWORD _save_flags = thread_local(source_flags);

◆ restore_current_source_no_pos

#define restore_current_source_no_pos ( )
Value:
{ \
thread_local(source_file) = _save_source; \
thread_local(current_pkg) = _save_pkg; \
thread_local(source_flags) = _save_flags;}

◆ save_current_source_pos

#define save_current_source_pos ( )
Value:
unsigned int _save_pos = thread_local(source_pos); \
unsigned int _save_line = thread_local(source_line); \
DWORD _save_flags = thread_local(source_flags);

◆ restore_current_source_pos

#define restore_current_source_pos ( )
Value:
{ \
thread_local(source_pos) = _save_pos; \
thread_local(source_line) = _save_line; \
thread_local(source_flags) = _save_flags;}

◆ save_current_source_to_frame

#define save_current_source_to_frame ( )
Value:
{ \
Value** _frame = thread_local(current_scan_frame); \
if (_frame) _frame[3] = thread_local(source_file); \
if (_frame) _frame[4] = (Value*)thread_local(source_pos); \
if (_frame) _frame[8] = (Value*)thread_local(source_line); \
if (_frame) _frame[7] = (Value*)static_cast<DWORD_PTR>(thread_local(source_flags));}

◆ save_current_source_to_frame_no_pos

#define save_current_source_to_frame_no_pos ( )
Value:
{ \
Value** _frame = thread_local(current_scan_frame); \
if (_frame) _frame[3] = thread_local(source_file); \
if (_frame) _frame[7] = (Value*)static_cast<DWORD_PTR>(thread_local(source_flags));}

◆ save_current_source_to_frame_pos

#define save_current_source_to_frame_pos ( )
Value:
{ \
Value** _frame = thread_local(current_scan_frame); \
if (_frame) _frame[4] = (Value*)thread_local(source_pos); \
if (_frame) _frame[8] = (Value*)thread_local(source_line);}

◆ save_current_source_to_frame_no_file

#define save_current_source_to_frame_no_file ( )
Value:
{ \
Value** _frame = thread_local(current_scan_frame); \
if (_frame) _frame[4] = (Value*)thread_local(source_pos); \
if (_frame) _frame[8] = (Value*)thread_local(source_line);}

◆ save_current_source_tls

#define save_current_source_tls ( )
Value:
Value* _save_source = _tls->source_file; \
MSZipPackage* _save_pkg = _tls->current_pkg; \
unsigned int _save_pos = _tls->source_pos; \
unsigned int _save_line = _tls->source_line; \
DWORD _save_flags = _tls->source_flags;

◆ restore_current_source_tls

#define restore_current_source_tls ( )
Value:
{ \
_tls->source_file = _save_source; \
_tls->current_pkg = _save_pkg; \
_tls->source_pos = _save_pos; \
_tls->source_line = _save_line; \
_tls->source_flags = _save_flags;}

◆ save_current_source_no_pos_tls

#define save_current_source_no_pos_tls ( )
Value:
Value* _save_source = _tls->source_file; \
MSZipPackage* _save_pkg = _tls->current_pkg; \
DWORD _save_flags = _tls->source_flags;

◆ restore_current_source_no_pos_tls

#define restore_current_source_no_pos_tls ( )
Value:
{ \
_tls->source_file = _save_source; \
_tls->current_pkg = _save_pkg; \
_tls->source_flags = _save_flags;}

◆ save_current_source_pos_tls

#define save_current_source_pos_tls ( )
Value:
unsigned int _save_pos = _tls->source_pos; \
unsigned int _save_line = _tls->source_line; \
DWORD _save_flags = _tls->source_flags;

◆ restore_current_source_pos_tls

#define restore_current_source_pos_tls ( )
Value:
{ \
_tls->source_pos = _save_pos; \
_tls->source_line = _save_line; \
_tls->source_flags = _save_flags;}

◆ save_current_source_to_frame_tls

#define save_current_source_to_frame_tls ( )
Value:
{ \
Value** _frame = _tls->current_scan_frame; \
if (_frame) _frame[3] = _tls->source_file; \
if (_frame) _frame[4] = (Value*)_tls->source_pos; \
if (_frame) _frame[8] = (Value*)_tls->source_line; \
if (_frame) _frame[7] = (Value*)static_cast<DWORD_PTR>(_tls->source_flags);}

◆ save_current_source_to_frame_no_pos_tls

#define save_current_source_to_frame_no_pos_tls ( )
Value:
{ \
Value** _frame = _tls->current_scan_frame; \
if (_frame) _frame[3] = _tls->source_file; \
if (_frame) _frame[7] = (Value*)static_cast<DWORD_PTR>(_tls->source_flags);}

◆ save_current_source_to_frame_pos_tls

#define save_current_source_to_frame_pos_tls ( )
Value:
{ \
Value** _frame = _tls->current_scan_frame; \
if (_frame) _frame[4] = (Value*)_tls->source_pos; \
if (_frame) _frame[8] = (Value*)_tls->source_line;}

◆ save_current_source_to_frame_no_file_tls

#define save_current_source_to_frame_no_file_tls ( )
Value:
{ \
Value** _frame = _tls->current_scan_frame; \
if (_frame) _frame[4] = (Value*)_tls->source_pos; \
if (_frame) _frame[8] = (Value*)_tls->source_line;}

Function Documentation

◆ templated_return_value_fn()

Type templated_return_value_fn ( Type  r)
501 {
502  thread_local(current_result) = r;
503  return r;
504 }

◆ templated_return_value_fn_tls()

Type templated_return_value_fn_tls ( Type  r,
MAXScript_TLS _tls 
)
515 {
516  _tls->current_result = r;
517  return r;
518 }

◆ save_error_source_data()

ScripterExport void save_error_source_data ( MAXScript_TLS tls = nullptr)

◆ clear_error_source_data()

ScripterExport void clear_error_source_data ( MAXScript_TLS tls = nullptr)