0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 9.0.1209: getting interface member does not always work

Problem:    Getting interface member does not always work.
Solution:   Convert the index on the interface to the index on the object.
            (closes #11825)
This commit is contained in:
Bram Moolenaar
2023-01-16 19:43:47 +00:00
parent a41e221935
commit 29ac5df37b
11 changed files with 162 additions and 20 deletions

View File

@@ -1483,6 +1483,14 @@ typedef struct {
char_u *ocm_init; // allocated
} ocmember_T;
// used for the lookup table of a class member index
typedef struct itf2class_S itf2class_T;
struct itf2class_S {
itf2class_T *i2c_next;
class_T *i2c_class;
// array with ints follows
};
#define CLASS_INTERFACE 1
// "class_T": used for v_class of typval of VAR_CLASS
@@ -1501,6 +1509,7 @@ struct class_S
int class_interface_count;
char_u **class_interfaces; // allocated array of names
class_T **class_interfaces_cl; // interfaces (counts as reference)
itf2class_T *class_itf2class; // member index lookup tables
// class members: "static varname"
int class_class_member_count;