summaryrefslogtreecommitdiffstats
path: root/src/evalfunc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/evalfunc.c')
-rw-r--r--src/evalfunc.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 501ee03582..b840220bd0 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -7347,6 +7347,22 @@ f_islocked(typval_T *argvars, typval_T *rettv)
|| tv_islocked(&di->di_tv));
}
}
+ else if (lv.ll_object != NULL)
+ {
+ typval_T *tv = ((typval_T *)(lv.ll_object + 1)) + lv.ll_oi;
+ rettv->vval.v_number = tv_islocked(tv);
+#ifdef LOG_LOCKVAR
+ ch_log(NULL, "LKVAR: f_islocked(): name %s (obj)", lv.ll_name);
+#endif
+ }
+ else if (lv.ll_class != NULL)
+ {
+ typval_T *tv = &lv.ll_class->class_members_tv[lv.ll_oi];
+ rettv->vval.v_number = tv_islocked(tv);
+#ifdef LOG_LOCKVAR
+ ch_log(NULL, "LKVAR: f_islocked(): name %s (cl)", lv.ll_name);
+#endif
+ }
else if (lv.ll_range)
emsg(_(e_range_not_allowed));
else if (lv.ll_newkey != NULL)