Eo: Add a return value to eo_constructor().

From now on, constructors should return a value, usually the object
being worked on, or NULL (if the constructor failed). This can also
be used for implementing singletons, by just always returning the same
object from the constructor.

This is one of the final steps towards stabilizing Eo.

@feature
This commit is contained in:
Tom Hacohen 2015-05-19 11:41:27 +01:00
parent e7ed0bfced
commit 6efbfe227a
73 changed files with 262 additions and 151 deletions

View File

@ -26,7 +26,7 @@ struct _Colourable_Data
typedef struct _Colourable_Data Colourable_Data; typedef struct _Colourable_Data Colourable_Data;
void Eo *
_colourable_eo_base_constructor(Eo *obj, Colourable_Data *self EINA_UNUSED) _colourable_eo_base_constructor(Eo *obj, Colourable_Data *self EINA_UNUSED)
{ {
if(!_colourable_impl_logdomain) if(!_colourable_impl_logdomain)
@ -35,7 +35,7 @@ _colourable_eo_base_constructor(Eo *obj, Colourable_Data *self EINA_UNUSED)
= eina_log_domain_register("colourable", EINA_COLOR_BLUE); = eina_log_domain_register("colourable", EINA_COLOR_BLUE);
} }
DBG("_colourable_constructor(%p, %p)\n", obj, MY_CLASS); DBG("_colourable_constructor(%p, %p)\n", obj, MY_CLASS);
eo_do_super(obj, MY_CLASS, eo_constructor()); return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
} }
void void

View File

@ -19,12 +19,12 @@ extern "C"
static efl::eina::log_domain domain("colourable"); static efl::eina::log_domain domain("colourable");
void Eo *
_colourable_eo_base_constructor(Eo *obj, Colourable_Data *self) _colourable_eo_base_constructor(Eo *obj, Colourable_Data *self)
{ {
EINA_CXX_DOM_LOG_DBG(domain) << __func__ << std::endl; EINA_CXX_DOM_LOG_DBG(domain) << __func__ << std::endl;
self->r = self->g = self->b = 0; self->r = self->g = self->b = 0;
eo_do_super(obj, MY_CLASS, eo_constructor()); return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
} }
void void

View File

@ -13,7 +13,7 @@ struct _Colourable_Data
}; };
typedef struct _Colourable_Data Colourable_Data; typedef struct _Colourable_Data Colourable_Data;
void _colourable_eo_base_constructor(Eo *obj, Colourable_Data *self); Eo *_colourable_eo_base_constructor(Eo *obj, Colourable_Data *self);
void _colourable_eo_base_destructor(Eo *obj, Colourable_Data *self); void _colourable_eo_base_destructor(Eo *obj, Colourable_Data *self);
void _colourable_rgb_24bits_constructor(Eo *obj, Colourable_Data *self, int rgb); void _colourable_rgb_24bits_constructor(Eo *obj, Colourable_Data *self, int rgb);
void _colourable_print_colour(Eo *obj, Colourable_Data *self); void _colourable_print_colour(Eo *obj, Colourable_Data *self);

View File

@ -54,12 +54,11 @@ _ecore_audio_volume_get(Eo *eo_obj EINA_UNUSED, Ecore_Audio_Object *obj)
return obj->volume; return obj->volume;
} }
EOLIAN static void EOLIAN static Eo *
_ecore_audio_eo_base_constructor(Eo *eo_obj, Ecore_Audio_Object *obj) _ecore_audio_eo_base_constructor(Eo *eo_obj, Ecore_Audio_Object *obj)
{ {
eo_do_super(eo_obj, MY_CLASS, eo_constructor());
obj->volume = 1.0; obj->volume = 1.0;
return eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
} }
#include "ecore_audio.eo.c" #include "ecore_audio.eo.c"

View File

@ -170,12 +170,14 @@ _ecore_audio_in_ecore_audio_vio_set(Eo *eo_obj, Ecore_Audio_Input *obj, Ecore_Au
obj->seekable = (vio->seek != NULL); obj->seekable = (vio->seek != NULL);
} }
EOLIAN static void EOLIAN static Eo *
_ecore_audio_in_eo_base_constructor(Eo *eo_obj, Ecore_Audio_Input *obj) _ecore_audio_in_eo_base_constructor(Eo *eo_obj, Ecore_Audio_Input *obj)
{ {
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
obj->speed = 1.0; obj->speed = 1.0;
return eo_obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -107,12 +107,12 @@ _ecore_audio_in_tone_eo_base_key_data_get(Eo *eo_obj, Ecore_Audio_In_Tone_Data *
} }
} }
EOLIAN static void EOLIAN static Eo *
_ecore_audio_in_tone_eo_base_constructor(Eo *eo_obj, Ecore_Audio_In_Tone_Data *obj) _ecore_audio_in_tone_eo_base_constructor(Eo *eo_obj, Ecore_Audio_In_Tone_Data *obj)
{ {
Ecore_Audio_Input *in_obj = eo_data_scope_get(eo_obj, ECORE_AUDIO_IN_CLASS); Ecore_Audio_Input *in_obj = eo_data_scope_get(eo_obj, ECORE_AUDIO_IN_CLASS);
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
in_obj->channels = 1; in_obj->channels = 1;
in_obj->samplerate = 44100; in_obj->samplerate = 44100;
@ -120,6 +120,8 @@ _ecore_audio_in_tone_eo_base_constructor(Eo *eo_obj, Ecore_Audio_In_Tone_Data *o
in_obj->seekable = EINA_TRUE; in_obj->seekable = EINA_TRUE;
obj->freq = 1000; obj->freq = 1000;
return eo_obj;
} }
#include "ecore_audio_in_tone.eo.c" #include "ecore_audio_in_tone.eo.c"

View File

@ -129,12 +129,14 @@ _ecore_audio_out_ecore_audio_vio_set(Eo *eo_obj, Ecore_Audio_Output *_pd EINA_UN
ea_obj->vio->free_func = free_func; ea_obj->vio->free_func = free_func;
} }
EOLIAN static void EOLIAN static Eo *
_ecore_audio_out_eo_base_constructor(Eo *eo_obj, Ecore_Audio_Output *obj) _ecore_audio_out_eo_base_constructor(Eo *eo_obj, Ecore_Audio_Output *obj)
{ {
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
obj->need_writer = EINA_TRUE; obj->need_writer = EINA_TRUE;
return eo_obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -255,14 +255,14 @@ static void _state_job(void *data EINA_UNUSED)
class_vars.state_job = NULL; class_vars.state_job = NULL;
} }
EOLIAN static void EOLIAN static Eo *
_ecore_audio_out_pulse_eo_base_constructor(Eo *eo_obj, Ecore_Audio_Out_Pulse_Data *_pd EINA_UNUSED) _ecore_audio_out_pulse_eo_base_constructor(Eo *eo_obj, Ecore_Audio_Out_Pulse_Data *_pd EINA_UNUSED)
{ {
int argc; int argc;
char **argv; char **argv;
Ecore_Audio_Output *out_obj = eo_data_scope_get(eo_obj, ECORE_AUDIO_OUT_CLASS); Ecore_Audio_Output *out_obj = eo_data_scope_get(eo_obj, ECORE_AUDIO_OUT_CLASS);
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
out_obj->need_writer = EINA_FALSE; out_obj->need_writer = EINA_FALSE;
@ -281,6 +281,8 @@ _ecore_audio_out_pulse_eo_base_constructor(Eo *eo_obj, Ecore_Audio_Out_Pulse_Dat
class_vars.outputs = eina_list_append(class_vars.outputs, eo_obj); class_vars.outputs = eina_list_append(class_vars.outputs, eo_obj);
if (class_vars.state_job) eo_del(class_vars.state_job); if (class_vars.state_job) eo_del(class_vars.state_job);
class_vars.state_job = ecore_job_add(_state_job, NULL); class_vars.state_job = ecore_job_add(_state_job, NULL);
return eo_obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -158,17 +158,18 @@ _ecore_audio_out_sndfile_ecore_audio_format_get(Eo *eo_obj, Ecore_Audio_Out_Sndf
return obj->format; return obj->format;
} }
EOLIAN static void EOLIAN static Eo *
_ecore_audio_out_sndfile_eo_base_constructor(Eo *eo_obj, Ecore_Audio_Out_Sndfile_Data *_pd EINA_UNUSED) _ecore_audio_out_sndfile_eo_base_constructor(Eo *eo_obj, Ecore_Audio_Out_Sndfile_Data *_pd EINA_UNUSED)
{ {
Ecore_Audio_Output *out_obj = eo_data_scope_get(eo_obj, ECORE_AUDIO_OUT_CLASS); Ecore_Audio_Output *out_obj = eo_data_scope_get(eo_obj, ECORE_AUDIO_OUT_CLASS);
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
eo_do(eo_obj, ecore_audio_obj_format_set(ECORE_AUDIO_FORMAT_OGG)); eo_do(eo_obj, ecore_audio_obj_format_set(ECORE_AUDIO_FORMAT_OGG));
// FIXME: Use writer from output // FIXME: Use writer from output
out_obj->need_writer = EINA_FALSE; out_obj->need_writer = EINA_FALSE;
return eo_obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -372,15 +372,17 @@ ecore_con_server_add(Ecore_Con_Type compl_type,
return obj; return obj;
} }
EOLIAN static void EOLIAN static Eo *
_ecore_con_server_eo_base_constructor(Ecore_Con_Server *obj, Ecore_Con_Server_Data *svr) _ecore_con_server_eo_base_constructor(Ecore_Con_Server *obj, Ecore_Con_Server_Data *svr)
{ {
eo_do_super(obj, ECORE_CON_SERVER_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, ECORE_CON_SERVER_CLASS, obj, eo_constructor());
svr->fd = -1; svr->fd = -1;
svr->reject_excess_clients = EINA_FALSE; svr->reject_excess_clients = EINA_FALSE;
svr->client_limit = -1; svr->client_limit = -1;
svr->clients = NULL; svr->clients = NULL;
return obj;
} }
EOLIAN static Eo * EOLIAN static Eo *

View File

@ -453,25 +453,26 @@ ecore_con_url_new(const char *url)
return url_obj; return url_obj;
} }
EOLIAN static void EOLIAN static Eo *
_efl_network_url_eo_base_constructor(Efl_Network_Url *url_obj, Efl_Network_Url_Data *url_con EINA_UNUSED) _efl_network_url_eo_base_constructor(Efl_Network_Url *url_obj, Efl_Network_Url_Data *url_con EINA_UNUSED)
{ {
eo_do_super(url_obj, MY_CLASS, eo_constructor()); url_obj = eo_do_super_ret(url_obj, MY_CLASS, url_obj, eo_constructor());
if (!_init_count) eo_error_set(url_obj); if (!_init_count) eo_error_set(url_obj);
if (!_c_init()) if (!_c_init())
{ {
eo_error_set(url_obj); eo_error_set(url_obj);
return; return NULL;
} }
url_con->curl_easy = _c->curl_easy_init(); url_con->curl_easy = _c->curl_easy_init();
if (!url_con->curl_easy) if (!url_con->curl_easy)
{ {
eo_error_set(url_obj); eo_error_set(url_obj);
return; return NULL;
} }
return url_obj;
} }
EOLIAN static Eo * EOLIAN static Eo *

View File

@ -121,14 +121,16 @@ _ector_cairo_surface_ector_generic_surface_reference_point_set(Eo *obj EINA_UNUS
pd->current.y = y; pd->current.y = y;
} }
static void static Eo *
_ector_cairo_surface_eo_base_constructor(Eo *obj, _ector_cairo_surface_eo_base_constructor(Eo *obj,
Ector_Cairo_Surface_Data *pd) Ector_Cairo_Surface_Data *pd)
{ {
eo_do_super(obj, ECTOR_CAIRO_SURFACE_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, ECTOR_CAIRO_SURFACE_CLASS, obj, eo_constructor());
_cairo_count++; _cairo_count++;
_ector_cairo_surface_context_set(obj, pd, NULL); _ector_cairo_surface_context_set(obj, pd, NULL);
return obj;
} }
static void static void

