patch 8.2.0111: VAR_SPECIAL is also used for booleans
Problem: VAR_SPECIAL is also used for booleans.
Solution: Add VAR_BOOL for better type checking.
diff --git a/src/if_py_both.h b/src/if_py_both.h
index d816386..af4b98d 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -844,23 +844,24 @@
}
}
}
- else if (our_tv->v_type == VAR_SPECIAL)
+ else if (our_tv->v_type == VAR_BOOL)
{
if (our_tv->vval.v_number == VVAL_FALSE)
{
ret = Py_False;
Py_INCREF(ret);
}
- else if (our_tv->vval.v_number == VVAL_TRUE)
+ else
{
ret = Py_True;
Py_INCREF(ret);
}
- else
- {
- Py_INCREF(Py_None);
- ret = Py_None;
- }
+ return ret;
+ }
+ else if (our_tv->v_type == VAR_SPECIAL)
+ {
+ Py_INCREF(Py_None);
+ ret = Py_None;
return ret;
}
else if (our_tv->v_type == VAR_BLOB)
@@ -6389,6 +6390,7 @@
case VAR_JOB:
Py_INCREF(Py_None);
return Py_None;
+ case VAR_BOOL:
case VAR_SPECIAL:
switch (tv->vval.v_number)
{