aboutsummaryrefslogtreecommitdiffstats
path: root/builtin.c
diff options
context:
space:
mode:
Diffstat (limited to 'builtin.c')
-rw-r--r--builtin.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/builtin.c b/builtin.c
index 942a36dd..e476ec99 100644
--- a/builtin.c
+++ b/builtin.c
@@ -3872,11 +3872,13 @@ do_typeof(int nargs)
{
NODE *arg;
char *res = "unknown";
+ bool deref = true;
arg = POP();
switch (arg->type) {
case Node_var_array:
res = "array";
+ deref = false;
break;
case Node_typedregex:
res = "regexp";
@@ -3899,7 +3901,8 @@ do_typeof(int nargs)
break;
}
- DEREF(arg);
+ if (deref)
+ DEREF(arg);
return make_string(res, strlen(res));
}