pike.git/
src/
pike_types.cmod
Branch:
Tag:
Non-build tags
All tags
No tags
2021-03-13
2021-03-13 11:28:24 by Henrik Grubbström (Grubba) <grubba@grubba.org>
6d57cd85dcd7d63b74788848a806fc96a594b9d5 (
9
lines) (+
5
/-
4
)
[
Show
|
Annotate
]
Branch:
master
Compiler
[Typechecker]
: Improved handling of NULL in pike_types_le().
8582:
case TWOT(T_FUNCTION, T_ARRAY): case TWOT(T_MANY, T_ARRAY): {
-
while (b->type == T_ARRAY) {
+
while (b
&& (b
->type == T_ARRAY)
)
{
b = b->cdr; array_cnt++; }
8592:
case TWOT(T_ARRAY, T_FUNCTION): case TWOT(T_ARRAY, T_MANY): {
-
while (a->type == T_ARRAY) {
+
while (a
&& (a
->type == T_ARRAY)
)
{
a = a->cdr; array_cnt--; }
8633:
b = b->cdr; }
-
if (a_tmp->type != T_VOID) {
+
if (a_tmp
&& (a_tmp
->type != T_VOID)
)
{
/* Note: flags never has grouping at this point. */ if (!low_pike_types_le(b_tmp, a_tmp, 0, flags ^ LE_A_B_SWAPPED)) { return 0;
8683:
/* check the returntype */ if (flags & LE_TYPE_SVALUE) return 1; /* FIXME: Check array_cnt */
-
if ((b->type != T_VOID) && (a->type != T_VOID)) {
+
if (
a && b &&
(b->type != T_VOID) && (a->type != T_VOID)) {
if(!low_pike_types_le(a, b, array_cnt, flags)) return 0; } return 1;