我要先记录下在 ltm.h
的定义。这里面最重要就是 TMS
的定义了。
luaT_objtypename
方法搜索 metatable
里面有没有 __name
的属性,有点话返回该属性,否则返回本身的类型名。我搜了一下,只在 ldebug.c
里面用到。
luaT_gettm
主要是给 gfasttm
和 fasttm
用到。
luaT_gettmbyobj
返回 tag method。
luaT_init
初始化 G(L)->tmname
。
luaT_callTM
调用 onst TValue *f
这个方法,传进来应该是一个 tm。这里面 stack 相关只能猜个大概。
luaT_callbinTM
跟 luaT_trybinTM
调用 binary 的 tm。
luaT_callorderTM
可以在比较两个 table 的时候使用。