View File

@ -190,16 +190,18 @@ _ector_renderer_cairo_base_ector_renderer_generic_base_draw(Eo *obj,
return EINA_TRUE; return EINA_TRUE;
} }
static void static Eo *
_ector_renderer_cairo_base_eo_base_constructor(Eo *obj, Ector_Renderer_Cairo_Base_Data *pd EINA_UNUSED) _ector_renderer_cairo_base_eo_base_constructor(Eo *obj, Ector_Renderer_Cairo_Base_Data *pd EINA_UNUSED)
{ {
eo_do_super(obj, ECTOR_RENDERER_CAIRO_BASE_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, ECTOR_RENDERER_CAIRO_BASE_CLASS, obj, eo_constructor());
pd->generic = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_BASE_CLASS, obj); pd->generic = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_BASE_CLASS, obj);
USE(obj, cairo_matrix_init_identity, ); USE(obj, cairo_matrix_init_identity, NULL);
cairo_matrix_init_identity(&identity); cairo_matrix_init_identity(&identity);
return obj;
} }
static void static void

View File

@ -244,15 +244,17 @@ _ector_renderer_cairo_shape_ector_renderer_generic_base_bounds_get(Eo *obj,
r->y += bd->generic->origin.y; r->y += bd->generic->origin.y;
} }
void Eo *
_ector_renderer_cairo_shape_eo_base_constructor(Eo *obj, Ector_Renderer_Cairo_Shape_Data *pd) _ector_renderer_cairo_shape_eo_base_constructor(Eo *obj, Ector_Renderer_Cairo_Shape_Data *pd)
{ {
eo_do_super(obj, ECTOR_RENDERER_CAIRO_SHAPE_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, ECTOR_RENDERER_CAIRO_SHAPE_CLASS, obj, eo_constructor());
pd->shape = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_SHAPE_MIXIN, obj); pd->shape = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_SHAPE_MIXIN, obj);
pd->base = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_BASE_CLASS, obj); pd->base = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_BASE_CLASS, obj);
eo_do(obj, eo_do(obj,
eo_event_callback_add(EFL_GFX_PATH_CHANGED, _ector_renderer_cairo_shape_path_changed, pd)); eo_event_callback_add(EFL_GFX_PATH_CHANGED, _ector_renderer_cairo_shape_path_changed, pd));
return obj;
} }
void void

View File

@ -71,13 +71,15 @@ _ector_renderer_software_gradient_linear_ector_renderer_software_base_fill(Eo *o
return EINA_TRUE; return EINA_TRUE;
} }
void Eo *
_ector_renderer_software_gradient_linear_eo_base_constructor(Eo *obj, _ector_renderer_software_gradient_linear_eo_base_constructor(Eo *obj,
Ector_Renderer_Software_Gradient_Data *pd) Ector_Renderer_Software_Gradient_Data *pd)
{ {
eo_do_super(obj, ECTOR_RENDERER_SOFTWARE_GRADIENT_LINEAR_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, ECTOR_RENDERER_SOFTWARE_GRADIENT_LINEAR_CLASS, obj, eo_constructor());
pd->gd = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_GRADIENT_MIXIN, obj); pd->gd = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_GRADIENT_MIXIN, obj);
pd->gld = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_GRADIENT_LINEAR_MIXIN, obj); pd->gld = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_GRADIENT_LINEAR_MIXIN, obj);
return obj;
} }
void void

View File

@ -79,13 +79,15 @@ _ector_renderer_software_gradient_radial_ector_renderer_software_base_fill(Eo *o
return EINA_TRUE; return EINA_TRUE;
} }
void Eo *
_ector_renderer_software_gradient_radial_eo_base_constructor(Eo *obj, _ector_renderer_software_gradient_radial_eo_base_constructor(Eo *obj,
Ector_Renderer_Software_Gradient_Data *pd) Ector_Renderer_Software_Gradient_Data *pd)
{ {
eo_do_super(obj, ECTOR_RENDERER_SOFTWARE_GRADIENT_RADIAL_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, ECTOR_RENDERER_SOFTWARE_GRADIENT_RADIAL_CLASS, obj, eo_constructor());
pd->gd = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_GRADIENT_MIXIN, obj); pd->gd = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_GRADIENT_MIXIN, obj);
pd->gld = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_GRADIENT_RADIAL_MIXIN, obj); pd->gld = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_GRADIENT_RADIAL_MIXIN, obj);
return obj;
} }
void void

View File

