*fixed a memory leak with sub routine.
This commit is contained in:
parent
cf3870509a
commit
87e8ef6a4b
1
HISTORY
1
HISTORY
@ -1,5 +1,6 @@
|
|||||||
Apr. 5 2017
|
Apr. 5 2017
|
||||||
Fixed a wrong hash bug with pointer, which may cause crash on some 64bit systems
|
Fixed a wrong hash bug with pointer, which may cause crash on some 64bit systems
|
||||||
|
Fixed a memory leak with sub routine
|
||||||
|
|
||||||
Mar. 29 2017
|
Mar. 29 2017
|
||||||
Added an alive object checker of referenced usertype
|
Added an alive object checker of referenced usertype
|
||||||
|
@ -9404,7 +9404,7 @@ static int _do_nothing_on_object(void* data, void* extra) {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Lose an object of of scope */
|
/* Lose an object in a scope */
|
||||||
static int _lose_object(void* data, void* extra) {
|
static int _lose_object(void* data, void* extra) {
|
||||||
int result = _OP_RESULT_NORMAL;
|
int result = _OP_RESULT_NORMAL;
|
||||||
_object_t* obj = 0;
|
_object_t* obj = 0;
|
||||||
@ -9413,6 +9413,10 @@ static int _lose_object(void* data, void* extra) {
|
|||||||
mb_assert(data && extra);
|
mb_assert(data && extra);
|
||||||
|
|
||||||
obj = (_object_t*)data;
|
obj = (_object_t*)data;
|
||||||
|
#ifdef MB_ENABLE_LAMBDA
|
||||||
|
if(obj->type == _DT_ROUTINE && obj->data.routine->type == _IT_LAMBDA)
|
||||||
|
obj->is_ref = false;
|
||||||
|
#endif /* MB_ENABLE_LAMBDA */
|
||||||
switch(obj->type) {
|
switch(obj->type) {
|
||||||
case _DT_VAR:
|
case _DT_VAR:
|
||||||
_lose_object(obj->data.variable->data, extra);
|
_lose_object(obj->data.variable->data, extra);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user