core: remove type parameter from object interface query functions
This commit is contained in:
@@ -111,16 +111,16 @@
|
|||||||
|
|
||||||
#define B_CLASS_DISPATCH_VIRTUAL(type_name, type_id, object, func, ...) \
|
#define B_CLASS_DISPATCH_VIRTUAL(type_name, type_id, object, func, ...) \
|
||||||
do { \
|
do { \
|
||||||
type_name##_class *iface = b_object_get_interface( \
|
type_name##_class *iface \
|
||||||
object, type_name##_class, type_id); \
|
= b_object_get_interface(object, type_id); \
|
||||||
if (iface && iface->func) { \
|
if (iface && iface->func) { \
|
||||||
return iface->func(__VA_ARGS__); \
|
return iface->func(__VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
#define B_CLASS_DISPATCH_VIRTUAL_V(type_name, type_id, object, func, ...) \
|
#define B_CLASS_DISPATCH_VIRTUAL_V(type_name, type_id, object, func, ...) \
|
||||||
do { \
|
do { \
|
||||||
type_name##_class *iface = b_object_get_interface( \
|
type_name##_class *iface \
|
||||||
object, type_name##_class, type_id); \
|
= b_object_get_interface(object, type_id); \
|
||||||
if (iface && iface->func) { \
|
if (iface && iface->func) { \
|
||||||
iface->func(__VA_ARGS__); \
|
iface->func(__VA_ARGS__); \
|
||||||
return; \
|
return; \
|
||||||
|
|||||||
@@ -18,19 +18,11 @@ typedef struct _b_object_class {
|
|||||||
void (*to_string)(b_object *, struct b_stream *);
|
void (*to_string)(b_object *, struct b_stream *);
|
||||||
} b_object_class;
|
} b_object_class;
|
||||||
|
|
||||||
#define b_object_get_private(object, private_struct, type_id) \
|
|
||||||
((private_struct *)z__b_object_get_private(B_OBJECT(object), type_id));
|
|
||||||
#define b_object_get_protected(object, protected_struct, type_id) \
|
|
||||||
((protected_struct *)z__b_object_get_protected(B_OBJECT(object), type_id));
|
|
||||||
#define b_object_get_interface(object, interface_struct, interface_id) \
|
|
||||||
((interface_struct *)z__b_object_get_interface( \
|
|
||||||
B_OBJECT(object), interface_id));
|
|
||||||
|
|
||||||
BLUE_API b_type b_object_get_type(void);
|
BLUE_API b_type b_object_get_type(void);
|
||||||
|
|
||||||
BLUE_API void *z__b_object_get_private(b_object *object, b_type type);
|
BLUE_API void *b_object_get_private(b_object *object, b_type type);
|
||||||
BLUE_API void *z__b_object_get_protected(b_object *object, b_type type);
|
BLUE_API void *b_object_get_protected(b_object *object, b_type type);
|
||||||
BLUE_API void *z__b_object_get_interface(b_object *object, b_type type);
|
BLUE_API void *b_object_get_interface(b_object *object, b_type type);
|
||||||
|
|
||||||
b_object *b_retain(b_object *p);
|
b_object *b_retain(b_object *p);
|
||||||
BLUE_API void b_release(b_object *p);
|
BLUE_API void b_release(b_object *p);
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ void b_object_to_string(struct _b_object *p, struct b_stream *out)
|
|||||||
b_stream_write_fmt(out, NULL, "<%s@%p>", p->obj_type->r_info->t_name, p);
|
b_stream_write_fmt(out, NULL, "<%s@%p>", p->obj_type->r_info->t_name, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void *z__b_object_get_private(struct _b_object *object, b_type type)
|
void *b_object_get_private(struct _b_object *object, b_type type)
|
||||||
{
|
{
|
||||||
if (b_type_id_compare(&object->obj_type->r_info->t_id, type) == 0) {
|
if (b_type_id_compare(&object->obj_type->r_info->t_id, type) == 0) {
|
||||||
return (char *)object + object->obj_main_priv_offset;
|
return (char *)object + object->obj_main_priv_offset;
|
||||||
@@ -92,7 +92,7 @@ void *z__b_object_get_private(struct _b_object *object, b_type type)
|
|||||||
return (char *)object + comp->c_instance_private_data_offset;
|
return (char *)object + comp->c_instance_private_data_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *z__b_object_get_protected(struct _b_object *object, b_type type)
|
void *b_object_get_protected(struct _b_object *object, b_type type)
|
||||||
{
|
{
|
||||||
struct b_type_component *comp
|
struct b_type_component *comp
|
||||||
= b_type_get_component(&object->obj_type->r_components, type);
|
= b_type_get_component(&object->obj_type->r_components, type);
|
||||||
@@ -103,7 +103,7 @@ void *z__b_object_get_protected(struct _b_object *object, b_type type)
|
|||||||
return (char *)object + comp->c_instance_protected_data_offset;
|
return (char *)object + comp->c_instance_protected_data_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *z__b_object_get_interface(struct _b_object *object, b_type type)
|
void *b_object_get_interface(struct _b_object *object, b_type type)
|
||||||
{
|
{
|
||||||
return z__b_class_get_interface(object->obj_type->r_class, type);
|
return z__b_class_get_interface(object->obj_type->r_class, type);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user