@ -362,14 +362,16 @@ _ector_renderer_software_shape_path_changed(void *data, Eo *obj EINA_UNUSED, con
return EINA_TRUE; return EINA_TRUE;
} }
void Eo *
_ector_renderer_software_shape_eo_base_constructor(Eo *obj, Ector_Renderer_Software_Shape_Data *pd) _ector_renderer_software_shape_eo_base_constructor(Eo *obj, Ector_Renderer_Software_Shape_Data *pd)
{ {
eo_do_super(obj, ECTOR_RENDERER_SOFTWARE_SHAPE_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, ECTOR_RENDERER_SOFTWARE_SHAPE_CLASS, obj, eo_constructor());
pd->shape = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_SHAPE_MIXIN, obj); pd->shape = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_SHAPE_MIXIN, obj);
pd->base = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_BASE_CLASS, obj); pd->base = eo_data_xref(obj, ECTOR_RENDERER_GENERIC_BASE_CLASS, obj);
eo_do(obj, eo_do(obj,
eo_event_callback_add(EFL_GFX_PATH_CHANGED, _ector_renderer_software_shape_path_changed, pd)); eo_event_callback_add(EFL_GFX_PATH_CHANGED, _ector_renderer_software_shape_path_changed, pd));
return obj;
} }
void void

View File

@ -65,17 +65,19 @@ _ector_software_surface_surface_get(Eo *obj EINA_UNUSED,
*height = pd->software->fill_data.raster_buffer.height; *height = pd->software->fill_data.raster_buffer.height;
} }
static void static Eo *
_ector_software_surface_eo_base_constructor(Eo *obj, _ector_software_surface_eo_base_constructor(Eo *obj,
Ector_Software_Surface_Data *pd EINA_UNUSED) Ector_Software_Surface_Data *pd EINA_UNUSED)
{ {
eo_do_super(obj, ECTOR_SOFTWARE_SURFACE_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, ECTOR_SOFTWARE_SURFACE_CLASS, obj, eo_constructor());
if(_software_count == 0) if(_software_count == 0)
{ {
pd->software = (Software_Rasterizer *) calloc(1, sizeof(Software_Rasterizer)); pd->software = (Software_Rasterizer *) calloc(1, sizeof(Software_Rasterizer));
ector_software_rasterizer_init(pd->software); ector_software_rasterizer_init(pd->software);
} }
_software_count++; _software_count++;
return obj;
} }
static void static void

View File

@ -239,12 +239,12 @@ edje_edit_object_add(Evas *evas)
return e; return e;
} }
EOLIAN static void EOLIAN static Eo *
_edje_edit_eo_base_constructor(Eo *obj, Edje_Edit *eed) _edje_edit_eo_base_constructor(Eo *obj, Edje_Edit *eed)
{ {
eed->base = eo_data_ref(obj, EDJE_OBJECT_CLASS); eed->base = eo_data_ref(obj, EDJE_OBJECT_CLASS);
eo_do_super(obj, MY_CLASS, eo_constructor()); return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
} }
EOLIAN static void EOLIAN static void

View File

@ -24,14 +24,16 @@ edje_object_add(Evas *evas)
return e; return e;
} }
EOLIAN static void EOLIAN static Eo *
_edje_object_eo_base_constructor(Eo *obj, Edje *ed) _edje_object_eo_base_constructor(Eo *obj, Edje *ed)
{ {
ed->base = eo_data_ref(obj, EVAS_SMART_CLIPPED_CLASS); ed->base = eo_data_ref(obj, EVAS_SMART_CLIPPED_CLASS);
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
eo_do(obj, evas_obj_type_set(MY_CLASS_NAME_LEGACY)); eo_do(obj, evas_obj_type_set(MY_CLASS_NAME_LEGACY));
_edje_lib_ref(); _edje_lib_ref();
return obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -623,15 +623,15 @@ _eio_model_efl_model_base_children_slice_get(Eo *obj EINA_UNUSED, Eio_Model_Data
/** /**
* Class definitions * Class definitions
*/ */
static void static Eo *
_eio_model_eo_base_constructor(Eo *obj, Eio_Model_Data *priv) _eio_model_eo_base_constructor(Eo *obj, Eio_Model_Data *priv)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
unsigned int i; unsigned int i;
priv->obj = obj; priv->obj = obj;
priv->properties_name = eina_array_new(EIO_MODEL_PROP_LAST); priv->properties_name = eina_array_new(EIO_MODEL_PROP_LAST);
EINA_SAFETY_ON_NULL_RETURN(priv->properties_name); EINA_SAFETY_ON_NULL_RETURN_VAL(priv->properties_name, NULL);
for (i = 0; i < EIO_MODEL_PROP_LAST; ++i) for (i = 0; i < EIO_MODEL_PROP_LAST; ++i)
eina_array_push(priv->properties_name, _eio_model_prop_names[i]); eina_array_push(priv->properties_name, _eio_model_prop_names[i]);
@ -645,6 +645,8 @@ _eio_model_eo_base_constructor(Eo *obj, Eio_Model_Data *priv)
priv->load.status = EFL_MODEL_LOAD_STATUS_UNLOADED; priv->load.status = EFL_MODEL_LOAD_STATUS_UNLOADED;
priv->monitor = NULL; priv->monitor = NULL;
eina_spinlock_new(&priv->filter_lock); eina_spinlock_new(&priv->filter_lock);
return obj;
} }
static void static void

View File

@ -263,11 +263,13 @@ emotion_object_add(Evas *evas)
return e; return e;
} }
EOLIAN static void EOLIAN static Eo *
_emotion_object_eo_base_constructor(Eo *obj, Emotion_Object_Data *pd EINA_UNUSED) _emotion_object_eo_base_constructor(Eo *obj, Emotion_Object_Data *pd EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
eo_do(obj, evas_obj_type_set(E_OBJ_NAME)); eo_do(obj, evas_obj_type_set(E_OBJ_NAME));
return obj;
} }
EAPI Evas_Object * EAPI Evas_Object *

View File

@ -639,8 +639,8 @@ EAPI void eo_error_set_internal(const Eo *obj, const char *file, int line);
#define _eo_add_common(klass, parent, is_ref, ...) \ #define _eo_add_common(klass, parent, is_ref, ...) \
( \ ( \
_eo_do_start(_eo_add_internal_start(__FILE__, __LINE__, klass, parent, is_ref), \ _eo_do_start(_eo_add_internal_start(__FILE__, __LINE__, klass, parent, is_ref), \
klass, EINA_FALSE, __FILE__, __FUNCTION__, __LINE__), \ klass, EINA_FALSE, __FILE__, __FUNCTION__, __LINE__) \
eo_constructor(), ##__VA_ARGS__, \ , ##__VA_ARGS__, \
(Eo *) _eo_add_end() \ (Eo *) _eo_add_end() \
) )

View File

@ -920,6 +920,18 @@ _eo_add_internal_start(const char *file, int line, const Eo_Class *klass_id, Eo
} }
} }
/* eo_id can change here. Freeing is done on the resolved object. */
eo_do(eo_id, eo_id = eo_constructor());
if (!eo_id)
{
ERR("Object of class '%s' - Error while constructing object",
klass->desc->name);
/* Unref twice, once for the ref in _eo_add_internal_start, and once for the basic object ref. */
_eo_unref(obj);
_eo_unref(obj);
return NULL;
}
return eo_id; return eo_id;
} }

View File

