diff options
-rw-r--r-- | lobject.h | 10 | ||||
-rw-r--r-- | testes/gc.lua | 22 | ||||
-rw-r--r-- | testes/libs/makefile | 10 |
3 files changed, 17 insertions, 25 deletions
@@ -89,8 +89,8 @@ typedef struct TValue { | |||
89 | #define righttt(obj) (ttypetag(obj) == gcvalue(obj)->tt) | 89 | #define righttt(obj) (ttypetag(obj) == gcvalue(obj)->tt) |
90 | 90 | ||
91 | #define checkliveness(L,obj) \ | 91 | #define checkliveness(L,obj) \ |
92 | lua_longassert(!iscollectable(obj) || \ | 92 | ((void)L, lua_longassert(!iscollectable(obj) || \ |
93 | (righttt(obj) && (L == NULL || !isdead(G(L),gcvalue(obj))))) | 93 | (righttt(obj) && (L == NULL || !isdead(G(L),gcvalue(obj)))))) |
94 | 94 | ||
95 | 95 | ||
96 | /* Macros to set values */ | 96 | /* Macros to set values */ |
@@ -100,7 +100,7 @@ typedef struct TValue { | |||
100 | #define setobj(L,obj1,obj2) \ | 100 | #define setobj(L,obj1,obj2) \ |
101 | { TValue *io1=(obj1); const TValue *io2=(obj2); \ | 101 | { TValue *io1=(obj1); const TValue *io2=(obj2); \ |
102 | io1->value_ = io2->value_; io1->tt_ = io2->tt_; \ | 102 | io1->value_ = io2->value_; io1->tt_ = io2->tt_; \ |
103 | (void)L; checkliveness(L,io1); lua_assert(!isreallyempty(io1)); } | 103 | checkliveness(L,io1); lua_assert(!isreallyempty(io1)); } |
104 | 104 | ||
105 | /* | 105 | /* |
106 | ** different types of assignments, according to destination | 106 | ** different types of assignments, according to destination |
@@ -651,14 +651,14 @@ typedef union Node { | |||
651 | #define setnodekey(L,node,obj) \ | 651 | #define setnodekey(L,node,obj) \ |
652 | { Node *n_=(node); const TValue *io_=(obj); \ | 652 | { Node *n_=(node); const TValue *io_=(obj); \ |
653 | n_->u.key_val = io_->value_; n_->u.key_tt = io_->tt_; \ | 653 | n_->u.key_val = io_->value_; n_->u.key_tt = io_->tt_; \ |
654 | (void)L; checkliveness(L,io_); } | 654 | checkliveness(L,io_); } |
655 | 655 | ||
656 | 656 | ||
657 | /* copy a value from a key */ | 657 | /* copy a value from a key */ |
658 | #define getnodekey(L,obj,node) \ | 658 | #define getnodekey(L,obj,node) \ |
659 | { TValue *io_=(obj); const Node *n_=(node); \ | 659 | { TValue *io_=(obj); const Node *n_=(node); \ |
660 | io_->value_ = n_->u.key_val; io_->tt_ = n_->u.key_tt; \ | 660 | io_->value_ = n_->u.key_val; io_->tt_ = n_->u.key_tt; \ |
661 | (void)L; checkliveness(L,io_); } | 661 | checkliveness(L,io_); } |
662 | 662 | ||
663 | 663 | ||
664 | /* | 664 | /* |
diff --git a/testes/gc.lua b/testes/gc.lua index 6d24e0d8..9ea054c1 100644 --- a/testes/gc.lua +++ b/testes/gc.lua | |||
@@ -99,35 +99,28 @@ local function GC() GC1(); GC2() end | |||
99 | do | 99 | do |
100 | print("creating many objects") | 100 | print("creating many objects") |
101 | 101 | ||
102 | local contCreate = 0 | ||
103 | |||
104 | local limit = 5000 | 102 | local limit = 5000 |
105 | 103 | ||
106 | while contCreate <= limit do | 104 | for i = 1, limit do |
107 | local a = {}; a = nil | 105 | local a = {}; a = nil |
108 | contCreate = contCreate+1 | ||
109 | end | 106 | end |
110 | 107 | ||
111 | local a = "a" | 108 | local a = "a" |
112 | 109 | ||
113 | contCreate = 0 | 110 | for i = 1, limit do |
114 | while contCreate <= limit do | 111 | a = i .. "b"; |
115 | a = contCreate .. "b"; | ||
116 | a = string.gsub(a, '(%d%d*)', "%1 %1") | 112 | a = string.gsub(a, '(%d%d*)', "%1 %1") |
117 | a = "a" | 113 | a = "a" |
118 | contCreate = contCreate+1 | ||
119 | end | 114 | end |
120 | 115 | ||
121 | 116 | ||
122 | contCreate = 0 | ||
123 | 117 | ||
124 | a = {} | 118 | a = {} |
125 | 119 | ||
126 | function a:test () | 120 | function a:test () |
127 | while contCreate <= limit do | 121 | for i = 1, limit do |
128 | load(string.format("function temp(a) return 'a%d' end", contCreate), "")() | 122 | load(string.format("function temp(a) return 'a%d' end", i), "")() |
129 | assert(temp() == string.format('a%d', contCreate)) | 123 | assert(temp() == string.format('a%d', i)) |
130 | contCreate = contCreate+1 | ||
131 | end | 124 | end |
132 | end | 125 | end |
133 | 126 | ||
@@ -166,9 +159,8 @@ print('long strings') | |||
166 | x = "01234567890123456789012345678901234567890123456789012345678901234567890123456789" | 159 | x = "01234567890123456789012345678901234567890123456789012345678901234567890123456789" |
167 | assert(string.len(x)==80) | 160 | assert(string.len(x)==80) |
168 | s = '' | 161 | s = '' |
169 | n = 0 | ||
170 | k = math.min(300, (math.maxinteger // 80) // 2) | 162 | k = math.min(300, (math.maxinteger // 80) // 2) |
171 | while n < k do s = s..x; n=n+1; j=tostring(n) end | 163 | for n = 1, k do s = s..x; j=tostring(n) end |
172 | assert(string.len(s) == k*80) | 164 | assert(string.len(s) == k*80) |
173 | s = string.sub(s, 1, 10000) | 165 | s = string.sub(s, 1, 10000) |
174 | s, i = string.gsub(s, '(%d%d%d%d)', '') | 166 | s, i = string.gsub(s, '(%d%d%d%d)', '') |
diff --git a/testes/libs/makefile b/testes/libs/makefile index 698f8984..a1330920 100644 --- a/testes/libs/makefile +++ b/testes/libs/makefile | |||
@@ -11,17 +11,17 @@ CFLAGS = -Wall -std=gnu99 -O2 -I$(LUA_DIR) -fPIC -shared | |||
11 | all: lib1.so lib11.so lib2.so lib21.so lib2-v2.so | 11 | all: lib1.so lib11.so lib2.so lib21.so lib2-v2.so |
12 | touch all | 12 | touch all |
13 | 13 | ||
14 | lib1.so: lib1.c $(LUA_DIR)/luaconf.h $(LUA_DIR)/ltests.h | 14 | lib1.so: lib1.c $(LUA_DIR)/luaconf.h |
15 | $(CC) $(CFLAGS) -o lib1.so lib1.c | 15 | $(CC) $(CFLAGS) -o lib1.so lib1.c |
16 | 16 | ||
17 | lib11.so: lib11.c $(LUA_DIR)/luaconf.h $(LUA_DIR)/ltests.h | 17 | lib11.so: lib11.c $(LUA_DIR)/luaconf.h |
18 | $(CC) $(CFLAGS) -o lib11.so lib11.c | 18 | $(CC) $(CFLAGS) -o lib11.so lib11.c |
19 | 19 | ||
20 | lib2.so: lib2.c $(LUA_DIR)/luaconf.h $(LUA_DIR)/ltests.h | 20 | lib2.so: lib2.c $(LUA_DIR)/luaconf.h |
21 | $(CC) $(CFLAGS) -o lib2.so lib2.c | 21 | $(CC) $(CFLAGS) -o lib2.so lib2.c |
22 | 22 | ||
23 | lib21.so: lib21.c $(LUA_DIR)/luaconf.h $(LUA_DIR)/ltests.h | 23 | lib21.so: lib21.c $(LUA_DIR)/luaconf.h |
24 | $(CC) $(CFLAGS) -o lib21.so lib21.c | 24 | $(CC) $(CFLAGS) -o lib21.so lib21.c |
25 | 25 | ||
26 | lib2-v2.so: lib21.c $(LUA_DIR)/luaconf.h $(LUA_DIR)/ltests.h | 26 | lib2-v2.so: lib21.c $(LUA_DIR)/luaconf.h |
27 | $(CC) $(CFLAGS) -o lib2-v2.so lib22.c | 27 | $(CC) $(CFLAGS) -o lib2-v2.so lib22.c |