diff --git a/core/include/blue/core/macros.h b/core/include/blue/core/macros.h index ee9beb9..3e5a42d 100644 --- a/core/include/blue/core/macros.h +++ b/core/include/blue/core/macros.h @@ -111,16 +111,16 @@ #define B_CLASS_DISPATCH_VIRTUAL(type_name, type_id, object, func, ...) \ do { \ - type_name##_class *iface = b_object_get_interface( \ - object, type_name##_class, type_id); \ + type_name##_class *iface \ + = b_object_get_interface(object, type_id); \ if (iface && iface->func) { \ return iface->func(__VA_ARGS__); \ } \ } while (0) #define B_CLASS_DISPATCH_VIRTUAL_V(type_name, type_id, object, func, ...) \ do { \ - type_name##_class *iface = b_object_get_interface( \ - object, type_name##_class, type_id); \ + type_name##_class *iface \ + = b_object_get_interface(object, type_id); \ if (iface && iface->func) { \ iface->func(__VA_ARGS__); \ return; \ diff --git a/core/include/blue/core/object.h b/core/include/blue/core/object.h index 2a929be..fedf1c3 100644 --- a/core/include/blue/core/object.h +++ b/core/include/blue/core/object.h @@ -18,19 +18,11 @@ typedef struct _b_object_class { void (*to_string)(b_object *, struct b_stream *); } 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 void *z__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 *z__b_object_get_interface(b_object *object, b_type type); +BLUE_API void *b_object_get_private(b_object *object, b_type type); +BLUE_API void *b_object_get_protected(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); BLUE_API void b_release(b_object *p); diff --git a/core/object.c b/core/object.c index 29d8385..5e06dac 100644 --- a/core/object.c +++ b/core/object.c @@ -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); } -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) { 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; } -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 = 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; } -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); }