@ -45,6 +45,7 @@ Return event freeze count. */
constructor { constructor {
/*@ Call the object's constructor. /*@ Call the object's constructor.
Should not be used with #eo_do. Only use it with #eo_do_super. */ Should not be used with #eo_do. Only use it with #eo_do_super. */
return: Eo *; /*@ The new object created, can be NULL if aborting */
} }
destructor { destructor {
/*@ Call the object's destructor. /*@ Call the object's destructor.

View File

@ -967,12 +967,14 @@ EAPI const Eina_Value_Type *EO_DBG_INFO_TYPE = &_EO_DBG_INFO_TYPE;
/* EO_BASE_CLASS stuff */ /* EO_BASE_CLASS stuff */
#define MY_CLASS EO_BASE_CLASS #define MY_CLASS EO_BASE_CLASS
EOLIAN static void EOLIAN static Eo *
_eo_base_constructor(Eo *obj, Eo_Base_Data *pd EINA_UNUSED) _eo_base_constructor(Eo *obj, Eo_Base_Data *pd EINA_UNUSED)
{ {
DBG("%p - %s.", obj, eo_class_name_get(MY_CLASS)); DBG("%p - %s.", obj, eo_class_name_get(MY_CLASS));
_eo_condtor_done(obj); _eo_condtor_done(obj);
return obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -62,12 +62,14 @@ evas_3d_camera_node_del(Evas_3D_Camera *camera, Evas_3D_Node *node)
else eina_hash_set(pd->nodes, &node, (const void *)(uintptr_t)(count - 1)); else eina_hash_set(pd->nodes, &node, (const void *)(uintptr_t)(count - 1));
} }
EOLIAN static void EOLIAN static Eo *
_evas_3d_camera_eo_base_constructor(Eo *obj, _evas_3d_camera_eo_base_constructor(Eo *obj,
Evas_3D_Camera_Data *pd EINA_UNUSED) Evas_3D_Camera_Data *pd EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_CAMERA)); eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_CAMERA));
return obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -76,10 +76,10 @@ evas_3d_light_add(Evas *e)
return eo_obj; return eo_obj;
} }
EOLIAN static void EOLIAN static Eo *
_evas_3d_light_eo_base_constructor(Eo *obj, Evas_3D_Light_Data *pd) _evas_3d_light_eo_base_constructor(Eo *obj, Evas_3D_Light_Data *pd)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_LIGHT)); eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_LIGHT));
evas_color_set(&pd->ambient, 0.0, 0.0, 0.0, 1.0); evas_color_set(&pd->ambient, 0.0, 0.0, 0.0, 1.0);
evas_color_set(&pd->diffuse, 1.0, 1.0, 1.0, 1.0); evas_color_set(&pd->diffuse, 1.0, 1.0, 1.0, 1.0);
@ -92,6 +92,8 @@ _evas_3d_light_eo_base_constructor(Eo *obj, Evas_3D_Light_Data *pd)
pd->atten_const = 1.0; pd->atten_const = 1.0;
pd->atten_linear = 0.0; pd->atten_linear = 0.0;
pd->atten_quad = 0.0; pd->atten_quad = 0.0;
return obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -88,10 +88,10 @@ evas_3d_material_add(Evas *e)
return eo_obj; return eo_obj;
} }
EOLIAN static void EOLIAN static Eo *
_evas_3d_material_eo_base_constructor(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd) _evas_3d_material_eo_base_constructor(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_MATERIAL)); eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_MATERIAL));
evas_color_set(&pd->attribs[EVAS_3D_MATERIAL_AMBIENT].color, 0.2, 0.2, 0.2, 1.0); evas_color_set(&pd->attribs[EVAS_3D_MATERIAL_AMBIENT].color, 0.2, 0.2, 0.2, 1.0);
@ -99,6 +99,8 @@ _evas_3d_material_eo_base_constructor(Eo *obj EINA_UNUSED, Evas_3D_Material_Data
evas_color_set(&pd->attribs[EVAS_3D_MATERIAL_SPECULAR].color, 1.0, 1.0, 1.0, 1.0); evas_color_set(&pd->attribs[EVAS_3D_MATERIAL_SPECULAR].color, 1.0, 1.0, 1.0, 1.0);
evas_color_set(&pd->attribs[EVAS_3D_MATERIAL_EMISSION].color, 0.0, 0.0, 0.0, 1.0); evas_color_set(&pd->attribs[EVAS_3D_MATERIAL_EMISSION].color, 0.0, 0.0, 0.0, 1.0);
pd->shininess = 150.0; pd->shininess = 150.0;
return obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -252,12 +252,14 @@ evas_3d_mesh_add(Evas *e)
return eo_obj; return eo_obj;
} }
EOLIAN static void EOLIAN static Eo *
_evas_3d_mesh_eo_base_constructor(Eo *obj, Evas_3D_Mesh_Data *pd) _evas_3d_mesh_eo_base_constructor(Eo *obj, Evas_3D_Mesh_Data *pd)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
eo_do (obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_MESH)); eo_do (obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_MESH));
_mesh_init(pd); _mesh_init(pd);
return obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -3,15 +3,17 @@
#define MY_CLASS EVAS_3D_OBJECT_CLASS #define MY_CLASS EVAS_3D_OBJECT_CLASS
EOLIAN static void EOLIAN static Eo *
_evas_3d_object_eo_base_constructor(Eo *obj, Evas_3D_Object_Data *pd) _evas_3d_object_eo_base_constructor(Eo *obj, Evas_3D_Object_Data *pd)
{ {
Eo *e = NULL; Eo *e = NULL;
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
eo_do(obj, e = eo_parent_get()); eo_do(obj, e = eo_parent_get());
pd->evas = e; pd->evas = e;
pd->type = EVAS_3D_OBJECT_TYPE_INVALID; pd->type = EVAS_3D_OBJECT_TYPE_INVALID;
memset(&pd->dirty[0], 0x00, sizeof(Eina_Bool) * EVAS_3D_STATE_MAX); memset(&pd->dirty[0], 0x00, sizeof(Eina_Bool) * EVAS_3D_STATE_MAX);
return obj;
} }
EOLIAN static Evas * EOLIAN static Evas *

View File

@ -64,16 +64,18 @@ evas_3d_scene_add(Evas *e)
return eo_obj; return eo_obj;
} }
EOLIAN static void EOLIAN static Eo *
_evas_3d_scene_eo_base_constructor(Eo *obj, Evas_3D_Scene_Data *pd) _evas_3d_scene_eo_base_constructor(Eo *obj, Evas_3D_Scene_Data *pd)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_SCENE)); eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_SCENE));
evas_color_set(&pd->bg_color, 0.0, 0.0, 0.0, 0.0); evas_color_set(&pd->bg_color, 0.0, 0.0, 0.0, 0.0);
pd->shadows_enabled = EINA_FALSE; pd->shadows_enabled = EINA_FALSE;
pd->color_pick_enabled = EINA_FALSE; pd->color_pick_enabled = EINA_FALSE;
pd->node_mesh_colors = NULL; pd->node_mesh_colors = NULL;
pd->colors_node_mesh = NULL; pd->colors_node_mesh = NULL;
return obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -319,13 +319,15 @@ evas_3d_texture_add(Evas *e)
} }
EOLIAN static void EOLIAN static Eo *
_evas_3d_texture_eo_base_constructor(Eo *obj, Evas_3D_Texture_Data *pd EINA_UNUSED) _evas_3d_texture_eo_base_constructor(Eo *obj, Evas_3D_Texture_Data *pd EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
pd->atlas_enable = EINA_TRUE; pd->atlas_enable = EINA_TRUE;
eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_TEXTURE)); eo_do(obj, evas_3d_object_type_set(EVAS_3D_OBJECT_TYPE_TEXTURE));
return obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -148,10 +148,10 @@ evas_new(void)
return eo_obj; return eo_obj;
} }
EOLIAN static void EOLIAN static Eo *
_evas_canvas_eo_base_constructor(Eo *eo_obj, Evas_Public_Data *e) _evas_canvas_eo_base_constructor(Eo *eo_obj, Evas_Public_Data *e)
{ {
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
e->evas = eo_obj; e->evas = eo_obj;
e->output.render_method = RENDER_METHOD_INVALID; e->output.render_method = RENDER_METHOD_INVALID;
@ -185,6 +185,8 @@ _evas_canvas_eo_base_constructor(Eo *eo_obj, Evas_Public_Data *e)
#undef EVAS_ARRAY_SET #undef EVAS_ARRAY_SET
eina_lock_new(&(e->lock_objects)); eina_lock_new(&(e->lock_objects));
return eo_obj;
} }
EAPI void EAPI void

View File

@ -462,13 +462,15 @@ evas_object_box_add(Evas *evas)
return obj; return obj;
} }
EOLIAN static void EOLIAN static Eo *
_evas_box_eo_base_constructor(Eo *obj, Evas_Object_Box_Data *class_data EINA_UNUSED) _evas_box_eo_base_constructor(Eo *obj, Evas_Object_Box_Data *class_data EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
eo_do(obj, eo_do(obj,
evas_obj_smart_callbacks_descriptions_set(_signals), evas_obj_smart_callbacks_descriptions_set(_signals),
evas_obj_type_set(MY_CLASS_NAME_LEGACY)); evas_obj_type_set(MY_CLASS_NAME_LEGACY));
return obj;
} }
EOLIAN static Evas_Object* EOLIAN static Evas_Object*

View File

