… | |
… | |
232 | key_value *key_values; /* Fields not explictly known by the loader. */ |
232 | key_value *key_values; /* Fields not explictly known by the loader. */ |
233 | }; |
233 | }; |
234 | |
234 | |
235 | struct object : zero_initialised, object_keep, object_copy, object_pod |
235 | struct object : zero_initialised, object_keep, object_copy, object_pod |
236 | { |
236 | { |
|
|
237 | static bool can_merge (object *op1, object *op2); |
|
|
238 | |
237 | void clear (); |
239 | void clear (); |
238 | void clone (object *destination); |
240 | void clone (object *destination); |
239 | }; |
241 | }; |
|
|
242 | |
|
|
243 | #define CAN_MERGE(op1,op2) ((op1)->value == (op2)->value && (op1)->name == (op2)->name && object::can_merge ((op1), (op2))) |
240 | |
244 | |
241 | typedef struct oblnk { /* Used to link together several objects */ |
245 | typedef struct oblnk { /* Used to link together several objects */ |
242 | object *ob; |
246 | object *ob; |
243 | struct oblnk *next; |
247 | struct oblnk *next; |
244 | tag_t id; |
248 | tag_t id; |