summaryrefslogtreecommitdiff
path: root/src/lua51/lobject.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-09-10 20:55:10 +0800
committerchai <chaifix@163.com>2020-09-10 20:55:10 +0800
commitd9c2d065698641837bc75ded236b23d5aaa36fd4 (patch)
tree9acb1fe3f61121bc5963b9b76f22265d8cd00f0e /src/lua51/lobject.h
parent229a3937a3b99a175b551e28d09b9a45d37c44f7 (diff)
*table string comment
Diffstat (limited to 'src/lua51/lobject.h')
-rw-r--r--src/lua51/lobject.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/lua51/lobject.h b/src/lua51/lobject.h
index 25dc341..4e9daee 100644
--- a/src/lua51/lobject.h
+++ b/src/lua51/lobject.h
@@ -40,10 +40,10 @@ typedef union GCObject GCObject;
** Common Header for all collectable objects (in macro form, to be
** included in other objects)
*/
-// 需要垃圾回收的类型包含这个头
-//c next 指向下一个gc链表的成员
-//c tt 数据类型
-//c GC标记,用来保存颜色,有白色(2种),灰色和黑色
+// 需要垃圾回收的类型包含这个头,包含TString, Udata, Proto, UpVal, Closure, Table以及lua_State七个
+//c next 指向下一个gc链表的成员
+//c tt 数据类型
+//c marked GC标记,用来保存颜色,有白色(2种),灰色和黑色
#define CommonHeader GCObject *next; lu_byte tt; lu_byte marked
@@ -211,17 +211,17 @@ typedef union TString {
L_Umaxalign dummy; /* ensures maximum alignment for strings */
struct {
CommonHeader;
- lu_byte reserved;//标记字符串是否是lua的关键字,如果是,不会被GC回收
- unsigned int hash;//字符串的哈希值,比较字符串的依据
- size_t len;
- } tsv;
+ lu_byte reserved;//c 标记字符串是否是lua的关键字,如果是,不会被GC回收
+ unsigned int hash;//c 字符串的哈希值,比较字符串的依据
+ size_t len; //c 字符串长度
+ } tsv; //c tstring value
} TString;
#define getstr(ts) cast(const char *, (ts) + 1)
#define svalue(o) getstr(rawtsvalue(o))
-// userdata,和TString比较像
+//c userdata,和TString比较像
typedef union Udata {
L_Umaxalign dummy; /* ensures maximum alignment for `local' udata */
struct {
@@ -240,7 +240,7 @@ typedef union Udata {
*/
typedef struct Proto {
CommonHeader;
- //c 函数的常量
+ //c 常量表,能看出来lua保存常量的单元是函数原型,所有代码片段都会被编译为proto
TValue *k; /* constants used by the function */
//c 函数字节码
Instruction *code;