@ -269,12 +269,13 @@ evas_object_grid_add(Evas *evas)
return obj; return obj;
} }
EOLIAN static void EOLIAN static Eo *
_evas_grid_eo_base_constructor(Eo *obj, Evas_Grid_Data *class_data EINA_UNUSED) _evas_grid_eo_base_constructor(Eo *obj, Evas_Grid_Data *class_data EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
eo_do(obj, evas_obj_smart_attach(_evas_object_grid_smart_class_new())); eo_do(obj, evas_obj_smart_attach(_evas_object_grid_smart_class_new()));
return obj;
// return evas_object_smart_add(evas, _evas_object_grid_smart_class_new()); // return evas_object_smart_add(evas, _evas_object_grid_smart_class_new());
} }

View File

@ -342,7 +342,7 @@ _init_cow(Eo *eo_obj)
return EINA_TRUE; return EINA_TRUE;
} }
EOLIAN static void EOLIAN static Eo *
_evas_image_eo_base_constructor(Eo *eo_obj, Evas_Image_Data *o) _evas_image_eo_base_constructor(Eo *eo_obj, Evas_Image_Data *o)
{ {
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
@ -350,7 +350,7 @@ _evas_image_eo_base_constructor(Eo *eo_obj, Evas_Image_Data *o)
Eo *parent = NULL; Eo *parent = NULL;
Evas_Colorspace cspace; Evas_Colorspace cspace;
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
eo_do(eo_obj, parent = eo_parent_get()); eo_do(eo_obj, parent = eo_parent_get());
eo_e = evas_object_evas_get(parent); eo_e = evas_object_evas_get(parent);
@ -359,7 +359,7 @@ _evas_image_eo_base_constructor(Eo *eo_obj, Evas_Image_Data *o)
evas_object_inject(eo_obj, obj, eo_e); evas_object_inject(eo_obj, obj, eo_e);
if (!_init_cow(eo_obj)) if (!_init_cow(eo_obj))
return; return NULL;
o->load_opts = eina_cow_alloc(evas_object_image_load_opts_cow); o->load_opts = eina_cow_alloc(evas_object_image_load_opts_cow);
o->pixels = eina_cow_alloc(evas_object_image_pixels_cow); o->pixels = eina_cow_alloc(evas_object_image_pixels_cow);
@ -377,6 +377,8 @@ _evas_image_eo_base_constructor(Eo *eo_obj, Evas_Image_Data *o)
state_write->filter = eina_cow_alloc(evas_object_filter_cow); state_write->filter = eina_cow_alloc(evas_object_filter_cow);
EINA_COW_IMAGE_STATE_WRITE_END(o, state_write); EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
} }
return eo_obj;
} }
EAPI Evas_Object * EAPI Evas_Object *

View File

@ -214,14 +214,14 @@ evas_object_line_init(Evas_Object *eo_obj)
obj->type = o_type; obj->type = o_type;
} }
EOLIAN static void EOLIAN static Eo *
_evas_line_eo_base_constructor(Eo *eo_obj, Evas_Line_Data *class_data EINA_UNUSED) _evas_line_eo_base_constructor(Eo *eo_obj, Evas_Line_Data *class_data EINA_UNUSED)
{ {
Evas_Object_Protected_Data *obj; Evas_Object_Protected_Data *obj;
Evas_Line_Data *o; Evas_Line_Data *o;
Eo *parent = NULL; Eo *parent = NULL;
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
evas_object_line_init(eo_obj); evas_object_line_init(eo_obj);
@ -235,6 +235,8 @@ _evas_line_eo_base_constructor(Eo *eo_obj, Evas_Line_Data *class_data EINA_UNUSE
o->cur.x2 = 31; o->cur.x2 = 31;
o->cur.y2 = 31; o->cur.y2 = 31;
o->prev = o->cur; o->prev = o->cur;
return eo_obj;
} }
static void static void

View File

@ -82,12 +82,12 @@ _init_cow(void)
return EINA_TRUE; return EINA_TRUE;
} }
EOLIAN static void EOLIAN static Eo *
_evas_object_eo_base_constructor(Eo *eo_obj, Evas_Object_Protected_Data *obj) _evas_object_eo_base_constructor(Eo *eo_obj, Evas_Object_Protected_Data *obj)
{ {
Eo *parent = NULL; Eo *parent = NULL;
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
eo_do(eo_obj, evas_obj_type_set(MY_CLASS_NAME)); eo_do(eo_obj, evas_obj_type_set(MY_CLASS_NAME));
eo_manual_free_set(eo_obj, EINA_TRUE); eo_manual_free_set(eo_obj, EINA_TRUE);
@ -96,7 +96,7 @@ _evas_object_eo_base_constructor(Eo *eo_obj, Evas_Object_Protected_Data *obj)
if (!obj || !_init_cow() || !eo_isa(parent, EVAS_COMMON_INTERFACE_INTERFACE)) if (!obj || !_init_cow() || !eo_isa(parent, EVAS_COMMON_INTERFACE_INTERFACE))
{ {
eo_error_set(eo_obj); eo_error_set(eo_obj);
return; return NULL;
} }
obj->is_frame = EINA_FALSE; obj->is_frame = EINA_FALSE;
@ -107,6 +107,8 @@ _evas_object_eo_base_constructor(Eo *eo_obj, Evas_Object_Protected_Data *obj)
obj->prev = eina_cow_alloc(evas_object_state_cow); obj->prev = eina_cow_alloc(evas_object_state_cow);
obj->data_3d = eina_cow_alloc(evas_object_3d_cow); obj->data_3d = eina_cow_alloc(evas_object_3d_cow);
obj->mask = eina_cow_alloc(evas_object_mask_cow); obj->mask = eina_cow_alloc(evas_object_mask_cow);
return eo_obj;
} }
void void

View File

@ -101,18 +101,20 @@ evas_object_polygon_add(Evas *e)
return eo_obj; return eo_obj;
} }
EOLIAN static void EOLIAN static Eo *
_evas_polygon_eo_base_constructor(Eo *eo_obj, Evas_Polygon_Data *class_data EINA_UNUSED) _evas_polygon_eo_base_constructor(Eo *eo_obj, Evas_Polygon_Data *class_data EINA_UNUSED)
{ {
Evas_Object_Protected_Data *obj; Evas_Object_Protected_Data *obj;
Eo *parent = NULL; Eo *parent = NULL;
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
evas_object_polygon_init(eo_obj); evas_object_polygon_init(eo_obj);
eo_do(eo_obj, parent = eo_parent_get()); eo_do(eo_obj, parent = eo_parent_get());
evas_object_inject(eo_obj, obj, evas_object_evas_get(parent)); evas_object_inject(eo_obj, obj, evas_object_evas_get(parent));
return eo_obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -89,18 +89,20 @@ evas_object_rectangle_add(Evas *e)
return eo_obj; return eo_obj;
} }
EOLIAN static void EOLIAN static Eo *
_evas_rectangle_eo_base_constructor(Eo *eo_obj, Evas_Rectangle_Data *class_data EINA_UNUSED) _evas_rectangle_eo_base_constructor(Eo *eo_obj, Evas_Rectangle_Data *class_data EINA_UNUSED)
{ {
Eo *parent = NULL; Eo *parent = NULL;
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
evas_object_rectangle_init(eo_obj); evas_object_rectangle_init(eo_obj);
eo_do(eo_obj, parent = eo_parent_get()); eo_do(eo_obj, parent = eo_parent_get());
evas_object_inject(eo_obj, obj, evas_object_evas_get(parent)); evas_object_inject(eo_obj, obj, evas_object_evas_get(parent));
return eo_obj;
} }
/* all nice and private */ /* all nice and private */

View File

