Branch: Tag:

2022-07-12

2022-07-12 15:07:03 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Compiler [Typechecker]: Add function name field to call_state.

198:   struct call_state   {    struct mapping *m; +  struct pike_string *fun_name;    INT32 argno;   };    - #define LOW_INIT_CALL_STATE(CS, ARGNO, MAP) do { \ -  if (((CS).m = (MAP))) { \ -  add_ref((CS).m); \ -  } \ -  (CS).argno = (ARGNO); \ + #define LOW_INIT_CALL_STATE(CS, NAME, ARGNO, MAP) do { \ +  if (((CS).m = (MAP))) { \ +  add_ref((CS).m); \ +  } \ +  if (!((CS).fun_name = (NAME))) { \ +  (CS).fun_name = unknown_function_string; \ +  } \ +  add_ref((CS).fun_name); \ +  (CS).argno = (ARGNO); \    } while (0)    - #define INIT_CALL_STATE(CS) LOW_INIT_CALL_STATE(CS, 0, NULL) + #define INIT_CALL_STATE(CS, NAME) LOW_INIT_CALL_STATE(CS, NAME, 1, NULL)      #define FREE_CALL_STATE(CS) free_call_state(&(CS))   
218:    free_mapping(cs->m);    cs->m = NULL;    } +  if (cs->fun_name) { +  free_string(cs->fun_name); +  cs->fun_name = NULL; +  }    cs->argno = 0;   }