git-svn-id: http://svn.enlightenment.org/svn/e/trunk/PROTO/eobj@71931
7cbeb6ba-43b4-40fd-8cce-
4c39aea84d33
klass->data_offset = klass->parent->data_offset +
EO_ALIGN_SIZE(klass->parent->desc->data_size);
}
klass->data_offset = klass->parent->data_offset +
EO_ALIGN_SIZE(klass->parent->desc->data_size);
}
+ /* EO_BASE_CLASS is allowed not to have a parent. */
+ else if (id != EO_BASE_CLASS_ID)
+ {
+ /* No parent. */
+ switch (klass->desc->type)
+ {
+ case EO_CLASS_TYPE_REGULAR:
+ case EO_CLASS_TYPE_REGULAR_NO_INSTANT:
+ ERR("Regular classes ('%s') must inherit from EO_BASE_CLASS.", klass->desc->name);
+ goto cleanup;
+ break;
+ case EO_CLASS_TYPE_INTERFACE:
+ case EO_CLASS_TYPE_MIXIN:
+ /* Do nothing. */
+ break;
+ }
+ }
if (!_eo_class_check_op_descs(klass, id))
{
if (!_eo_class_check_op_descs(klass, id))
{
fail_if(klass);
/* Should create a class. */
fail_if(klass);
/* Should create a class. */
- klass = eo_class_new(&class_desc, 0, NULL, NULL);
+ klass = eo_class_new(&class_desc, 0, EO_BASE_CLASS, NULL);
fail_if(!klass);
(void) klass;
fail_if(!klass);
(void) klass;
klass_mixin = eo_class_new(&class_desc_mixin, 0, NULL, NULL);
fail_if(!klass_mixin);
klass_mixin = eo_class_new(&class_desc_mixin, 0, NULL, NULL);
fail_if(!klass_mixin);
- klass_simple = eo_class_new(&class_desc_simple, 0, NULL, NULL);
+ klass_simple = eo_class_new(&class_desc_simple, 0, EO_BASE_CLASS, NULL);
fail_if(!klass_simple);
klass = eo_class_new(&class_desc, 0, klass_simple, NULL);
fail_if(!klass_simple);
klass = eo_class_new(&class_desc, 0, klass_simple, NULL);