@ -545,7 +545,7 @@ evas_object_smart_add(Evas *eo_e, Evas_Smart *s)
return eo_obj; return eo_obj;
} }
EOLIAN static void EOLIAN static Eo *
_evas_object_smart_eo_base_constructor(Eo *eo_obj, Evas_Smart_Data *class_data EINA_UNUSED) _evas_object_smart_eo_base_constructor(Eo *eo_obj, Evas_Smart_Data *class_data EINA_UNUSED)
{ {
Evas_Object_Protected_Data *obj; Evas_Object_Protected_Data *obj;
@ -555,7 +555,7 @@ _evas_object_smart_eo_base_constructor(Eo *eo_obj, Evas_Smart_Data *class_data E
smart = class_data; smart = class_data;
smart->object = eo_obj; smart->object = eo_obj;
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
evas_object_smart_init(eo_obj); evas_object_smart_init(eo_obj);
obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
@ -564,6 +564,8 @@ _evas_object_smart_eo_base_constructor(Eo *eo_obj, Evas_Smart_Data *class_data E
eo_do(eo_obj, eo_do(eo_obj,
evas_obj_type_set(MY_CLASS_NAME_LEGACY), evas_obj_type_set(MY_CLASS_NAME_LEGACY),
evas_obj_smart_add()); evas_obj_smart_add());
return eo_obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -250,10 +250,10 @@ evas_object_smart_clipped_class_get(void)
return class; return class;
} }
EOLIAN static void EOLIAN static Eo *
_evas_smart_clipped_eo_base_constructor(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *class_data EINA_UNUSED) _evas_smart_clipped_eo_base_constructor(Eo *obj, Evas_Object_Smart_Clipped_Data *class_data EINA_UNUSED)
{ {
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
} }
#include "canvas/evas_smart_clipped.eo.c" #include "canvas/evas_smart_clipped.eo.c"

View File

@ -966,11 +966,13 @@ evas_object_table_add(Evas *evas)
return obj; return obj;
} }
EOLIAN static void EOLIAN static Eo *
_evas_table_eo_base_constructor(Eo *obj, Evas_Table_Data *class_data EINA_UNUSED) _evas_table_eo_base_constructor(Eo *obj, Evas_Table_Data *class_data EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
eo_do(obj, evas_obj_type_set(MY_CLASS_NAME_LEGACY)); eo_do(obj, evas_obj_type_set(MY_CLASS_NAME_LEGACY));
return obj;
} }
EOLIAN static Evas_Object* EOLIAN static Evas_Object*

View File

@ -365,10 +365,10 @@ evas_object_text_add(Evas *e)
return eo_obj; return eo_obj;
} }
EOLIAN static void EOLIAN static Eo *
_evas_text_eo_base_constructor(Eo *eo_obj, Evas_Text_Data *o) _evas_text_eo_base_constructor(Eo *eo_obj, Evas_Text_Data *o)
{ {
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
evas_object_text_init(eo_obj); evas_object_text_init(eo_obj);
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
Eo *parent = NULL; Eo *parent = NULL;
@ -377,6 +377,8 @@ _evas_text_eo_base_constructor(Eo *eo_obj, Evas_Text_Data *o)
evas_object_inject(eo_obj, obj, evas_object_evas_get(parent)); evas_object_inject(eo_obj, obj, evas_object_evas_get(parent));
o->cur.filter = eina_cow_alloc(evas_object_filter_cow); o->cur.filter = eina_cow_alloc(evas_object_filter_cow);
return eo_obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -5782,14 +5782,14 @@ evas_object_textblock_add(Evas *e)
return eo_obj; return eo_obj;
} }
EOLIAN static void EOLIAN static Eo *
_evas_textblock_eo_base_constructor(Eo *eo_obj, Evas_Textblock_Data *class_data EINA_UNUSED) _evas_textblock_eo_base_constructor(Eo *eo_obj, Evas_Textblock_Data *class_data EINA_UNUSED)
{ {
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
Evas_Textblock_Data *o; Evas_Textblock_Data *o;
Eo *eo_parent = NULL; Eo *eo_parent = NULL;
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
/* set up methods (compulsory) */ /* set up methods (compulsory) */
obj->func = &object_func; obj->func = &object_func;
@ -5803,6 +5803,8 @@ _evas_textblock_eo_base_constructor(Eo *eo_obj, Evas_Textblock_Data *class_data
eo_do(eo_obj, eo_parent = eo_parent_get()); eo_do(eo_obj, eo_parent = eo_parent_get());
evas_object_inject(eo_obj, obj, evas_object_evas_get(eo_parent)); evas_object_inject(eo_obj, obj, evas_object_evas_get(eo_parent));
return eo_obj;
} }
EAPI Evas_Textblock_Style * EAPI Evas_Textblock_Style *

View File

@ -1061,18 +1061,20 @@ evas_object_textgrid_add(Evas *e)
return eo_obj; return eo_obj;
} }
EOLIAN static void EOLIAN static Eo *
_evas_textgrid_eo_base_constructor(Eo *eo_obj, Evas_Textgrid_Data *class_data EINA_UNUSED) _evas_textgrid_eo_base_constructor(Eo *eo_obj, Evas_Textgrid_Data *class_data EINA_UNUSED)
{ {
Eo *eo_parent = NULL; Eo *eo_parent = NULL;
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
evas_object_textgrid_init(eo_obj); evas_object_textgrid_init(eo_obj);
eo_do(eo_obj, eo_parent = eo_parent_get()); eo_do(eo_obj, eo_parent = eo_parent_get());
evas_object_inject(eo_obj, obj, evas_object_evas_get(eo_parent)); evas_object_inject(eo_obj, obj, evas_object_evas_get(eo_parent));
return eo_obj;
} }
EOLIAN static void EOLIAN static void

View File

@ -98,13 +98,13 @@ _evas_vg_eo_base_destructor(Eo *eo_obj, Evas_VG_Data *pd)
eo_do_super(eo_obj, MY_CLASS, eo_destructor()); eo_do_super(eo_obj, MY_CLASS, eo_destructor());
} }
void Eo *
_evas_vg_eo_base_constructor(Eo *eo_obj, Evas_VG_Data *pd) _evas_vg_eo_base_constructor(Eo *eo_obj, Evas_VG_Data *pd)
{ {
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
Eo *parent = NULL; Eo *parent = NULL;
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
/* set up methods (compulsory) */ /* set up methods (compulsory) */
obj->func = &object_func; obj->func = &object_func;
@ -117,6 +117,8 @@ _evas_vg_eo_base_constructor(Eo *eo_obj, Evas_VG_Data *pd)
eo_do(eo_obj, parent = eo_parent_get()); eo_do(eo_obj, parent = eo_parent_get());
evas_object_inject(eo_obj, obj, evas_object_evas_get(parent)); evas_object_inject(eo_obj, obj, evas_object_evas_get(parent));
return eo_obj;
} }
static void static void

View File

@ -23,7 +23,7 @@ evas_out_add(Evas *e)
return eo_obj; return eo_obj;
} }
EOLIAN static void EOLIAN static Eo *
_evas_out_eo_base_constructor(Eo *eo_obj, Evas_Out_Data *eo_dat) _evas_out_eo_base_constructor(Eo *eo_obj, Evas_Out_Data *eo_dat)
{ {
Eo *eo_parent = NULL; Eo *eo_parent = NULL;
@ -33,14 +33,16 @@ _evas_out_eo_base_constructor(Eo *eo_obj, Evas_Out_Data *eo_dat)
e = eo_data_scope_get(eo_parent, EVAS_CANVAS_CLASS); e = eo_data_scope_get(eo_parent, EVAS_CANVAS_CLASS);
evas_canvas_async_block(e); evas_canvas_async_block(e);
eo_do_super(eo_obj, MY_CLASS, eo_constructor()); eo_obj = eo_do_super_ret(eo_obj, MY_CLASS, eo_obj, eo_constructor());
if (!e) return; if (!e) return NULL;
e->outputs = eina_list_append(e->outputs, eo_obj); e->outputs = eina_list_append(e->outputs, eo_obj);
if (e->engine.func->info) eo_dat->info = e->engine.func->info(eo_parent); if (e->engine.func->info) eo_dat->info = e->engine.func->info(eo_parent);
// XXX: context and output are currently held in the core engine and are // XXX: context and output are currently held in the core engine and are
// allocated by engine specific internal code. this all needs a new engine // allocated by engine specific internal code. this all needs a new engine
// api to make it work // api to make it work
return eo_obj;
} }
EAPI void EAPI void

View File

@ -25,17 +25,19 @@ _efl_vg_container_render_pre(Eo *obj EINA_UNUSED,
_evas_vg_render_pre(child, s, current); _evas_vg_render_pre(child, s, current);
} }
static void static Eo *
_efl_vg_container_eo_base_constructor(Eo *obj, _efl_vg_container_eo_base_constructor(Eo *obj,
Efl_VG_Container_Data *pd) Efl_VG_Container_Data *pd)
{ {
Efl_VG_Base_Data *nd; Efl_VG_Base_Data *nd;
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
nd = eo_data_scope_get(obj, EFL_VG_BASE_CLASS); nd = eo_data_scope_get(obj, EFL_VG_BASE_CLASS);
nd->render_pre = _efl_vg_container_render_pre; nd->render_pre = _efl_vg_container_render_pre;
nd->data = pd; nd->data = pd;
return obj;
} }
static void static void

