patch 9.0.1890: Vim9: lookup code for class/object repaeated
Problem: Vim9: lookup code for class/object repaeated
Solution: Refactor and make use of lookup functions
closes: #13067
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
diff --git a/src/proto/vim9class.pro b/src/proto/vim9class.pro
index 8413a81..a61c40f 100644
--- a/src/proto/vim9class.pro
+++ b/src/proto/vim9class.pro
@@ -6,8 +6,16 @@
void ex_type(exarg_T *eap);
int class_object_index(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int verbose);
ufunc_T *find_class_func(char_u **arg);
-int class_member_index(char_u *name, size_t len, class_T **cl_ret, cctx_T *cctx);
-int class_method_index(char_u *name, size_t len, class_T **cl_ret, cctx_T *cctx);
+int class_member_idx(class_T *cl, char_u *name, size_t namelen);
+ocmember_T *class_member_lookup(class_T *cl, char_u *name, size_t namelen, int *idx);
+int class_method_idx(class_T *cl, char_u *name, size_t namelen);
+ufunc_T *class_method_lookup(class_T *cl, char_u *name, size_t namelen, int *idx);
+int object_member_idx(class_T *cl, char_u *name, size_t namelen);
+ocmember_T *object_member_lookup(class_T *cl, char_u *name, size_t namelen, int *idx);
+int object_method_idx(class_T *cl, char_u *name, size_t namelen);
+ufunc_T *object_method_lookup(class_T *cl, char_u *name, size_t namelen, int *idx);
+ocmember_T *member_lookup(class_T *cl, vartype_T v_type, char_u *name, size_t namelen, int *idx);
+ufunc_T *method_lookup(class_T *cl, vartype_T v_type, char_u *name, size_t namelen, int *idx);
int inside_class(cctx_T *cctx_arg, class_T *cl);
void copy_object(typval_T *from, typval_T *to);
void object_unref(object_T *obj);