# lua/ltm.h File Reference

`#include "lobject.h"`

Include dependency graph for ltm.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Defines

#define | gfasttm(g, et, e)
#define | fasttm(l, et, e) gfasttm(G(l), et, e)

## Enumerations

enum | TMS { TM_INDEX, TM_NEWINDEX, TM_GC, TM_MODE, TM_EQ, TM_ADD, TM_SUB, TM_MUL, TM_DIV, TM_MOD, TM_POW, TM_UNM, TM_LEN, TM_LT, TM_LE, TM_CONCAT, TM_CALL, TM_N }

## Functions

const TValue * | luaT_gettm (Table *events, TMS event, TString *ename)
const TValue * | luaT_gettmbyobj (lua_State *L, const TValue *o, TMS event)
void | luaT_init (lua_State *L)

## Variables

const char *const | luaT_typenames []

## Define Documentation

#define fasttm | ( | l,
|  | et,
|  | e |  | ) | gfasttm(G(l), et, e)

Definition at line 44 of file ltm.h.

Referenced by GCTM(), get_compTM(), luaC_separateudata(), luaV_gettable(), and luaV_settable().

#define gfasttm | ( | g,
|  | et,
|  | e |  | ) |

Value:

    ((et) == NULL ? NULL : \
      ((et)->flags & (1u<<(e))) ? NULL : luaT_gettm(et, e, (g)->tmname[e]))

Definition at line 41 of file ltm.h.

Referenced by traversetable().

## Enumeration Type Documentation

enum TMS

Enumerator:

  TM_INDEX |
  TM_NEWINDEX |
  TM_GC |
  TM_MODE |
  TM_EQ |
  TM_ADD |
  TM_SUB |
  TM_MUL |
  TM_DIV |
  TM_MOD |
  TM_POW |
  TM_UNM |
  TM_LEN |
  TM_LT |
  TM_LE |
  TM_CONCAT |
  TM_CALL |
  TM_N |

Definition at line 18 of file ltm.h.

## Function Documentation

const TValue* luaT_gettm | ( | Table * | events,
|  | TMS | event,
|  | TString * | ename |
| ) |  |  |

Definition at line 50 of file ltm.c.

References cast_byte, Table::flags, lua_assert, luaH_getstr(), TM_EQ, and ttisnil.

const TValue* luaT_gettmbyobj | ( | lua_State * | L,
|  | const TValue * | o,
|  | TMS | event |
| ) |  |  |

Definition at line 61 of file ltm.c.

References G, hvalue, luaH_getstr(), luaO_nilobject, ttype, and uvalue.

Referenced by call_binTM(), call_orderTM(), luaV_gettable(), luaV_settable(), and tryfuncTM().

void luaT_init | ( | lua_State * | L | ) |

Definition at line 30 of file ltm.c.

References G, luaS_fix, luaS_new, and TM_N.

Referenced by f_luaopen().

## Variable Documentation

const char* const luaT_typenames[]

Definition at line 23 of file ltm.c.

Referenced by lua_typename(), luaG_ordererror(), and luaG_typeerror().