View File

@ -88,17 +88,19 @@ _efl_vg_gradient_linear_render_pre(Eo *obj,
ector_renderer_prepare()); ector_renderer_prepare());
} }
static void static Eo *
_efl_vg_gradient_linear_eo_base_constructor(Eo *obj, _efl_vg_gradient_linear_eo_base_constructor(Eo *obj,
Efl_VG_Gradient_Linear_Data *pd) Efl_VG_Gradient_Linear_Data *pd)
{ {
Efl_VG_Base_Data *nd; Efl_VG_Base_Data *nd;
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
nd = eo_data_scope_get(obj, EFL_VG_BASE_CLASS); nd = eo_data_scope_get(obj, EFL_VG_BASE_CLASS);
nd->render_pre = _efl_vg_gradient_linear_render_pre; nd->render_pre = _efl_vg_gradient_linear_render_pre;
nd->data = pd; nd->data = pd;
return obj;
} }
static void static void

View File

@ -105,16 +105,18 @@ _efl_vg_gradient_radial_render_pre(Eo *obj,
ector_renderer_prepare()); ector_renderer_prepare());
} }
static void static Eo *
_efl_vg_gradient_radial_eo_base_constructor(Eo *obj, Efl_VG_Gradient_Radial_Data *pd) _efl_vg_gradient_radial_eo_base_constructor(Eo *obj, Efl_VG_Gradient_Radial_Data *pd)
{ {
Efl_VG_Base_Data *nd; Efl_VG_Base_Data *nd;
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
nd = eo_data_scope_get(obj, EFL_VG_BASE_CLASS); nd = eo_data_scope_get(obj, EFL_VG_BASE_CLASS);
nd->render_pre = _efl_vg_gradient_radial_render_pre; nd->render_pre = _efl_vg_gradient_radial_render_pre;
nd->data = pd; nd->data = pd;
return obj;
} }
static void static void

View File

@ -238,20 +238,22 @@ _efl_vg_base_parent_checked_get(Eo *obj,
return EINA_FALSE; return EINA_FALSE;
} }
static void static Eo *
_efl_vg_base_eo_base_constructor(Eo *obj, _efl_vg_base_eo_base_constructor(Eo *obj,
Efl_VG_Base_Data *pd) Efl_VG_Base_Data *pd)
{ {
Efl_VG_Container_Data *cd = NULL; Efl_VG_Container_Data *cd = NULL;
Eo *parent; Eo *parent;
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
if (!_efl_vg_base_parent_checked_get(obj, &parent, &cd)) if (!_efl_vg_base_parent_checked_get(obj, &parent, &cd))
eo_error_set(obj); eo_error_set(obj);
eo_do(obj, eo_event_callback_add(EFL_GFX_CHANGED, _efl_vg_base_property_changed, pd)); eo_do(obj, eo_event_callback_add(EFL_GFX_CHANGED, _efl_vg_base_property_changed, pd));
pd->changed = EINA_TRUE; pd->changed = EINA_TRUE;
return obj;
} }
static void static void

View File

@ -65,7 +65,7 @@ _efl_vg_root_node_eo_base_parent_set(Eo *obj,
} }
} }
static void static Eo *
_efl_vg_root_node_eo_base_constructor(Eo *obj, _efl_vg_root_node_eo_base_constructor(Eo *obj,
Efl_VG_Root_Node_Data *pd) Efl_VG_Root_Node_Data *pd)
{ {
@ -74,7 +74,7 @@ _efl_vg_root_node_eo_base_constructor(Eo *obj,
Eo *parent; Eo *parent;
// Nice little hack, jump over parent constructor in Efl_VG_Root // Nice little hack, jump over parent constructor in Efl_VG_Root
eo_do_super(obj, EFL_VG_BASE_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, EFL_VG_BASE_CLASS, obj, eo_constructor());
eo_do(obj, parent = eo_parent_get()); eo_do(obj, parent = eo_parent_get());
if (!eo_isa(parent, EVAS_VG_CLASS)) if (!eo_isa(parent, EVAS_VG_CLASS))
eo_error_set(obj); eo_error_set(obj);
@ -87,6 +87,8 @@ _efl_vg_root_node_eo_base_constructor(Eo *obj,
nd->data = cd; nd->data = cd;
eo_do(obj, eo_event_callback_add(EFL_GFX_CHANGED, _evas_vg_root_node_changed, pd)); eo_do(obj, eo_event_callback_add(EFL_GFX_CHANGED, _evas_vg_root_node_changed, pd));
return obj;
} }
#include "efl_vg_root_node.eo.c" #include "efl_vg_root_node.eo.c"

View File

@ -316,12 +316,12 @@ _efl_vg_shape_render_pre(Eo *obj EINA_UNUSED,
ector_renderer_prepare()); ector_renderer_prepare());
} }
static void static Eo *
_efl_vg_shape_eo_base_constructor(Eo *obj, Efl_VG_Shape_Data *pd) _efl_vg_shape_eo_base_constructor(Eo *obj, Efl_VG_Shape_Data *pd)
{ {
Efl_VG_Base_Data *nd; Efl_VG_Base_Data *nd;
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
pd->stroke.cap = EFL_GFX_CAP_BUTT; pd->stroke.cap = EFL_GFX_CAP_BUTT;
pd->stroke.join = EFL_GFX_JOIN_MITER; pd->stroke.join = EFL_GFX_JOIN_MITER;
@ -331,6 +331,8 @@ _efl_vg_shape_eo_base_constructor(Eo *obj, Efl_VG_Shape_Data *pd)
nd = eo_data_scope_get(obj, EFL_VG_BASE_CLASS); nd = eo_data_scope_get(obj, EFL_VG_BASE_CLASS);
nd->render_pre = _efl_vg_shape_render_pre; nd->render_pre = _efl_vg_shape_render_pre;
nd->data = pd; nd->data = pd;
return obj;
} }
static void static void

View File

@ -21,11 +21,11 @@ _a_get(Eo *obj, void *class_data EINA_UNUSED)
return a; return a;
} }
static void static Eo *
_constructor(Eo *obj, void *class_data EINA_UNUSED) _constructor(Eo *obj, void *class_data EINA_UNUSED)
{ {
Eina_Bool tmp; Eina_Bool tmp;
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
Eo *simple = eo_add(SIMPLE_CLASS, obj); Eo *simple = eo_add(SIMPLE_CLASS, obj);
eo_do(obj, eo_composite_attach(simple)); eo_do(obj, eo_composite_attach(simple));
@ -35,6 +35,8 @@ _constructor(Eo *obj, void *class_data EINA_UNUSED)
fail_if(!eo_do_ret(simple, tmp, eo_composite_part_is())); fail_if(!eo_do_ret(simple, tmp, eo_composite_part_is()));
eo_do(obj, eo_key_data_set("simple-obj", simple, NULL)); eo_do(obj, eo_key_data_set("simple-obj", simple, NULL));
return obj;
} }
static Eo_Op_Description op_descs[] = { static Eo_Op_Description op_descs[] = {

View File

@ -18,12 +18,12 @@ _add_and_print_set(Eo *obj, void *class_data EINA_UNUSED, int x)
extern int my_init_count; extern int my_init_count;
static void static Eo *
_constructor(Eo *obj, void *class_data EINA_UNUSED) _constructor(Eo *obj, void *class_data EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor());
my_init_count++; my_init_count++;
return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
} }
static void static void

View File

@ -39,12 +39,12 @@ _GET_SET_FUNC(b)
extern int my_init_count; extern int my_init_count;
static void static Eo *
_constructor(Eo *obj, void *class_data EINA_UNUSED) _constructor(Eo *obj, void *class_data EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor());
my_init_count++; my_init_count++;
return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
} }
static Eo* static Eo*

View File

