pike.git/
src/
pike_types.h
Branch:
Tag:
Non-build tags
All tags
No tags
2022-07-12
2022-07-12 15:07:03 by Henrik Grubbström (Grubba) <grubba@grubba.org>
db98e37928af4a700eae8df7254ce451ee085131 (
22
lines) (+
16
/-
6
)
[
Show
|
Annotate
]
Branch:
master
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; }