Eo: Fix and use the abstract class .eo file.

Until now it was just there, but never generated or used.
This commit is contained in:
Tom Hacohen 2014-06-02 13:09:21 +01:00
parent 7a83c9c659
commit 10626ff538
6 changed files with 13 additions and 24 deletions

View File

@ -1,11 +1,18 @@
### Library
BUILT_SOURCES += \
lib/eo/eo_abstract_class.eo.c \
lib/eo/eo_abstract_class.eo.h
lib_LTLIBRARIES += lib/eo/libeo.la
installed_eomainheadersdir = $(includedir)/eo-@VMAJ@
dist_installed_eomainheaders_DATA = lib/eo/Eo.h
nodist_installed_eomainheaders_DATA = \
lib/eo/eo_abstract_class.eo.h
lib_eo_libeo_la_SOURCES = \
lib/eo/eo.c \
lib/eo/eo_ptr_indirection.c \

View File

@ -913,16 +913,7 @@ EAPI Eina_Bool eo_composite_is(const Eo *comp_obj);
* @{
*/
/**
* @def EO_CLASS_CLASS
* The class type for the Eo Class class.
*/
#define EO_CLASS_CLASS eo_class_class_get()
/**
* @brief Use #EO_CLASS_CLASS
* @internal
* */
EAPI const Eo_Class *eo_class_class_get(void);
#include "eo_abstract_class.eo.h"
/**
* @}

View File

@ -979,7 +979,7 @@ eo_class_get(const Eo *eo_id)
if (_eo_is_a_class(eo_id))
{
EO_CLASS_POINTER_RETURN_VAL(eo_id, _klass, NULL);
return eo_class_class_get();
return EO_ABSTRACT_CLASS_CLASS;
}
EO_OBJ_POINTER_RETURN_VAL(eo_id, obj, NULL);
@ -1802,7 +1802,7 @@ eo_init(void)
EINA_LOG_STATE_INIT);
/* bootstrap EO_CLASS_CLASS */
(void) eo_class_class_get();
(void) EO_ABSTRACT_CLASS_CLASS;
if (_eo_call_stack_key != 0)
WRN("_eo_call_stack_key already set, this should not happen.");

View File

@ -1,3 +1,4 @@
abstract Eo_Abstract_Class ()
{
data: null;
}

View File

@ -4,15 +4,5 @@
#include "Eo.h"
static const Eo_Class_Description class_desc = {
EO_VERSION,
"Eo_Abstract_Class",
EO_CLASS_TYPE_REGULAR_NO_INSTANT,
EO_CLASS_DESCRIPTION_NOOPS(),
NULL,
0,
NULL,
NULL
};
#include "eo_abstract_class.eo.c"
EO_DEFINE_CLASS(eo_class_class_get, &class_desc, NULL, NULL)

View File

@ -641,7 +641,7 @@ START_TEST(eo_magic_checks)
fail_if(eo_class_get((Eo *) buf));
fail_if(eo_class_name_get((Eo_Class*) buf));
fail_if(eo_class_get(obj) != SIMPLE_CLASS);
fail_if(eo_class_get(SIMPLE_CLASS) != EO_CLASS_CLASS);
fail_if(eo_class_get(SIMPLE_CLASS) != EO_ABSTRACT_CLASS_CLASS);
eo_do((Eo_Class *) buf,(void) NULL);
eo_do_super((Eo_Class *) buf, SIMPLE_CLASS, simple_a_set(++i));
eo_do_super(SIMPLE_CLASS, (Eo_Class *) buf, simple_a_set(++i));