@ -8,12 +8,13 @@
#define MY_CLASS SIMPLE2_CLASS #define MY_CLASS SIMPLE2_CLASS
static void static Eo *
_constructor(Eo *obj, void *class_data EINA_UNUSED) _constructor(Eo *obj, void *class_data EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
eo_error_set(obj); eo_error_set(obj);
return obj;
} }
static Eo_Op_Description op_descs[] = { static Eo_Op_Description op_descs[] = {

View File

@ -8,10 +8,10 @@
#define MY_CLASS SIMPLE3_CLASS #define MY_CLASS SIMPLE3_CLASS
static void static Eo *
_constructor(Eo *obj, void *class_data EINA_UNUSED, va_list *list EINA_UNUSED) _constructor(Eo *obj, void *class_data EINA_UNUSED, va_list *list EINA_UNUSED)
{ {
(void) obj; return obj;
} }
static Eo_Op_Description op_descs[] = { static Eo_Op_Description op_descs[] = {

View File

@ -11,11 +11,11 @@
#define MY_CLASS SIMPLE7_CLASS #define MY_CLASS SIMPLE7_CLASS
static void static Eo *
_constructor(Eo *obj, void *class_data EINA_UNUSED, va_list *list EINA_UNUSED) _constructor(Eo *obj, void *class_data EINA_UNUSED, va_list *list EINA_UNUSED)
{ {
/* FIXME: Actually test it. */ /* FIXME: Actually test it. */
eo_do_super(obj, MY_CLASS, eo_constructor()); return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
} }
static Eo_Op_Description op_descs [] = { static Eo_Op_Description op_descs [] = {

View File

@ -17,10 +17,10 @@ _ab_sum_get(Eo *obj, void *class_data EINA_UNUSED)
return a + b; return a + b;
} }
static void static Eo *
_constructor(Eo *obj, void *class_data EINA_UNUSED) _constructor(Eo *obj, void *class_data EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
} }
static void static void

View File

@ -32,10 +32,11 @@ _ab_sum_get(Eo *obj, void *class_data)
return sum; return sum;
} }
static void static Eo *
_constructor(Eo *obj, void *class_data EINA_UNUSED, va_list *list EINA_UNUSED) _constructor(Eo *obj, void *class_data EINA_UNUSED, va_list *list EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
return obj;
} }
static void static void

View File

@ -32,10 +32,10 @@ _ab_sum_get(Eo *obj, void *class_data EINA_UNUSED)
return sum; return sum;
} }
static void static Eo *
_constructor(Eo *obj, void *class_data EINA_UNUSED, va_list *list EINA_UNUSED) _constructor(Eo *obj, void *class_data EINA_UNUSED, va_list *list EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
} }
static void static void

View File

@ -60,15 +60,17 @@ _cb_deled(void *data, Eo *obj, const Eo_Event_Description *desc, void *event_inf
return EO_CALLBACK_CONTINUE; return EO_CALLBACK_CONTINUE;
} }
static void static Eo *
_constructor(Eo *obj, void *class_data EINA_UNUSED) _constructor(Eo *obj, void *class_data EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
eo_do(obj, eo_event_callback_add(EO_EV_CALLBACK_ADD, _cb_added, NULL)); eo_do(obj, eo_event_callback_add(EO_EV_CALLBACK_ADD, _cb_added, NULL));
eo_do(obj, eo_event_callback_add(EO_EV_CALLBACK_DEL, _cb_deled, NULL)); eo_do(obj, eo_event_callback_add(EO_EV_CALLBACK_DEL, _cb_deled, NULL));
eo_do(obj, eo_key_data_set("cb_count", (intptr_t) 0, NULL)); eo_do(obj, eo_key_data_set("cb_count", (intptr_t) 0, NULL));
return obj;
} }
EAPI EO_VOID_FUNC_BODYV(simple_a_set, EO_FUNC_CALL(a), int a); EAPI EO_VOID_FUNC_BODYV(simple_a_set, EO_FUNC_CALL(a), int a);

View File

@ -296,12 +296,12 @@ static Eina_Bool _man_should_con = EINA_TRUE;
static Eina_Bool _man_should_des = EINA_TRUE; static Eina_Bool _man_should_des = EINA_TRUE;
static const Eo_Class *cur_klass = NULL; static const Eo_Class *cur_klass = NULL;
static void static Eo *
_man_con(Eo *obj, void *data EINA_UNUSED, va_list *list EINA_UNUSED) _man_con(Eo *obj, void *data EINA_UNUSED, va_list *list EINA_UNUSED)
{ {
if (_man_should_con) if (_man_should_con)
eo_manual_free_set(obj, EINA_TRUE); eo_manual_free_set(obj, EINA_TRUE);
eo_do_super(obj, cur_klass, eo_constructor()); return eo_do_super_ret(obj, cur_klass, obj, eo_constructor());
} }
static void static void

View File

@ -49,12 +49,14 @@ _try_swap_stack(Eo *obj EINA_UNUSED, void *class_data)
} }
} }
static void static Eo *
_constructor(Eo *obj EINA_UNUSED, void *class_data EINA_UNUSED, int v) _constructor(Eo *obj, void *class_data EINA_UNUSED, int v)
{ {
Thread_Test_Public_Data *pd = class_data; Thread_Test_Public_Data *pd = class_data;
pd->v = v; pd->v = v;
return obj;
} }
static Eo_Op_Description op_descs[] = { static Eo_Op_Description op_descs[] = {

View File

@ -15,9 +15,9 @@ typedef struct _A_Data A_Data;
#define MY_CLASS A_CLASS #define MY_CLASS A_CLASS
static void _a_eo_base_constructor(Eo *obj EINA_UNUSED, A_Data *pd EINA_UNUSED) static Eo *_a_eo_base_constructor(Eo *obj EINA_UNUSED, A_Data *pd EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
} }
#include "a.eo.c" #include "a.eo.c"

View File

@ -16,9 +16,9 @@ typedef struct _B_Data B_Data;
#define MY_CLASS B_CLASS #define MY_CLASS B_CLASS
static void _b_eo_base_constructor(Eo *obj EINA_UNUSED, B_Data *pd EINA_UNUSED) static Eo *_b_eo_base_constructor(Eo *obj EINA_UNUSED, B_Data *pd EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
} }
#include "b.eo.c" #include "b.eo.c"

View File

@ -16,9 +16,9 @@ typedef struct _C_Data C_Data;
#define MY_CLASS C_CLASS #define MY_CLASS C_CLASS
static void _c_eo_base_constructor(Eo *obj EINA_UNUSED, C_Data *pd EINA_UNUSED) static Eo *_c_eo_base_constructor(Eo *obj EINA_UNUSED, C_Data *pd EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
} }
#include "c.eo.c" #include "c.eo.c"

View File

@ -28,13 +28,15 @@ static Eina_Bool _callback_callback_added(void* data EINA_UNUSED, Eo* obj EINA_U
return EINA_TRUE; return EINA_TRUE;
} }
static void _callback_eo_base_constructor(Eo *obj EINA_UNUSED, Callback_Data *pd EINA_UNUSED) static Eo *_callback_eo_base_constructor(Eo *obj, Callback_Data *pd EINA_UNUSED)
{ {
pd->callbacks = 0; pd->callbacks = 0;
eo_do_super(obj, MY_CLASS, eo_constructor()); obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
eo_event_callback_priority_add(EO_BASE_EVENT_CALLBACK_ADD, EO_CALLBACK_PRIORITY_DEFAULT eo_event_callback_priority_add(EO_BASE_EVENT_CALLBACK_ADD, EO_CALLBACK_PRIORITY_DEFAULT
, &_callback_callback_added, pd); , &_callback_callback_added, pd);
return obj;
} }
static void _callback_onecallback(Eo *obj EINA_UNUSED, Callback_Data *pd EINA_UNUSED, Ecore_Cb cb, void *data) static void _callback_onecallback(Eo *obj EINA_UNUSED, Callback_Data *pd EINA_UNUSED, Ecore_Cb cb, void *data)

View File

@ -18,9 +18,9 @@ typedef struct _D_Data D_Data;
#define MY_CLASS D_CLASS #define MY_CLASS D_CLASS
static void _d_eo_base_constructor(Eo *obj EINA_UNUSED, D_Data *pd EINA_UNUSED) static Eo *_d_eo_base_constructor(Eo *obj EINA_UNUSED, D_Data *pd EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
} }
#include "d.eo.c" #include "d.eo.c"

View File

@ -12,9 +12,9 @@
#define MY_CLASS SIMPLE_CLASS #define MY_CLASS SIMPLE_CLASS
static void _simple_eo_base_constructor(Eo *obj, void *pd EINA_UNUSED) static Eo *_simple_eo_base_constructor(Eo *obj, void *pd EINA_UNUSED)
{ {
eo_do_super(obj, MY_CLASS, eo_constructor()); return eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
} }
static Eina_Bool _simple_simple_get(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED) static Eina_Bool _simple_simple_get(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED)