Skip to content

Commit df376ac

Browse files
att
1 parent a4b1c70 commit df376ac

File tree

23 files changed

+19
-102
lines changed

23 files changed

+19
-102
lines changed

src/LuaCEmbed/LuaCEmbed.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ typedef struct LuaCEmbed{
66
bool public_functions;
77
int total_args;
88
char *error_msg;
9-
double memory_limit;
10-
int used_memory;
11-
int timeout;
129
void (*delete_function)(struct LuaCEmbed *self);
1310
void *global_tables;
1411
void *func_tables;
@@ -18,6 +15,6 @@ typedef struct LuaCEmbed{
1815
bool field_protection;
1916
}LuaCEmbed;
2017

21-
18+
int lua_cembed_timeout = -1;
2219
LuaCEmbed *global_current_lua_embed_object;
2320

src/LuaCEmbed/args/basic/basic.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ int privateLuaCEmbed_put_arg_on_top(LuaCEmbed *self, int index){
88
return LUA_CEMBED_GENERIC_ERROR;
99
}
1010

11-
1211
char *formated_arg = private_LuaCembed_format(PRIVATE_LUA_CEMBED_ARGS_,self->stack_leve,formatted_index-1);
1312
lua_getglobal(self->state,formated_arg);
1413
int type = lua_type(self->state,-1);

src/LuaCEmbed/basic/basic.c

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,36 +4,29 @@ LuaCEmbed * newLuaCEmbedEvaluation(){
44
LuaCEmbed *self = (LuaCEmbed*) malloc(sizeof (LuaCEmbed));
55
*self = (LuaCEmbed){0};
66
self->state = luaL_newstate();
7+
if(lua_cembed_memory_limit > 0){
8+
lua_setallocf(self->state, private_LuaCembed_custom_allocator, &lua_cembed_used_memory);
9+
}
710
self->global_tables = (void*)newprivateLuaCEmbedTableArray();
8-
self->memory_limit = LUA_CEMBED_DEFAULT_MEMORY_LIMIT;
9-
self->timeout = LUA_CEMBED_DEFAULT_TIMEOUT;
10-
return self;
11-
}
1211

13-
LuaCEmbed * newLuaCEmbedEvaluation_with_custom_allocator(){
14-
LuaCEmbed *self = (LuaCEmbed*) malloc(sizeof (LuaCEmbed));
15-
*self = (LuaCEmbed){0};
16-
self->state = luaL_newstate();
17-
lua_setallocf(self->state, private_LuaCembed_custom_allocator, &self->used_memory);
18-
self->global_tables = (void*)newprivateLuaCEmbedTableArray();
19-
self->memory_limit = LUA_CEMBED_DEFAULT_MEMORY_LIMIT;
20-
self->timeout = LUA_CEMBED_DEFAULT_TIMEOUT;
2112
return self;
2213
}
2314

24-
void LuaCEmbed_set_memory_limit(LuaCEmbed *self, double limit){
25-
self->memory_limit = limit;
15+
16+
void LuaCEmbed_set_memory_limit( double limit){
17+
lua_cembed_memory_limit = limit;
2618
}
2719

20+
2821
void LuaCembed_set_delete_function(LuaCEmbed *self,void (*delelte_function)(struct LuaCEmbed *self)){
2922
self->delete_function = delelte_function;
3023
}
3124

3225

3326

3427

35-
void LuaCEmbed_set_timeout(LuaCEmbed *self,int seconds){
36-
self->timeout = seconds;
28+
void LuaCEmbed_set_timeout(int seconds){
29+
lua_cembed_timeout = seconds;
3730
}
3831

3932
char * LuaCEmbed_get_error_message(LuaCEmbed *self){

src/LuaCEmbed/basic/basic.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
LuaCEmbed * newLuaCEmbedEvaluation();
55

6-
LuaCEmbed * newLuaCEmbedEvaluation_with_custom_allocator();
76

87
int private_LuaCemb_internal_free(lua_State *L);
98

@@ -27,10 +26,10 @@ void privateLuaCEmbed_raise_error_not_jumping(LuaCEmbed *self, const char *error
2726

2827
void * privateLuaCEmbed_get_current_table_array(LuaCEmbed *self);
2928

30-
void LuaCEmbed_set_timeout(LuaCEmbed *self,int seconds);
3129

32-
void LuaCEmbed_set_memory_limit(LuaCEmbed *self, double limit);
30+
void LuaCEmbed_set_timeout(int seconds);
3331

32+
void LuaCEmbed_set_memory_limit( double limit);
3433

3534

3635
void privata_LuaCEmbed_increment_stack_(LuaCEmbed *self);

src/LuaCEmbed/callback_handle/callback_handle.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,6 @@ void private_LuaCEmbed_add_lib_callback(LuaCEmbed *self, const char *callback_na
195195

196196
void private_LuaCEmbed_add_evaluation_callback(LuaCEmbed *self, const char *callback_name, LuaCEmbedResponse* (*callback)(LuaCEmbed *args) ){
197197
PRIVATE_LUA_CEMBED_PROTECT_VOID
198-
private_lua_cembed_memory_limit = self->memory_limit;
199198

200199
//creating the clojure
201200
lua_pushboolean(self->state,false);//is a method
@@ -212,7 +211,6 @@ void private_LuaCEmbed_add_evaluation_callback(LuaCEmbed *self, const char *call
212211

213212
void LuaCEmbed_add_callback(LuaCEmbed *self, const char *callback_name, LuaCEmbedResponse* (*callback)(LuaCEmbed *args) ){
214213
PRIVATE_LUA_CEMBED_PROTECT_VOID
215-
private_lua_cembed_memory_limit = self->memory_limit;
216214

217215
if(self->is_lib){
218216
private_LuaCEmbed_add_lib_callback(self,callback_name,callback);

src/LuaCEmbed/evaluation/evaluation.c

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ int privateLuaCEmbed_start_func_evaluation(lua_State *state){
3232
SetTimer(NULL, 0, self->timeout * 1000, TimerHandler);
3333
}
3434
#else
35-
if (self->timeout > 0) {
35+
if (lua_cembed_timeout > 0) {
3636
signal(SIGALRM, private_LuaCembed_handle_timeout);
37-
alarm(self->timeout);
37+
alarm(lua_cembed_timeout);
3838
}
3939
#endif
4040

@@ -56,7 +56,6 @@ int privateLuaCEmbed_start_func_evaluation(lua_State *state){
5656
int LuaCEmbed_evaluate(LuaCEmbed *self, const char *code, ...){
5757

5858
PRIVATE_LUA_CEMBED_PROTECT_NUM
59-
private_lua_cembed_memory_limit = self->memory_limit;
6059

6160
va_list args;
6261
va_start(args,code);
@@ -77,7 +76,6 @@ int LuaCEmbed_evaluate(LuaCEmbed *self, const char *code, ...){
7776
int LuaCEmbed_evaluete_file(LuaCEmbed *self, const char *file){
7877
PRIVATE_LUA_CEMBED_PROTECT_NUM
7978

80-
private_lua_cembed_memory_limit = self->memory_limit;
8179

8280
lua_pushinteger(self->state,PRIVATE_LUA_EMBED_FILE_EVALUATION_TYPE);
8381
lua_pushlightuserdata(self->state,(void*)file); //code
@@ -139,7 +137,6 @@ int private_LuaCEmbed_ensure_evaluation_type(LuaCEmbed *self,int type){
139137

140138
char * LuaCEmbed_get_evaluation_string(LuaCEmbed *self,const char *code, ...){
141139
PRIVATE_LUA_CEMBED_PROTECT_NULL
142-
private_lua_cembed_memory_limit = self->memory_limit;
143140

144141
va_list args;
145142
va_start(args,code);
@@ -159,7 +156,6 @@ char * LuaCEmbed_get_evaluation_string(LuaCEmbed *self,const char *code, ...){
159156

160157
int LuaCEmbed_get_evaluation_type(LuaCEmbed *self,const char *code, ...){
161158
PRIVATE_LUA_CEMBED_PROTECT_NUM
162-
private_lua_cembed_memory_limit = self->memory_limit;
163159

164160
va_list args;
165161
va_start(args,code);
@@ -175,7 +171,6 @@ int LuaCEmbed_get_evaluation_type(LuaCEmbed *self,const char *code, ...){
175171

176172
long LuaCEmbed_get_evaluation_table_size(LuaCEmbed *self,const char *code, ...){
177173
PRIVATE_LUA_CEMBED_PROTECT_NUM
178-
private_lua_cembed_memory_limit = self->memory_limit;
179174

180175
va_list args;
181176
va_start(args,code);
@@ -203,7 +198,6 @@ long LuaCEmbed_get_evaluation_table_size(LuaCEmbed *self,const char *code, ...){
203198

204199
long long LuaCEmbed_get_evaluation_long(LuaCEmbed *self,const char *code, ...){
205200
PRIVATE_LUA_CEMBED_PROTECT_NUM
206-
private_lua_cembed_memory_limit = self->memory_limit;
207201

208202
va_list args;
209203
va_start(args,code);
@@ -221,7 +215,6 @@ long long LuaCEmbed_get_evaluation_long(LuaCEmbed *self,const char *code, ...){
221215

222216
double LuaCEmbed_get_evaluation_double(LuaCEmbed *self,const char *code, ...){
223217
PRIVATE_LUA_CEMBED_PROTECT_NUM
224-
private_lua_cembed_memory_limit = self->memory_limit;
225218

226219
va_list args;
227220
va_start(args,code);
@@ -238,7 +231,6 @@ double LuaCEmbed_get_evaluation_double(LuaCEmbed *self,const char *code, ...){
238231

239232
bool LuaCEmbed_get_evaluation_bool(LuaCEmbed *self,const char *code, ...){
240233
PRIVATE_LUA_CEMBED_PROTECT_BOOL
241-
private_lua_cembed_memory_limit = self->memory_limit;
242234

243235
va_list args;
244236
va_start(args,code);

src/LuaCEmbed/globals/errors/errors.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
int LuaCEmbed_ensure_global_type(LuaCEmbed *self, const char *name,int expected_type){
66
PRIVATE_LUA_CEMBED_PROTECT_NUM
7-
private_lua_cembed_memory_limit = self->memory_limit;
87

98
lua_getglobal(self->state,name);
109
int type = lua_type(self->state,-1);

src/LuaCEmbed/globals/getters/getters.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,13 @@
22

33
int LuaCEmbed_get_global_type(LuaCEmbed *self,const char *name){
44
PRIVATE_LUA_CEMBED_PROTECT_NUM
5-
private_lua_cembed_memory_limit = self->memory_limit;
65

76
lua_getglobal(self->state, name);
87
return lua_type(self->state,-1);
98
}
109

1110
long long LuaCEmbed_get_global_long(LuaCEmbed *self,const char *name){
1211
PRIVATE_LUA_CEMBED_PROTECT_NUM
13-
private_lua_cembed_memory_limit = self->memory_limit;
1412

1513
if(LuaCEmbed_ensure_global_type(self,name,LUA_CEMBED_NUMBER)){
1614
return LUA_CEMBED_GENERIC_ERROR;
@@ -21,7 +19,6 @@ long long LuaCEmbed_get_global_long(LuaCEmbed *self,const char *name){
2119

2220
double LuaCEmbed_get_global_double(LuaCEmbed *self,const char *name){
2321
PRIVATE_LUA_CEMBED_PROTECT_NUM
24-
private_lua_cembed_memory_limit = self->memory_limit;
2522

2623
if(LuaCEmbed_ensure_global_type(self,name,LUA_CEMBED_NUMBER)){
2724
return LUA_CEMBED_GENERIC_ERROR;
@@ -32,7 +29,6 @@ double LuaCEmbed_get_global_double(LuaCEmbed *self,const char *name){
3229

3330
bool LuaCEmbed_get_global_bool(LuaCEmbed *self,const char *name){
3431
PRIVATE_LUA_CEMBED_PROTECT_BOOL
35-
private_lua_cembed_memory_limit = self->memory_limit;
3632

3733
if(LuaCEmbed_ensure_global_type(self,name,LUA_CEMBED_BOOL)){
3834
return LUA_CEMBED_GENERIC_ERROR;
@@ -43,7 +39,6 @@ bool LuaCEmbed_get_global_bool(LuaCEmbed *self,const char *name){
4339

4440
char * LuaCEmbed_get_global_raw_string(LuaCEmbed *self,const char *name,long *size){
4541
PRIVATE_LUA_CEMBED_PROTECT_NULL
46-
private_lua_cembed_memory_limit = self->memory_limit;
4742

4843
if(LuaCEmbed_ensure_global_type(self,name,LUA_CEMBED_STRING)){
4944
return NULL;
@@ -54,7 +49,6 @@ char * LuaCEmbed_get_global_raw_string(LuaCEmbed *self,const char *name,long *si
5449

5550
char * LuaCEmbed_get_global_string(LuaCEmbed *self,const char *name){
5651
PRIVATE_LUA_CEMBED_PROTECT_NULL
57-
private_lua_cembed_memory_limit = self->memory_limit;
5852

5953
if(LuaCEmbed_ensure_global_type(self,name,LUA_CEMBED_STRING)){
6054
return NULL;
@@ -65,7 +59,6 @@ char * LuaCEmbed_get_global_string(LuaCEmbed *self,const char *name){
6559

6660
LuaCEmbedTable * LuaCembed_new_anonymous_table(LuaCEmbed *self){
6761
PRIVATE_LUA_CEMBED_PROTECT_NULL
68-
private_lua_cembed_memory_limit = self->memory_limit;
6962

7063

7164
const char *format_raw = PRIVATE_LUA_CEMBED_ANONYMOUS_TABLE_;
@@ -84,7 +77,6 @@ LuaCEmbedTable * LuaCembed_new_anonymous_table(LuaCEmbed *self){
8477

8578
LuaCEmbedTable * LuaCembed_get_global_table(LuaCEmbed *self, const char *name){
8679
PRIVATE_LUA_CEMBED_PROTECT_NULL
87-
private_lua_cembed_memory_limit = self->memory_limit;
8880

8981
if(LuaCEmbed_ensure_global_type(self,name,LUA_CEMBED_TABLE)){
9082
return NULL;
@@ -108,7 +100,6 @@ LuaCEmbedTable * LuaCembed_get_global_table(LuaCEmbed *self, const char *name){
108100

109101
LuaCEmbedTable * LuaCembed_new_global_table(LuaCEmbed *self, const char *name){
110102
PRIVATE_LUA_CEMBED_PROTECT_NULL
111-
private_lua_cembed_memory_limit = self->memory_limit;
112103

113104
lua_newtable(self->state);
114105
lua_setglobal(self->state,name);
@@ -131,7 +122,6 @@ LuaCEmbedTable * LuaCembed_new_global_table(LuaCEmbed *self, const char *name){
131122
LuaCEmbedTable* LuaCEmbed_run_global_lambda(LuaCEmbed *self, const char *name, LuaCEmbedTable *args_to_call, int total_returns){
132123

133124
PRIVATE_LUA_CEMBED_PROTECT_NULL
134-
private_lua_cembed_memory_limit = self->memory_limit;
135125

136126
if(LuaCEmbed_ensure_global_type(self,name,LUA_CEMBED_FUNCTION)){
137127
return NULL;

src/LuaCEmbed/globals/setters/setters.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@
22

33
void LuaCEmbed_set_global_string(LuaCEmbed *self, const char *name, const char *value){
44
PRIVATE_LUA_CEMBED_PROTECT_VOID
5-
private_lua_cembed_memory_limit = self->memory_limit;
65

76
lua_pushstring(self->state,value);
87
lua_setglobal(self->state,name);
98
}
109
void LuaCEmbed_set_global_raw_string(LuaCEmbed *self, const char *name, const char *value,long size){
1110
PRIVATE_LUA_CEMBED_PROTECT_VOID
12-
private_lua_cembed_memory_limit = self->memory_limit;
1311

1412
lua_pushlstring(self->state,value,size);
1513
lua_setglobal(self->state,name);
@@ -18,31 +16,27 @@ void LuaCEmbed_set_global_raw_string(LuaCEmbed *self, const char *name, const c
1816

1917
void LuaCEmbed_set_global_long(LuaCEmbed *self, const char *name, long long value){
2018
PRIVATE_LUA_CEMBED_PROTECT_VOID
21-
private_lua_cembed_memory_limit = self->memory_limit;
2219

2320
lua_pushnumber(self->state,(double )value);
2421
lua_setglobal(self->state,name);
2522
}
2623

2724
void LuaCEmbed_set_global_double(LuaCEmbed *self, const char *name, double value){
2825
PRIVATE_LUA_CEMBED_PROTECT_VOID
29-
private_lua_cembed_memory_limit = self->memory_limit;
3026

3127
lua_pushnumber(self->state,(double )value);
3228
lua_setglobal(self->state,name);
3329
}
3430

3531
void LuaCEmbed_set_global_bool(LuaCEmbed *self, const char *name, bool value){
3632
PRIVATE_LUA_CEMBED_PROTECT_VOID
37-
private_lua_cembed_memory_limit = self->memory_limit;
3833
lua_pushboolean(self->state,value);
3934
lua_setglobal(self->state,name);
4035
}
4136

4237

4338
void LuaCEmbed_set_global_table(LuaCEmbed *self, const char *name, LuaCEmbedTable *table){
4439
PRIVATE_LUA_CEMBED_PROTECT_VOID
45-
private_lua_cembed_memory_limit = self->memory_limit;
4640

4741
lua_getglobal(self->state,table->global_name);
4842
lua_setglobal(self->state,name);

src/LuaCEmbed/memory/memory.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ static void *private_LuaCembed_custom_allocator(void *ud, void *ptr, size_t osiz
1313
*used -= osize; /* subtract old size from used memory */
1414
return NULL;
1515
} else {
16-
long custom_limit = (long)(private_lua_cembed_memory_limit * PRIVATE_LUA_CEMBED_ONE_MB);
16+
long custom_limit = (long)(lua_cembed_memory_limit * PRIVATE_LUA_CEMBED_ONE_MB);
1717
if (*used + (nsize - osize) > custom_limit) /* too much memory in use */
1818
return NULL;
1919
ptr = realloc(ptr, nsize);

src/LuaCEmbed/memory/memory.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22

3-
4-
double private_lua_cembed_memory_limit;
3+
long lua_cembed_used_memory = 0;
4+
long lua_cembed_memory_limit = -1;
55

66

77

src/LuaCEmbed/table/table/append/append.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
void LuaCEmbedTable_append_table(LuaCEmbedTable *self, LuaCEmbedTable *table){
22
PRIVATE_LUA_CEMBED_TABLE_PROTECT_VOID
3-
private_lua_cembed_memory_limit = self->main_object->memory_limit;
43
54
long size = LuaCEmbedTable_get_listable_size(self);
65
lua_getglobal(self->main_object->state,self->global_name);
@@ -13,7 +12,6 @@ void LuaCEmbedTable_append_table(LuaCEmbedTable *self, LuaCEmbedTable *table){
1312

1413
void LuaCEmbedTable_append_string(LuaCEmbedTable *self, const char *value){
1514
PRIVATE_LUA_CEMBED_TABLE_PROTECT_VOID
16-
private_lua_cembed_memory_limit = self->main_object->memory_limit;
1715
1816
long size = LuaCEmbedTable_get_listable_size(self);
1917
lua_getglobal(self->main_object->state,self->global_name);
@@ -26,7 +24,6 @@ void LuaCEmbedTable_append_string(LuaCEmbedTable *self, const char *value){
2624

2725
void LuaCEmbedTable_append_long(LuaCEmbedTable *self, long long value){
2826
PRIVATE_LUA_CEMBED_TABLE_PROTECT_VOID
29-
private_lua_cembed_memory_limit = self->main_object->memory_limit;
3027
3128
long size = LuaCEmbedTable_get_listable_size(self);
3229
lua_getglobal(self->main_object->state,self->global_name);
@@ -39,7 +36,6 @@ void LuaCEmbedTable_append_long(LuaCEmbedTable *self, long long value){
3936

4037
void LuaCEmbedTable_append_double(LuaCEmbedTable *self, double value){
4138
PRIVATE_LUA_CEMBED_TABLE_PROTECT_VOID
42-
private_lua_cembed_memory_limit = self->main_object->memory_limit;
4339
4440
long size = LuaCEmbedTable_get_listable_size(self);
4541
lua_getglobal(self->main_object->state,self->global_name);
@@ -52,7 +48,6 @@ void LuaCEmbedTable_append_double(LuaCEmbedTable *self, double value){
5248

5349
void LuaCEmbedTable_append_bool(LuaCEmbedTable *self, bool value){
5450
PRIVATE_LUA_CEMBED_TABLE_PROTECT_VOID
55-
private_lua_cembed_memory_limit = self->main_object->memory_limit;
5651
5752
long size = LuaCEmbedTable_get_listable_size(self);
5853
lua_getglobal(self->main_object->state,self->global_name);
@@ -65,7 +60,6 @@ void LuaCEmbedTable_append_bool(LuaCEmbedTable *self, bool value){
6560

6661
void LuaCEmbedTable_append_evaluation(LuaCEmbedTable *self, const char *code, ...){
6762
PRIVATE_LUA_CEMBED_TABLE_PROTECT_VOID
68-
private_lua_cembed_memory_limit = self->main_object->memory_limit;
6963

7064
va_list args;
7165
va_start(args,code);

src/LuaCEmbed/table/table/basic/basic.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ LuaCEmbedTable * private_newLuaCembedTable(LuaCEmbed *main_embed, const char *fo
2323
long size = LuaCEmbedTable_get_listable_size(self);
2424
lua_settop(self->main_object->state, 0);
2525

26-
private_lua_cembed_memory_limit = self->main_object->memory_limit;
2726

2827
lua_getglobal(self->main_object->state,self->global_name);
2928
int table_index = lua_gettop(self->main_object->state);

0 commit comments

Comments
 (0)