*fixed a missing source file information issue for routine.
This commit is contained in:
parent
6de74f25cb
commit
7967fc5791
@ -7849,8 +7849,10 @@ static _routine_t* _clone_routine(_routine_t* sub, void* c, bool_t toupval) {
|
|||||||
if(!result) {
|
if(!result) {
|
||||||
result = (_routine_t*)mb_malloc(sizeof(_routine_t));
|
result = (_routine_t*)mb_malloc(sizeof(_routine_t));
|
||||||
memset(result, 0, sizeof(_routine_t));
|
memset(result, 0, sizeof(_routine_t));
|
||||||
if(sub->name)
|
result->name = sub->name;
|
||||||
result->name = mb_strdup(sub->name, 0);
|
#ifdef MB_ENABLE_SOURCE_TRACE
|
||||||
|
result->source_file = sub->source_file;
|
||||||
|
#endif /* MB_ENABLE_SOURCE_TRACE */
|
||||||
#ifdef MB_ENABLE_CLASS
|
#ifdef MB_ENABLE_CLASS
|
||||||
result->instance = instance;
|
result->instance = instance;
|
||||||
#endif /* MB_ENABLE_CLASS */
|
#endif /* MB_ENABLE_CLASS */
|
||||||
@ -7894,15 +7896,15 @@ static void _destroy_routine(mb_interpreter_t* s, _routine_t* r) {
|
|||||||
mb_assert(r);
|
mb_assert(r);
|
||||||
|
|
||||||
if(s) gc = &s->gc;
|
if(s) gc = &s->gc;
|
||||||
if(r->name) {
|
|
||||||
safe_free(r->name);
|
|
||||||
}
|
|
||||||
#ifdef MB_ENABLE_SOURCE_TRACE
|
|
||||||
if(r->source_file) {
|
|
||||||
safe_free(r->source_file);
|
|
||||||
}
|
|
||||||
#endif /* MB_ENABLE_SOURCE_TRACE */
|
|
||||||
if(!r->is_cloned) {
|
if(!r->is_cloned) {
|
||||||
|
if(r->name) {
|
||||||
|
safe_free(r->name);
|
||||||
|
}
|
||||||
|
#ifdef MB_ENABLE_SOURCE_TRACE
|
||||||
|
if(r->source_file) {
|
||||||
|
safe_free(r->source_file);
|
||||||
|
}
|
||||||
|
#endif /* MB_ENABLE_SOURCE_TRACE */
|
||||||
switch(r->type) {
|
switch(r->type) {
|
||||||
case _IT_SCRIPT:
|
case _IT_SCRIPT:
|
||||||
if(r->func.basic.scope) {
|
if(r->func.basic.scope) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user