tasn pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=97ca9e387903306c01c0a7b7dcbb3f3886d03862

commit 97ca9e387903306c01c0a7b7dcbb3f3886d03862
Author: Tom Hacohen <t...@stosb.com>
Date:   Fri Mar 11 12:34:16 2016 +0000

    Revert "Automatic migration to the new eo_add syntax."
    
    This reverts commit d1a1819813d74361b25fd5c1123f7ac76be9b84f.
---
 src/bin/test_application_server.c                  |  4 +--
 src/bin/test_systray.c                             |  2 +-
 src/bin/test_task_switcher.c                       |  2 +-
 src/examples/evas3d_map_example.c                  | 32 ++++++++++----------
 src/examples/evas3d_object_on_button_example.c     | 24 ++++++++-------
 src/examples/evas3d_scene_on_button_example.c      | 22 ++++++++------
 src/examples/filemvc.c                             | 10 +++----
 src/examples/fileviewlist.c                        |  4 +--
 src/examples/performance/graphical.c               | 35 ++++++++++++----------
 src/examples/sphere_hunter/evas_3d_sphere_hunter.c | 30 +++++++++----------
 src/lib/elc_ctxpopup.c                             |  7 ++---
 src/lib/elc_fileselector.c                         |  3 +-
 src/lib/elc_fileselector_button.c                  |  3 +-
 src/lib/elc_fileselector_entry.c                   |  3 +-
 src/lib/elc_hoversel.c                             |  6 ++--
 src/lib/elc_multibuttonentry.c                     |  5 ++--
 src/lib/elc_naviframe.c                            |  5 ++--
 src/lib/elc_player.c                               |  3 +-
 src/lib/elc_popup.c                                |  5 ++--
 src/lib/elm_access.c                               |  3 +-
 src/lib/elm_actionslider.c                         |  3 +-
 src/lib/elm_app_client.c                           |  4 +--
 src/lib/elm_app_server.c                           |  2 +-
 src/lib/elm_atspi_bridge.c                         |  2 +-
 src/lib/elm_bg.c                                   |  3 +-
 src/lib/elm_box.c                                  |  3 +-
 src/lib/elm_bubble.c                               |  3 +-
 src/lib/elm_button.c                               |  3 +-
 src/lib/elm_calendar.c                             |  3 +-
 src/lib/elm_check.c                                |  3 +-
 src/lib/elm_clock.c                                |  3 +-
 src/lib/elm_colorselector.c                        |  7 ++---
 src/lib/elm_conform.c                              |  3 +-
 src/lib/elm_datetime.c                             |  3 +-
 src/lib/elm_dayselector.c                          |  6 ++--
 src/lib/elm_diskselector.c                         |  6 ++--
 src/lib/elm_entry.c                                |  3 +-
 src/lib/elm_flip.c                                 |  3 +-
 src/lib/elm_flipselector.c                         |  5 ++--
 src/lib/elm_frame.c                                |  3 +-
 src/lib/elm_gengrid.c                              |  8 ++---
 src/lib/elm_genlist.c                              |  8 ++---
 src/lib/elm_gesture_layer.c                        |  3 +-
 src/lib/elm_glview.c                               |  6 ++--
 src/lib/elm_grid.c                                 |  3 +-
 src/lib/elm_hover.c                                |  3 +-
 src/lib/elm_icon.c                                 |  3 +-
 src/lib/elm_image.c                                |  3 +-
 src/lib/elm_index.c                                |  5 ++--
 src/lib/elm_interface_atspi_accessible.c           |  2 +-
 src/lib/elm_interface_scrollable.c                 |  3 +-
 src/lib/elm_inwin.c                                |  3 +-
 src/lib/elm_label.c                                |  3 +-
 src/lib/elm_layout.c                               |  3 +-
 src/lib/elm_list.c                                 |  6 ++--
 src/lib/elm_map.c                                  |  5 ++--
 src/lib/elm_mapbuf.c                               |  3 +-
 src/lib/elm_menu.c                                 |  7 ++---
 src/lib/elm_notify.c                               |  3 +-
 src/lib/elm_panel.c                                |  3 +-
 src/lib/elm_panes.c                                |  3 +-
 src/lib/elm_photo.c                                |  3 +-
 src/lib/elm_photocam.c                             |  5 ++--
 src/lib/elm_plug.c                                 |  3 +-
 src/lib/elm_prefs.c                                |  3 +-
 src/lib/elm_progressbar.c                          |  3 +-
 src/lib/elm_radio.c                                |  3 +-
 src/lib/elm_route.c                                |  3 +-
 src/lib/elm_scroller.c                             |  3 +-
 src/lib/elm_segment_control.c                      |  5 ++--
 src/lib/elm_separator.c                            |  3 +-
 src/lib/elm_slider.c                               |  3 +-
 src/lib/elm_slideshow.c                            |  7 ++---
 src/lib/elm_spinner.c                              |  3 +-
 src/lib/elm_sys_notify.c                           |  4 +--
 src/lib/elm_table.c                                |  3 +-
 src/lib/elm_thumb.c                                |  3 +-
 src/lib/elm_toolbar.c                              |  6 ++--
 src/lib/elm_video.c                                |  3 +-
 src/lib/elm_win.c                                  |  6 ++--
 src/lib/elm_win_standard.c                         |  3 +-
 src/tests/elm_test_atspi.c                         | 21 +++++--------
 82 files changed, 196 insertions(+), 265 deletions(-)

diff --git a/src/bin/test_application_server.c 
b/src/bin/test_application_server.c
index 13a9039..1272ff6 100644
--- a/src/bin/test_application_server.c
+++ b/src/bin/test_application_server.c
@@ -100,7 +100,7 @@ _create_view_cb(Elm_App_Server *app_server, const 
Eina_Value *args EINA_UNUSED,
         return NULL;
      }
 
-   eo_add(&view, ELM_APP_SERVER_VIEW_CLASS, app_server, 
elm_app_server_view_id_set(view, NULL));
+   view = eo_add(ELM_APP_SERVER_VIEW_CLASS, app_server, 
elm_app_server_view_id_set(eoid, NULL));
 
    id = elm_app_server_view_id_get(view);
    pkg = elm_app_server_package_get(app_server);
@@ -141,7 +141,7 @@ test_application_server_common(const char *pkg)
    Elm_App_Server_View *view;
    Elm_App_Server *server;
 
-   eo_add(&server, ELM_APP_SERVER_CLASS, NULL, 
elm_app_server_constructor(server, pkg, _create_view_cb));
+   server = eo_add(ELM_APP_SERVER_CLASS, NULL, 
elm_app_server_constructor(eoid, pkg, _create_view_cb));
    elm_app_server_title_set(server, pkg);
    views_iter = elm_app_server_views_get(server);
    eo_event_callback_add(server, ELM_APP_SERVER_EVENT_TERMINATE, 
_terminate_cb, NULL);
diff --git a/src/bin/test_systray.c b/src/bin/test_systray.c
index 23fc8af..1271242 100644
--- a/src/bin/test_systray.c
+++ b/src/bin/test_systray.c
@@ -82,7 +82,7 @@ test_systray(void *data EINA_UNUSED,
    elm_menu_item_add(it, it2, NULL, "item 2",  _menu_clicked, "item 2");
 
    // Status Notifier Item Handler
-   eo_add(&item, ELM_SYSTRAY_CLASS, win);
+   item = eo_add(ELM_SYSTRAY_CLASS, win);
    elm_obj_systray_icon_name_set(item, "elementary");
    elm_obj_systray_att_icon_name_set(item, "elementary");
    elm_obj_systray_menu_set(item, it);
diff --git a/src/bin/test_task_switcher.c b/src/bin/test_task_switcher.c
index ec42837..1c2b441 100644
--- a/src/bin/test_task_switcher.c
+++ b/src/bin/test_task_switcher.c
@@ -303,7 +303,7 @@ _app_open(const char *package)
           return;
      }
 
-   eo_add(&app, ELM_APP_CLIENT_CLASS, NULL, elm_app_client_constructor(app, 
package));
+   app = eo_add(ELM_APP_CLIENT_CLASS, NULL, elm_app_client_constructor(eoid, 
package));
    eo_event_callback_add(app, ELM_APP_CLIENT_EVENT_VIEW_LIST_LOADED, 
_view_list_update_cb, table);
    eo_event_callback_add(app, ELM_APP_CLIENT_EVENT_VIEW_CREATED, 
_view_list_update_cb, table);
    eo_event_callback_add(app, ELM_APP_CLIENT_EVENT_VIEW_DELETED, 
_view_list_update_cb, table);
diff --git a/src/examples/evas3d_map_example.c 
b/src/examples/evas3d_map_example.c
index 3599826..ca58452 100644
--- a/src/examples/evas3d_map_example.c
+++ b/src/examples/evas3d_map_example.c
@@ -463,7 +463,7 @@ zoom_factor_set(double new_zoom_factor)
         evas_object_resize(map, src_size, src_size);
 
         /* Apply updated texture source. */
-        eo_add(&texture_diffuse, EVAS_CANVAS3D_TEXTURE_CLASS, evas);
+        texture_diffuse = eo_add(EVAS_CANVAS3D_TEXTURE_CLASS, evas);
         evas_canvas3d_texture_source_set(texture_diffuse, map);
         evas_canvas3d_texture_source_visible_set(texture_diffuse, EINA_FALSE);
 
@@ -846,7 +846,7 @@ skybox_setup(void)
    Evas_Object      *skybox_image;
    char              buf[PATH_MAX];
 
-   eo_add(&skybox_mesh, EVAS_CANVAS3D_MESH_CLASS, evas);
+   skybox_mesh = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas);
    evas_canvas3d_mesh_vertex_count_set(skybox_mesh, 24);
    evas_canvas3d_mesh_frame_add(skybox_mesh, 0);
    evas_canvas3d_mesh_frame_vertex_data_set(skybox_mesh, 0, 
EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, 12 * sizeof(float), &skybox_vertices[0]);
@@ -864,10 +864,10 @@ skybox_setup(void)
    evas_object_show(skybox_image);
 
    /* Set skybox texture material. */
-   eo_add(&skybox_material, EVAS_CANVAS3D_MATERIAL_CLASS, evas);
+   skybox_material = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
    evas_canvas3d_mesh_frame_material_set(skybox_mesh, 0, skybox_material);
 
-   eo_add(&skybox_texture_diffuse, EVAS_CANVAS3D_TEXTURE_CLASS, evas);
+   skybox_texture_diffuse = eo_add(EVAS_CANVAS3D_TEXTURE_CLASS, evas);
 
    evas_canvas3d_texture_source_set(skybox_texture_diffuse, skybox_image);
    evas_canvas3d_texture_source_visible_set(skybox_texture_diffuse, 
EINA_FALSE);
@@ -881,7 +881,7 @@ skybox_setup(void)
    evas_canvas3d_material_color_set(skybox_material, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, 0.1, 0.1, 0.1, 1.0);
    evas_canvas3d_material_shininess_set(skybox_material, 50.0);
 
-   eo_add(&skybox_mesh_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(skybox_mesh_node, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   skybox_mesh_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(root_node, skybox_mesh_node);
    evas_canvas3d_node_mesh_add(skybox_mesh_node, skybox_mesh);
    evas_canvas3d_mesh_shade_mode_set(skybox_mesh, 
EVAS_CANVAS3D_SHADE_MODE_DIFFUSE);
@@ -922,7 +922,7 @@ static void
 camera_setup(void)
 {
    /* Add the camera. */
-   eo_add(&camera, EVAS_CANVAS3D_CAMERA_CLASS, evas);
+   camera = eo_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
    evas_canvas3d_camera_projection_perspective_set(camera, 60.0, 1.0, 1.0, 
100.0);
 
    /* Set camera position. */
@@ -940,7 +940,7 @@ camera_setup(void)
    camera_right_vec.y = 0.0;
    camera_right_vec.z = 0.0;
 
-   eo_add(&camera_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(camera_node, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+   camera_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(camera_node, camera);
    evas_canvas3d_node_position_set(camera_node, camera_pos.x, camera_pos.y, 
camera_pos.z);
    evas_canvas3d_node_look_at_set(camera_node, EVAS_CANVAS3D_SPACE_PARENT, 
0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, camera_up_vec.x, camera_up_vec.y, 
camera_up_vec.z);
@@ -950,12 +950,12 @@ camera_setup(void)
 static void
 light_setup(void)
 {
-   eo_add(&light, EVAS_CANVAS3D_LIGHT_CLASS, evas);
+   light = eo_add(EVAS_CANVAS3D_LIGHT_CLASS, evas);
    evas_canvas3d_light_ambient_set(light, 0.2, 0.2, 0.2, 1.0);
    evas_canvas3d_light_diffuse_set(light, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_light_specular_set(light, 0.2, 0.2, 0.2, 1.0);
 
-   eo_add(&light_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(light_node, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+   light_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(light_node, light);
    evas_canvas3d_node_position_set(light_node, 0.0, 0.0, MAX_CAMERA_DISTANCE);
    evas_canvas3d_node_look_at_set(light_node, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0);
@@ -968,7 +968,7 @@ mesh_setup(void)
    /* Create a sphere mesh. */
    sphere_init(50);
 
-   eo_add(&mesh, EVAS_CANVAS3D_MESH_CLASS, evas);
+   mesh = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas);
    evas_canvas3d_mesh_vertex_count_set(mesh, vertex_count);
    evas_canvas3d_mesh_frame_add(mesh, 0);
    evas_canvas3d_mesh_frame_vertex_data_set(mesh, 0, 
EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, sizeof(vertex), &vertices[0].position);
@@ -979,14 +979,14 @@ mesh_setup(void)
    evas_canvas3d_mesh_index_data_set(mesh, 
EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT, index_count, &indices[0]);
    evas_canvas3d_mesh_vertex_assembly_set(mesh, 
EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES);
 
-   eo_add(&material, EVAS_CANVAS3D_MATERIAL_CLASS, evas);
+   material = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
    evas_canvas3d_mesh_frame_material_set(mesh, 0, material);
 
-   eo_add(&texture_diffuse, EVAS_CANVAS3D_TEXTURE_CLASS, evas);
+   texture_diffuse = eo_add(EVAS_CANVAS3D_TEXTURE_CLASS, evas);
    evas_canvas3d_texture_source_set(texture_diffuse, map);
    evas_canvas3d_texture_source_visible_set(texture_diffuse, EINA_FALSE);
 
-   eo_add(&texture_normal, EVAS_CANVAS3D_TEXTURE_CLASS, evas);
+   texture_normal = eo_add(EVAS_CANVAS3D_TEXTURE_CLASS, evas);
    evas_canvas3d_texture_source_set(texture_normal, normal_map);
    evas_canvas3d_texture_source_visible_set(texture_normal, EINA_FALSE);
 
@@ -1001,7 +1001,7 @@ mesh_setup(void)
    evas_canvas3d_material_color_set(material, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, 0.1, 0.1, 0.1, 1.0);
    evas_canvas3d_material_shininess_set(material, 50.0);
 
-   eo_add(&mesh_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(mesh_node, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   mesh_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(root_node, mesh_node);
    evas_canvas3d_node_mesh_add(mesh_node, mesh);
    evas_canvas3d_mesh_shade_mode_set(mesh, 
EVAS_CANVAS3D_SHADE_MODE_NORMAL_MAP);
@@ -1166,10 +1166,10 @@ elm_main(int argc, char **argv)
    evas_object_event_callback_add(image, EVAS_CALLBACK_MOUSE_WHEEL, 
mouse_wheel_cb, NULL);
 
    /* Add a scene object. */
-   eo_add(&scene, EVAS_CANVAS3D_SCENE_CLASS, evas);
+   scene = eo_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
 
    /* Add a root node for the scene. */
-   eo_add(&root_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(root_node, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   root_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    skybox_setup();
    texture_source_setup();
diff --git a/src/examples/evas3d_object_on_button_example.c 
b/src/examples/evas3d_object_on_button_example.c
index 3a5f1b4..eb06dc0 100644
--- a/src/examples/evas3d_object_on_button_example.c
+++ b/src/examples/evas3d_object_on_button_example.c
@@ -159,11 +159,12 @@ _animate_scene(void *data)
 static void
 _camera_setup(Scene_Data *data)
 {
-   eo_add(&data->camera, EVAS_CANVAS3D_CAMERA_CLASS, evas);
+   data->camera = eo_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
 
    evas_canvas3d_camera_projection_perspective_set(data->camera, 20.0, 1.0, 
2.0, 50.0);
 
-   eo_add(&data->camera_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(data->camera_node, 
EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+   data->camera_node =
+      eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 0.0, 0.0, 15.0);
    evas_canvas3d_node_look_at_set(data->camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
-1.0, 0.0);
@@ -173,12 +174,13 @@ _camera_setup(Scene_Data *data)
 static void
 _light_setup(Scene_Data *data)
 {
-   eo_add(&data->light, EVAS_CANVAS3D_LIGHT_CLASS, evas);
+   data->light = eo_add(EVAS_CANVAS3D_LIGHT_CLASS, evas);
    evas_canvas3d_light_ambient_set(data->light, 0.2, 0.2, 0.2, 1.0);
    evas_canvas3d_light_diffuse_set(data->light, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0);
 
-   eo_add(&data->light_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(data->light_node, 
EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+   data->light_node =
+      eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 0.0, 0.0, 10.0);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -188,8 +190,8 @@ static void
 _mesh_setup(Scene_Data *data)
 {
    /* Setup material and texture as widget button. */
-   eo_add(&data->material, EVAS_CANVAS3D_MATERIAL_CLASS, evas);
-   eo_add(&data->texture, EVAS_CANVAS3D_TEXTURE_CLASS, evas);
+   data->material = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
+   data->texture = eo_add(EVAS_CANVAS3D_TEXTURE_CLASS, evas);
 
    evas_canvas3d_texture_source_set(data->texture, btn);
    evas_canvas3d_texture_source_visible_set(data->texture, EINA_FALSE);
@@ -204,7 +206,7 @@ _mesh_setup(Scene_Data *data)
    evas_canvas3d_material_shininess_set(data->material, 100.0);
 
    /* Setup mesh. */
-   eo_add(&data->mesh, EVAS_CANVAS3D_MESH_CLASS, evas);
+   data->mesh = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas);
    evas_canvas3d_mesh_vertex_count_set(data->mesh, 24);
    evas_canvas3d_mesh_frame_add(data->mesh, 0);
    evas_canvas3d_mesh_frame_vertex_data_set(data->mesh, 0, 
EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, 12 * sizeof(float), &cube_vertices[ 0]);
@@ -217,7 +219,8 @@ _mesh_setup(Scene_Data *data)
    evas_canvas3d_mesh_frame_material_set(data->mesh, 0, data->material);
    evas_canvas3d_mesh_color_pick_enable_set(data->mesh, EINA_TRUE);
 
-   eo_add(&data->mesh_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(data->mesh_node, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   data->mesh_node =
+      eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node);
    evas_canvas3d_node_mesh_add(data->mesh_node, data->mesh);
 }
@@ -225,11 +228,12 @@ _mesh_setup(Scene_Data *data)
 static void
 _scene_setup(Scene_Data *data)
 {
-   eo_add(&data->scene, EVAS_CANVAS3D_SCENE_CLASS, evas);
+   data->scene = eo_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
    evas_canvas3d_scene_size_set(data->scene, WIDTH, HEIGHT);
    evas_canvas3d_scene_background_color_set(data->scene, 0.0, 0.0, 0.0, 0.0);
 
-   eo_add(&data->root_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(data->root_node, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   data->root_node =
+      eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    _camera_setup(data);
    _light_setup(data);
diff --git a/src/examples/evas3d_scene_on_button_example.c 
b/src/examples/evas3d_scene_on_button_example.c
index 8a70ec8..c7cf82c 100644
--- a/src/examples/evas3d_scene_on_button_example.c
+++ b/src/examples/evas3d_scene_on_button_example.c
@@ -120,11 +120,12 @@ _animate_scene(void *data)
 static void
 _camera_setup(Scene_Data *data)
 {
-   eo_add(&data->camera, EVAS_CANVAS3D_CAMERA_CLASS, evas);
+   data->camera = eo_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
 
    evas_canvas3d_camera_projection_perspective_set(data->camera, 60.0, 1.0, 
2.0, 50.0);
 
-   eo_add(&data->camera_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(data->camera_node, 
EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+   data->camera_node =
+      eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 0.0, 0.0, 10.0);
    evas_canvas3d_node_look_at_set(data->camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -134,12 +135,13 @@ _camera_setup(Scene_Data *data)
 static void
 _light_setup(Scene_Data *data)
 {
-   eo_add(&data->light, EVAS_CANVAS3D_LIGHT_CLASS, evas);
+   data->light = eo_add(EVAS_CANVAS3D_LIGHT_CLASS, evas);
    evas_canvas3d_light_ambient_set(data->light, 0.2, 0.2, 0.2, 1.0);
    evas_canvas3d_light_diffuse_set(data->light, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0);
 
-   eo_add(&data->light_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(data->light_node, 
EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+   data->light_node =
+      eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 0.0, 0.0, 10.0);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -149,7 +151,7 @@ static void
 _mesh_setup(Scene_Data *data)
 {
    /* Setup material. */
-   eo_add(&data->material, EVAS_CANVAS3D_MATERIAL_CLASS, evas);
+   data->material = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
 
    evas_canvas3d_material_enable_set(data->material, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, EINA_TRUE);
    evas_canvas3d_material_enable_set(data->material, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE, EINA_TRUE);
@@ -160,7 +162,7 @@ _mesh_setup(Scene_Data *data)
    evas_canvas3d_material_shininess_set(data->material, 100.0);
 
    /* Setup mesh. */
-   eo_add(&data->mesh, EVAS_CANVAS3D_MESH_CLASS, evas);
+   data->mesh = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas);
    evas_canvas3d_mesh_vertex_count_set(data->mesh, 24);
    evas_canvas3d_mesh_frame_add(data->mesh, 0);
    evas_canvas3d_mesh_frame_vertex_data_set(data->mesh, 0, 
EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, 12 * sizeof(float), &cube_vertices[ 0]);
@@ -172,7 +174,8 @@ _mesh_setup(Scene_Data *data)
    evas_canvas3d_mesh_shade_mode_set(data->mesh, 
EVAS_CANVAS3D_SHADE_MODE_PHONG);
    evas_canvas3d_mesh_frame_material_set(data->mesh, 0, data->material);
 
-   eo_add(&data->mesh_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(data->mesh_node, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   data->mesh_node =
+      eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node);
    evas_canvas3d_node_mesh_add(data->mesh_node, data->mesh);
 }
@@ -180,11 +183,12 @@ _mesh_setup(Scene_Data *data)
 static void
 _scene_setup(Scene_Data *data)
 {
-   eo_add(&data->scene, EVAS_CANVAS3D_SCENE_CLASS, evas);
+   data->scene = eo_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
    evas_canvas3d_scene_size_set(data->scene, WIDTH - d_w, HEIGHT - d_h);
    evas_canvas3d_scene_background_color_set(data->scene, 0.0, 0.0, 0.0, 0.0);
 
-   eo_add(&data->root_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(data->root_node, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   data->root_node =
+      eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    _camera_setup(data);
    _light_setup(data);
diff --git a/src/examples/filemvc.c b/src/examples/filemvc.c
index c217dcb..6ef183e 100644
--- a/src/examples/filemvc.c
+++ b/src/examples/filemvc.c
@@ -71,7 +71,7 @@ _tree_selected_cb(void *data, const Eo_Event *event)
 
    efl_model_property_get(child, "path", &vpath);
    eina_value_get(vpath, &path);
-   eo_add(&model, EIO_MODEL_CLASS, NULL, eio_model_path_set(model, path));
+   model = eo_add(EIO_MODEL_CLASS, NULL, eio_model_path_set(eoid, path));
    efl_model_load(model);
    elm_view_list_model_set(priv->fileview, model);
    return EINA_TRUE;
@@ -137,13 +137,13 @@ elm_main(int argc, char **argv)
    else dirname = EFL_MODEL_TEST_FILENAME_PATH;
 
    //treemodel
-   eo_add(&priv.treemodel, EIO_MODEL_CLASS, NULL, 
eio_model_path_set(priv.treemodel, dirname));
+   priv.treemodel = eo_add(EIO_MODEL_CLASS, NULL, eio_model_path_set(eoid, 
dirname));
    eio_model_children_filter_set(priv.treemodel, _filter_cb, NULL);
    efl_model_load(priv.treemodel);
 
    //treeview
    genlist = elm_genlist_add(win);
-   eo_add(&priv.treeview, ELM_VIEW_LIST_CLASS, NULL, 
elm_view_list_genlist_set(priv.treeview, genlist, ELM_GENLIST_ITEM_TREE, NULL));
+   priv.treeview = eo_add(ELM_VIEW_LIST_CLASS, NULL, 
elm_view_list_genlist_set(eoid, genlist, ELM_GENLIST_ITEM_TREE, NULL));
    elm_view_list_property_connect(priv.treeview, "filename", "elm.text");
    elm_view_list_property_connect(priv.treeview, "icon", "elm.swallow.icon");
    elm_view_list_model_set(priv.treeview, priv.treemodel);
@@ -157,7 +157,7 @@ elm_main(int argc, char **argv)
    eo_event_callback_add(priv.treeview, ELM_VIEW_LIST_EVENT_MODEL_SELECTED, 
_tree_selected_cb, &priv);
    //listview
    genlist = elm_genlist_add(win);
-   eo_add(&priv.fileview, ELM_VIEW_LIST_CLASS, NULL, 
elm_view_list_genlist_set(priv.fileview, genlist, ELM_GENLIST_ITEM_NONE, 
"double_label"));
+   priv.fileview = eo_add(ELM_VIEW_LIST_CLASS, NULL, 
elm_view_list_genlist_set(eoid, genlist, ELM_GENLIST_ITEM_NONE, 
"double_label"));
    elm_view_list_property_connect(priv.fileview, "filename", "elm.text");
    elm_view_list_property_connect(priv.fileview, "size", "elm.text.sub");
 
@@ -171,7 +171,7 @@ elm_main(int argc, char **argv)
    bxr = elm_box_add(win);
    _widget_init(bxr);
    elm_object_part_content_set(vpanes, "right", bxr);
-   eo_add(&priv.formview, ELM_VIEW_FORM_CLASS, NULL);
+   priv.formview = eo_add(ELM_VIEW_FORM_CLASS, NULL);
 
    /*Label widget */
    elm_view_form_widget_add(priv.formview, "filename", _label_init(win, bxr, 
"File Name"));
diff --git a/src/examples/fileviewlist.c b/src/examples/fileviewlist.c
index 1c420c3..d91efdb 100644
--- a/src/examples/fileviewlist.c
+++ b/src/examples/fileviewlist.c
@@ -55,8 +55,8 @@ elm_main(int argc, char **argv)
    evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND);
    evas_object_show(genlist);
 
-   eo_add(&priv.filemodel, EIO_MODEL_CLASS, NULL, 
eio_model_path_set(priv.filemodel, dirname));
-   eo_add(&priv.fileview, ELM_VIEW_LIST_CLASS, NULL, 
elm_view_list_genlist_set(priv.fileview, genlist, ELM_GENLIST_ITEM_TREE, 
"double_label"));
+   priv.filemodel = eo_add(EIO_MODEL_CLASS, NULL, eio_model_path_set(eoid, 
dirname));
+   priv.fileview = eo_add(ELM_VIEW_LIST_CLASS, NULL, 
elm_view_list_genlist_set(eoid, genlist, ELM_GENLIST_ITEM_TREE, 
"double_label"));
    elm_view_list_model_set(priv.fileview, priv.filemodel);
    efl_model_load(priv.filemodel);
    evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _cleanup_cb, &priv);
diff --git a/src/examples/performance/graphical.c 
b/src/examples/performance/graphical.c
index deae035..7884591 100644
--- a/src/examples/performance/graphical.c
+++ b/src/examples/performance/graphical.c
@@ -248,7 +248,7 @@ void _init_bounding()
         20, 21, 22, 22, 21, 23
      };
 
-   eo_add(&globalGraphical.material_box, EVAS_CANVAS3D_MATERIAL_CLASS, 
globalGraphical.evas);
+   globalGraphical.material_box = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, 
globalGraphical.evas);
 
    evas_canvas3d_material_enable_set(globalGraphical.material_box, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, EINA_TRUE);
    evas_canvas3d_material_enable_set(globalGraphical.material_box, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE, EINA_TRUE);
@@ -259,7 +259,7 @@ void _init_bounding()
    evas_canvas3d_material_shininess_set(globalGraphical.material_box, 100.0);
 
    /* Setup mesh. */
-   eo_add(&globalGraphical.mesh_box, EVAS_CANVAS3D_MESH_CLASS, 
globalGraphical.evas);
+   globalGraphical.mesh_box = eo_add(EVAS_CANVAS3D_MESH_CLASS, 
globalGraphical.evas);
    evas_canvas3d_mesh_vertex_count_set(globalGraphical.mesh_box, 24);
    evas_canvas3d_mesh_frame_add(globalGraphical.mesh_box, 0);
    evas_canvas3d_mesh_frame_vertex_data_copy_set(globalGraphical.mesh_box, 0, 
EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, 12 * sizeof(float), &cube_vertices[ 0]);
@@ -271,7 +271,8 @@ void _init_bounding()
    evas_canvas3d_mesh_shade_mode_set(globalGraphical.mesh_box, 
EVAS_CANVAS3D_SHADE_MODE_PHONG);
    evas_canvas3d_mesh_frame_material_set(globalGraphical.mesh_box, 0, 
globalGraphical.material_box);
 
-   eo_add(&globalGraphical.mesh_nodebox, EVAS_CANVAS3D_NODE_CLASS, 
globalGraphical.evas, 
evas_canvas3d_node_constructor(globalGraphical.mesh_nodebox, 
EVAS_CANVAS3D_NODE_TYPE_MESH), 
evas_canvas3d_node_position_set(globalGraphical.mesh_nodebox, 0, -30.0, 0.0));
+   globalGraphical.mesh_nodebox =
+      eo_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_MESH), 
evas_canvas3d_node_position_set(eoid, 0, -30.0, 0.0));
    evas_canvas3d_node_member_add(globalGraphical.root_node, 
globalGraphical.mesh_nodebox);
    evas_canvas3d_node_mesh_add(globalGraphical.mesh_nodebox, 
globalGraphical.mesh_box);
 }
@@ -306,7 +307,7 @@ _change_scene_setup()
    _sphere_init(globalGraphical.precision);
    for (i = 0; i < quantity; i++)
      {
-        eo_add(&globalGraphical.mesh, EVAS_CANVAS3D_MESH_CLASS, 
globalGraphical.evas);
+        globalGraphical.mesh = eo_add(EVAS_CANVAS3D_MESH_CLASS, 
globalGraphical.evas);
         if (!globalGraphical.model_path)
           {
               evas_canvas3d_mesh_vertex_count_set(globalGraphical.mesh, 
globalGraphical.vertex_count);
@@ -357,7 +358,8 @@ _change_scene_setup()
    _sphere_count(globalGraphical.count, 0.2);
    for (i = 0; i < quantity; i++)
      {
-        eo_add(&globalGraphical.mesh_node, EVAS_CANVAS3D_NODE_CLASS, 
globalGraphical.evas, evas_canvas3d_node_constructor(globalGraphical.mesh_node, 
EVAS_CANVAS3D_NODE_TYPE_MESH), 
evas_canvas3d_node_position_set(globalGraphical.mesh_node, 
globalGraphical.places[i].position.x * 20, globalGraphical.places[i].position.y 
* 20, globalGraphical.places[i].position.z * 20));
+        globalGraphical.mesh_node =
+           eo_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_MESH), 
evas_canvas3d_node_position_set(eoid, globalGraphical.places[i].position.x * 
20, globalGraphical.places[i].position.y * 20, 
globalGraphical.places[i].position.z * 20));
         if (globalGraphical.model_path)
           evas_canvas3d_node_scale_set(globalGraphical.mesh_node, 0.2, 0.2, 
0.2);
         evas_canvas3d_node_member_add(globalGraphical.root_node, 
globalGraphical.mesh_node);
@@ -392,37 +394,39 @@ _init_scene(Evas_Object *img)
    /*Allocate memory - eina_mempool*/
 
    /* Add a scene object .*/
-   eo_add(&globalGraphical.scene, EVAS_CANVAS3D_SCENE_CLASS, 
globalGraphical.evas);
+   globalGraphical.scene = eo_add(EVAS_CANVAS3D_SCENE_CLASS, 
globalGraphical.evas);
 
    /* Add the root node for the scene. */
-   eo_add(&globalGraphical.root_node, EVAS_CANVAS3D_NODE_CLASS, 
globalGraphical.evas, evas_canvas3d_node_constructor(globalGraphical.root_node, 
EVAS_CANVAS3D_NODE_TYPE_NODE));
+   globalGraphical.root_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, 
globalGraphical.evas, evas_canvas3d_node_constructor(eoid, 
EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    /* Add the camera. */
-   eo_add(&globalGraphical.camera, EVAS_CANVAS3D_CAMERA_CLASS, 
globalGraphical.evas);
+   globalGraphical.camera = eo_add(EVAS_CANVAS3D_CAMERA_CLASS, 
globalGraphical.evas);
    evas_canvas3d_camera_projection_perspective_set(globalGraphical.camera, 
globalGraphical.angle, 1.0, 2.0, 1000.0);
 
-   eo_add(&globalGraphical.camera_node, EVAS_CANVAS3D_NODE_CLASS, 
globalGraphical.evas, 
evas_canvas3d_node_constructor(globalGraphical.camera_node, 
EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+   globalGraphical.camera_node =
+      eo_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(globalGraphical.camera_node, 
globalGraphical.camera);
    evas_canvas3d_node_position_set(globalGraphical.camera_node, 0.0, 0.0, 
25.0);
    evas_canvas3d_node_look_at_set(globalGraphical.camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
    evas_canvas3d_node_member_add(globalGraphical.root_node, 
globalGraphical.camera_node);
 
-   eo_add(&globalGraphical.light, EVAS_CANVAS3D_LIGHT_CLASS, 
globalGraphical.evas);
+   globalGraphical.light = eo_add(EVAS_CANVAS3D_LIGHT_CLASS, 
globalGraphical.evas);
    evas_canvas3d_light_ambient_set(globalGraphical.light, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_light_diffuse_set(globalGraphical.light, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_light_specular_set(globalGraphical.light, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_light_projection_perspective_set(globalGraphical.light, 
globalGraphical.angle / 5, 1.0, 1.0, 1000.0);
    evas_canvas3d_light_spot_cutoff_set(globalGraphical.light, 
globalGraphical.angle / 15);
 
-   eo_add(&globalGraphical.light_node, EVAS_CANVAS3D_NODE_CLASS, 
globalGraphical.evas, 
evas_canvas3d_node_constructor(globalGraphical.light_node, 
EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+   globalGraphical.light_node =
+      eo_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(globalGraphical.light_node, 
globalGraphical.light);
    evas_canvas3d_node_position_set(globalGraphical.light_node, 0.0, 100.0, 
1.0);
    evas_canvas3d_node_look_at_set(globalGraphical.light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
    evas_canvas3d_node_member_add(globalGraphical.root_node, 
globalGraphical.light_node);
 
 
-   eo_add(&globalGraphical.material, EVAS_CANVAS3D_MATERIAL_CLASS, 
globalGraphical.evas);
-   eo_add(&globalGraphical.texture, EVAS_CANVAS3D_TEXTURE_CLASS, 
globalGraphical.evas);
+   globalGraphical.material = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, 
globalGraphical.evas);
+   globalGraphical.texture = eo_add(EVAS_CANVAS3D_TEXTURE_CLASS, 
globalGraphical.evas);
    evas_canvas3d_texture_file_set(globalGraphical.texture, 
"target_texture.png", NULL);
    evas_canvas3d_texture_filter_set(globalGraphical.texture, 
EVAS_CANVAS3D_TEXTURE_FILTER_LINEAR, EVAS_CANVAS3D_TEXTURE_FILTER_LINEAR);
    evas_canvas3d_texture_wrap_set(globalGraphical.texture, 
EVAS_CANVAS3D_WRAP_MODE_REPEAT, EVAS_CANVAS3D_WRAP_MODE_REPEAT);
@@ -440,7 +444,7 @@ _init_scene(Evas_Object *img)
 
    for (i = 0; i < quantity; i++)
      {
-        eo_add(&globalGraphical.mesh, EVAS_CANVAS3D_MESH_CLASS, 
globalGraphical.evas);
+        globalGraphical.mesh = eo_add(EVAS_CANVAS3D_MESH_CLASS, 
globalGraphical.evas);
         if (!globalGraphical.model_path)
           {
               evas_canvas3d_mesh_vertex_count_set(globalGraphical.mesh, 
globalGraphical.vertex_count);
@@ -469,7 +473,8 @@ _init_scene(Evas_Object *img)
 
    for (i = 0; i < quantity; i++)
      {
-        eo_add(&globalGraphical.mesh_node, EVAS_CANVAS3D_NODE_CLASS, 
globalGraphical.evas, evas_canvas3d_node_constructor(globalGraphical.mesh_node, 
EVAS_CANVAS3D_NODE_TYPE_MESH), 
evas_canvas3d_node_position_set(globalGraphical.mesh_node, 
globalGraphical.places[i].position.x * 20, globalGraphical.places[i].position.y 
* 20, globalGraphical.places[i].position.z * 20));
+        globalGraphical.mesh_node =
+           eo_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_MESH), 
evas_canvas3d_node_position_set(eoid, globalGraphical.places[i].position.x * 
20, globalGraphical.places[i].position.y * 20, 
globalGraphical.places[i].position.z * 20));
         if (globalGraphical.model_path)
           evas_canvas3d_node_scale_set(globalGraphical.mesh_node, 0.2, 0.2, 
0.2);
         evas_canvas3d_node_member_add(globalGraphical.root_node, 
globalGraphical.mesh_node);
diff --git a/src/examples/sphere_hunter/evas_3d_sphere_hunter.c 
b/src/examples/sphere_hunter/evas_3d_sphere_hunter.c
index 9d672fc..6de714d 100644
--- a/src/examples/sphere_hunter/evas_3d_sphere_hunter.c
+++ b/src/examples/sphere_hunter/evas_3d_sphere_hunter.c
@@ -435,10 +435,10 @@ _quit_game(void *data EINA_UNUSED, Evas_Object *btn 
EINA_UNUSED, void *ev EINA_U
 static void
 _camera_setup(Scene_Data *data)
 {
-   eo_add(&data->camera, EVAS_CANVAS3D_CAMERA_CLASS, evas);
+   data->camera = eo_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
    evas_canvas3d_camera_projection_perspective_set(data->camera, 50.0, 1.0, 
1.0, 1000.0);
 
-   eo_add(&data->camera_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(data->camera_node, 
EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+   data->camera_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 0.0, 40, 70);
    evas_canvas3d_node_look_at_set(data->camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -459,14 +459,14 @@ _animate_camera(void *data)
 static void
 _light_setup(Scene_Data *data)
 {
-   eo_add(&data->light, EVAS_CANVAS3D_LIGHT_CLASS, evas);
+   data->light = eo_add(EVAS_CANVAS3D_LIGHT_CLASS, evas);
 
    evas_canvas3d_light_ambient_set(data->light, 0.2, 0.2, 0.2, 1.0);
    evas_canvas3d_light_diffuse_set(data->light, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_light_projection_perspective_set(data->light, 100.0, 1.0, 
1.0, 1000.0);
 
-   eo_add(&data->light_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(data->light_node, 
EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+   data->light_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 0.1, 25.0, 0.1);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -477,8 +477,8 @@ _light_setup(Scene_Data *data)
 static void
 _mesh_cube_setup(Scene_Data *data)
 {
-   eo_add(&data->mesh_cube, EVAS_CANVAS3D_MESH_CLASS, evas);
-   eo_add(&data->material_cube, EVAS_CANVAS3D_MATERIAL_CLASS, evas);
+   data->mesh_cube = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas);
+   data->material_cube = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
    evas_canvas3d_material_enable_set(data->material_cube, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, EINA_TRUE);
    evas_canvas3d_material_enable_set(data->material_cube, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE, EINA_TRUE);
    evas_canvas3d_material_enable_set(data->material_cube, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, EINA_TRUE);
@@ -506,9 +506,9 @@ _create_bondar(Scene_Data *data, Evas_Real scale_x, 
Evas_Real scale_y, Evas_Real
    Eo *node = NULL;
    Eo *material = NULL;
 
-   eo_add(&mesh, EVAS_CANVAS3D_MESH_CLASS, evas);
-   eo_add(&material, EVAS_CANVAS3D_MATERIAL_CLASS, evas);
-   eo_add(&node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(node, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   mesh = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas);
+   material = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
+   node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_MESH));
 
    evas_canvas3d_material_enable_set(material, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, EINA_TRUE);
    evas_canvas3d_material_enable_set(material, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE, EINA_TRUE);
@@ -556,7 +556,7 @@ _create_cubes(Scene_Data *data, Evas_Real r, int count)
         Eo *node = NULL;
 
         alpha = d_alpha * i * M_PI / 180;
-        eo_add(&node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(node, EVAS_CANVAS3D_NODE_TYPE_MESH));
+        node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_MESH));
 
         evas_canvas3d_node_mesh_add(node, data->mesh_cube);
         evas_canvas3d_node_position_set(node, r * sin(alpha), 2.0 + (r / 4 * 
sin(alpha)), r * cos(alpha));
@@ -573,9 +573,9 @@ _mesh_ball_setup(Scene_Data *data)
 {
    _sphere_init(100);
 
-   eo_add(&data->mesh_ball, EVAS_CANVAS3D_MESH_CLASS, evas);
-   eo_add(&data->material_ball, EVAS_CANVAS3D_MATERIAL_CLASS, evas);
-   eo_add(&data->mesh_node_ball, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(data->mesh_node_ball, 
EVAS_CANVAS3D_NODE_TYPE_MESH));
+   data->mesh_ball = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas);
+   data->material_ball = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
+   data->mesh_node_ball = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_MESH));
 
    /* Setup material for ball. */
    evas_canvas3d_material_enable_set(data->material_ball, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, EINA_TRUE);
@@ -609,10 +609,10 @@ _scene_setup(Scene_Data *data, Evas_Real r, int count)
 {
    Eina_List *l = NULL;
    Eo *item = NULL;
-   eo_add(&data->scene, EVAS_CANVAS3D_SCENE_CLASS, evas);
+   data->scene = eo_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
 
    /* Add the root node for the scene. */
-   eo_add(&data->root_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(data->root_node, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   data->root_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    evas_canvas3d_scene_size_set(data->scene, WIDTH, HEIGHT);
    evas_canvas3d_scene_shadows_enable_set(data->scene, EINA_TRUE);
diff --git a/src/lib/elc_ctxpopup.c b/src/lib/elc_ctxpopup.c
index db8804d..68f65d4 100644
--- a/src/lib/elc_ctxpopup.c
+++ b/src/lib/elc_ctxpopup.c
@@ -1176,8 +1176,7 @@ EAPI Evas_Object *
 elm_ctxpopup_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
 
    /* access: parent could be any object such as elm_list which does
       not know elc_ctxpopup as its child object in the focus_next(); */
@@ -1281,7 +1280,7 @@ _elm_ctxpopup_item_append(Eo *obj, Elm_Ctxpopup_Data *sd, 
const char *label, Eva
 {
    Eo *eo_item;
 
-   eo_add(&eo_item, ELM_CTXPOPUP_ITEM_CLASS, obj, 
elm_obj_ctxpopup_item_init(eo_item, func, data));
+   eo_item = eo_add(ELM_CTXPOPUP_ITEM_CLASS, obj, 
elm_obj_ctxpopup_item_init(eoid, func, data));
    if (!eo_item) return NULL;
 
    ELM_CTXPOPUP_ITEM_DATA_GET(eo_item, item);
@@ -1375,7 +1374,7 @@ _elm_ctxpopup_item_prepend(Eo *obj, Elm_Ctxpopup_Data 
*sd, const char *label, Ev
 {
    Eo *eo_item;
 
-   eo_add(&eo_item, ELM_CTXPOPUP_ITEM_CLASS, obj, 
elm_obj_ctxpopup_item_init(eo_item, func, data));
+   eo_item = eo_add(ELM_CTXPOPUP_ITEM_CLASS, obj, 
elm_obj_ctxpopup_item_init(eoid, func, data));
    if (!eo_item) return NULL;
 
    ELM_CTXPOPUP_ITEM_DATA_GET(eo_item, item);
diff --git a/src/lib/elc_fileselector.c b/src/lib/elc_fileselector.c
index 2452a11..36680ec 100644
--- a/src/lib/elc_fileselector.c
+++ b/src/lib/elc_fileselector.c
@@ -1624,8 +1624,7 @@ EAPI Evas_Object *
 elm_fileselector_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elc_fileselector_button.c 
b/src/lib/elc_fileselector_button.c
index 403119e..412aefd 100644
--- a/src/lib/elc_fileselector_button.c
+++ b/src/lib/elc_fileselector_button.c
@@ -215,8 +215,7 @@ EAPI Evas_Object *
 elm_fileselector_button_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elc_fileselector_entry.c b/src/lib/elc_fileselector_entry.c
index e2fd6b2..85bb72e 100644
--- a/src/lib/elc_fileselector_entry.c
+++ b/src/lib/elc_fileselector_entry.c
@@ -342,8 +342,7 @@ EAPI Evas_Object *
 elm_fileselector_entry_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elc_hoversel.c b/src/lib/elc_hoversel.c
index 8a13df1..e14e0e6 100644
--- a/src/lib/elc_hoversel.c
+++ b/src/lib/elc_hoversel.c
@@ -611,8 +611,7 @@ EAPI Evas_Object *
 elm_hoversel_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
@@ -749,8 +748,7 @@ _elm_hoversel_item_add(Eo *obj, Elm_Hoversel_Data *sd, 
const char *label, const
    Evas_Object *bt, *ic;
    char buf[4096];
 
-   Eo *eo_item = NULL;
-   eo_add(&eo_item, ELM_HOVERSEL_ITEM_CLASS, obj);
+   Eo *eo_item = eo_add(ELM_HOVERSEL_ITEM_CLASS, obj);
    if (!eo_item) return NULL;
 
    ELM_HOVERSEL_ITEM_DATA_GET(eo_item, item);
diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c
index d05ca76..a154571 100644
--- a/src/lib/elc_multibuttonentry.c
+++ b/src/lib/elc_multibuttonentry.c
@@ -746,7 +746,7 @@ _item_new(Elm_Multibuttonentry_Data *sd,
           return NULL;
      }
 
-   eo_add(&eo_item, ELM_MULTIBUTTONENTRY_ITEM_CLASS, obj);
+   eo_item = eo_add(ELM_MULTIBUTTONENTRY_ITEM_CLASS, obj);
    if (!eo_item)
      return NULL;
    WIDGET_ITEM_DATA_SET(eo_item, data);
@@ -1706,8 +1706,7 @@ EAPI Evas_Object *
 elm_multibuttonentry_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c
index 757ffc7..bb22c75 100644
--- a/src/lib/elc_naviframe.c
+++ b/src/lib/elc_naviframe.c
@@ -1209,7 +1209,7 @@ _item_new(Evas_Object *obj,
 
    ELM_NAVIFRAME_DATA_GET(obj, sd);
 
-   eo_add(&eo_item, ELM_NAVIFRAME_ITEM_CLASS, obj);
+   eo_item = eo_add(ELM_NAVIFRAME_ITEM_CLASS, obj);
 
    if (!eo_item)
      {
@@ -1583,8 +1583,7 @@ EAPI Evas_Object *
 elm_naviframe_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elc_player.c b/src/lib/elc_player.c
index e19a8e9..7c1e2a7 100644
--- a/src/lib/elc_player.c
+++ b/src/lib/elc_player.c
@@ -714,8 +714,7 @@ EAPI Evas_Object *
 elm_player_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elc_popup.c b/src/lib/elc_popup.c
index 89eeaa6..c69e16d 100644
--- a/src/lib/elc_popup.c
+++ b/src/lib/elc_popup.c
@@ -1574,8 +1574,7 @@ EAPI Evas_Object *
 elm_popup_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
 
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
    wd->highlight_root = EINA_TRUE;
@@ -1753,7 +1752,7 @@ _elm_popup_item_append(Eo *obj, Elm_Popup_Data *sd, const 
char *label, Evas_Obje
    Evas_Object *prev_content;
    Eo *eo_it;
 
-   eo_add(&eo_it, ELM_POPUP_ITEM_CLASS, obj);
+   eo_it = eo_add(ELM_POPUP_ITEM_CLASS, obj);
    if (!eo_it) return NULL;
    ELM_POPUP_ITEM_DATA_GET(eo_it, it);
    if (sd->content || sd->text_content_obj)
diff --git a/src/lib/elm_access.c b/src/lib/elm_access.c
index 25c665f..6e9a829 100644
--- a/src/lib/elm_access.c
+++ b/src/lib/elm_access.c
@@ -1235,8 +1235,7 @@ static Evas_Object *
 _elm_access_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_actionslider.c b/src/lib/elm_actionslider.c
index 47a7167..7e609e6 100644
--- a/src/lib/elm_actionslider.c
+++ b/src/lib/elm_actionslider.c
@@ -531,8 +531,7 @@ EAPI Evas_Object *
 elm_actionslider_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_app_client.c b/src/lib/elm_app_client.c
index c1f007e..ba6513d 100644
--- a/src/lib/elm_app_client.c
+++ b/src/lib/elm_app_client.c
@@ -37,7 +37,7 @@ _sub_path_process(Elm_App_Client *eo, Eldbus_Message_Iter 
*obj_iter, Elm_App_Cli
         if (view)
           continue;
 
-        eo_add(&view, ELM_APP_CLIENT_VIEW_CLASS, eo, 
elm_app_client_view_path_set(view, obj_path));
+        view = eo_add(ELM_APP_CLIENT_VIEW_CLASS, eo, 
elm_app_client_view_path_set(eoid, obj_path));
         eina_hash_add(data->views, obj_path, view);
         if (!loading_list)
           eo_event_callback_call(eo, ELM_APP_CLIENT_EVENT_VIEW_CREATED, view);
@@ -211,7 +211,7 @@ _create_view_cb(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
    view = eina_hash_find(cdata->views, view_path);
    if (!view)
      {
-        eo_add(&view, ELM_APP_CLIENT_VIEW_CLASS, eo, 
elm_app_client_view_path_set(view, view_path));
+        view = eo_add(ELM_APP_CLIENT_VIEW_CLASS, eo, 
elm_app_client_view_path_set(eoid, view_path));
         eina_hash_add(cdata->views, view_path, view);
         eo_event_callback_call(eo, ELM_APP_CLIENT_EVENT_VIEW_CREATED, view);
      }
diff --git a/src/lib/elm_app_server.c b/src/lib/elm_app_server.c
index 0802b65..a7483f9 100644
--- a/src/lib/elm_app_server.c
+++ b/src/lib/elm_app_server.c
@@ -255,7 +255,7 @@ _elm_app_server_constructor(Eo *obj, Elm_App_Server_Data 
*data, const char *pkg,
              new_events = 
elm_app_server_view_props_new_events_get(view_eet_props);
              progress = elm_app_server_view_props_progress_get(view_eet_props);
 
-             eo_add(&view, ELM_APP_SERVER_VIEW_CLASS, obj, 
elm_app_server_view_id_set(view, view_id));
+             view = eo_add(ELM_APP_SERVER_VIEW_CLASS, obj, 
elm_app_server_view_id_set(eoid, view_id));
              if (!view)
                continue;
 
diff --git a/src/lib/elm_atspi_bridge.c b/src/lib/elm_atspi_bridge.c
index e56b98d..3709b9c 100644
--- a/src/lib/elm_atspi_bridge.c
+++ b/src/lib/elm_atspi_bridge.c
@@ -4443,7 +4443,7 @@ _elm_atspi_bridge_init(void)
 {
    if (!_init_count)
      {
-        eo_add(&_instance, ELM_ATSPI_BRIDGE_CLASS, NULL);
+        _instance = eo_add(ELM_ATSPI_BRIDGE_CLASS, NULL);
         _init_count = 1;
      }
 }
diff --git a/src/lib/elm_bg.c b/src/lib/elm_bg.c
index fc503c8..1c709b2 100644
--- a/src/lib/elm_bg.c
+++ b/src/lib/elm_bg.c
@@ -113,8 +113,7 @@ EAPI Evas_Object *
 elm_bg_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_box.c b/src/lib/elm_box.c
index 133132a..f3fbd6f 100644
--- a/src/lib/elm_box.c
+++ b/src/lib/elm_box.c
@@ -436,8 +436,7 @@ EAPI Evas_Object *
 elm_box_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_bubble.c b/src/lib/elm_bubble.c
index 5c3a644..ba83049 100644
--- a/src/lib/elm_bubble.c
+++ b/src/lib/elm_bubble.c
@@ -219,8 +219,7 @@ EAPI Evas_Object *
 elm_bubble_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_button.c b/src/lib/elm_button.c
index 5fc7e75..9de31b7 100644
--- a/src/lib/elm_button.c
+++ b/src/lib/elm_button.c
@@ -324,8 +324,7 @@ EAPI Evas_Object *
 elm_button_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_calendar.c b/src/lib/elm_calendar.c
index bd5e119..af20e6f 100644
--- a/src/lib/elm_calendar.c
+++ b/src/lib/elm_calendar.c
@@ -1583,8 +1583,7 @@ EAPI Evas_Object *
 elm_calendar_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_check.c b/src/lib/elm_check.c
index a28be74..024e3da 100644
--- a/src/lib/elm_check.c
+++ b/src/lib/elm_check.c
@@ -371,8 +371,7 @@ EAPI Evas_Object *
 elm_check_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_clock.c b/src/lib/elm_clock.c
index e832cd9..a5f8a0b 100644
--- a/src/lib/elm_clock.c
+++ b/src/lib/elm_clock.c
@@ -790,8 +790,7 @@ EAPI Evas_Object *
 elm_clock_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c
index 1fbabad..ca2ae72 100644
--- a/src/lib/elm_colorselector.c
+++ b/src/lib/elm_colorselector.c
@@ -1781,7 +1781,7 @@ _palette_colors_load(Evas_Object *obj)
 
    EINA_LIST_FOREACH(color_list, elist, color)
      {
-        eo_add(&eo_item, ELM_COLOR_ITEM_CLASS, obj);
+        eo_item = eo_add(ELM_COLOR_ITEM_CLASS, obj);
         if (!eo_item) return;
 
         ELM_COLOR_ITEM_DATA_GET(eo_item, item);
@@ -2217,8 +2217,7 @@ EAPI Evas_Object *
 elm_colorselector_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
@@ -2397,7 +2396,7 @@ _elm_colorselector_palette_color_add(Eo *obj, 
Elm_Colorselector_Data *sd, int r,
         _items_del(sd);
         sd->config_load = EINA_FALSE;
      }
-   eo_add(&eo_item, ELM_COLOR_ITEM_CLASS, obj);
+   eo_item = eo_add(ELM_COLOR_ITEM_CLASS, obj);
    if (!eo_item) return NULL;
 
    ELM_COLOR_ITEM_DATA_GET(eo_item, item);
diff --git a/src/lib/elm_conform.c b/src/lib/elm_conform.c
index 35b335e..7021c5c 100644
--- a/src/lib/elm_conform.c
+++ b/src/lib/elm_conform.c
@@ -982,8 +982,7 @@ EAPI Evas_Object *
 elm_conformant_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_datetime.c b/src/lib/elm_datetime.c
index 26edc0c..88fe79d 100644
--- a/src/lib/elm_datetime.c
+++ b/src/lib/elm_datetime.c
@@ -884,8 +884,7 @@ EAPI Evas_Object *
 elm_datetime_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_dayselector.c b/src/lib/elm_dayselector.c
index 999f333..3f1b209 100644
--- a/src/lib/elm_dayselector.c
+++ b/src/lib/elm_dayselector.c
@@ -249,8 +249,7 @@ _elm_dayselector_elm_container_content_set(Eo *obj, 
Elm_Dayselector_Data *sd, co
      }
    else
      {
-        Eo *eo_it = NULL;
-        eo_add(&eo_it, ELM_DAYSELECTOR_ITEM_CLASS, obj);
+        Eo *eo_it = eo_add(ELM_DAYSELECTOR_ITEM_CLASS, obj);
         it = eo_data_scope_get(eo_it, ELM_DAYSELECTOR_ITEM_CLASS);
         it->day = day;
 
@@ -453,8 +452,7 @@ EAPI Evas_Object *
 elm_dayselector_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_diskselector.c b/src/lib/elm_diskselector.c
index 8ce0672..249a26e 100644
--- a/src/lib/elm_diskselector.c
+++ b/src/lib/elm_diskselector.c
@@ -665,8 +665,7 @@ _item_new(Evas_Object *obj,
           Evas_Smart_Cb func,
           const void *data)
 {
-   Eo *eo_it = NULL;
-   eo_add(&eo_it, ELM_DISKSELECTOR_ITEM_CLASS, obj);
+   Eo *eo_it = eo_add(ELM_DISKSELECTOR_ITEM_CLASS, obj);
    if (!eo_it) return NULL;
    ELM_DISKSELECTOR_ITEM_DATA_GET(eo_it, it);
 
@@ -1456,8 +1455,7 @@ EAPI Evas_Object *
 elm_diskselector_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c
index 9e6613f..75042ab 100644
--- a/src/lib/elm_entry.c
+++ b/src/lib/elm_entry.c
@@ -3872,8 +3872,7 @@ EAPI Evas_Object *
 elm_entry_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_flip.c b/src/lib/elm_flip.c
index cb3ac3d..8945690 100644
--- a/src/lib/elm_flip.c
+++ b/src/lib/elm_flip.c
@@ -1856,8 +1856,7 @@ EAPI Evas_Object *
 elm_flip_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_flipselector.c b/src/lib/elm_flipselector.c
index 58fabe8..2e789e7 100644
--- a/src/lib/elm_flipselector.c
+++ b/src/lib/elm_flipselector.c
@@ -313,7 +313,7 @@ _item_new(Evas_Object *obj,
 
    ELM_FLIPSELECTOR_DATA_GET(obj, sd);
 
-   eo_add(&eo_item, ELM_FLIPSELECTOR_ITEM_CLASS, obj);
+   eo_item = eo_add(ELM_FLIPSELECTOR_ITEM_CLASS, obj);
    if (!eo_item) return NULL;
 
    ELM_FLIPSELECTOR_ITEM_DATA_GET(eo_item, it);
@@ -562,8 +562,7 @@ EAPI Evas_Object *
 elm_flipselector_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_frame.c b/src/lib/elm_frame.c
index dbe7081..8b72263 100644
--- a/src/lib/elm_frame.c
+++ b/src/lib/elm_frame.c
@@ -195,8 +195,7 @@ EAPI Evas_Object *
 elm_frame_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c
index 7bef1af..93d2644 100644
--- a/src/lib/elm_gengrid.c
+++ b/src/lib/elm_gengrid.c
@@ -4164,8 +4164,7 @@ _elm_gengrid_item_new(Elm_Gengrid_Data *sd,
 {
    if (!itc) return NULL;
 
-   Eo *eo_it = NULL;
-   eo_add(&eo_it, ELM_GENGRID_ITEM_CLASS, sd->obj);
+   Eo *eo_it = eo_add(ELM_GENGRID_ITEM_CLASS, sd->obj);
    if (!eo_it) return NULL;
    ELM_GENGRID_ITEM_DATA_GET(eo_it, it);
 
@@ -4255,7 +4254,7 @@ _elm_gengrid_evas_object_smart_add(Eo *obj, 
Elm_Gengrid_Data *priv)
    priv->highlight = EINA_TRUE;
    priv->item_cache_max = CACHE_MAX;
 
-   eo_add(&priv->pan_obj, MY_PAN_CLASS, evas_object_evas_get(obj));
+   priv->pan_obj = eo_add(MY_PAN_CLASS, evas_object_evas_get(obj));
    pan_data = eo_data_scope_get(priv->pan_obj, MY_PAN_CLASS);
    eo_data_ref(obj, NULL);
    pan_data->wobj = obj;
@@ -4332,8 +4331,7 @@ EAPI Evas_Object *
 elm_gengrid_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c
index 3de17bd..64d13fa 100644
--- a/src/lib/elm_genlist.c
+++ b/src/lib/elm_genlist.c
@@ -5569,7 +5569,7 @@ _elm_genlist_evas_object_smart_add(Eo *obj, 
Elm_Genlist_Data *priv)
    priv->longpress_timeout = _elm_config->longpress_timeout;
    priv->highlight = EINA_TRUE;
 
-   eo_add(&priv->pan_obj, MY_PAN_CLASS, evas_object_evas_get(obj));
+   priv->pan_obj = eo_add(MY_PAN_CLASS, evas_object_evas_get(obj));
    pan_data = eo_data_scope_get(priv->pan_obj, MY_PAN_CLASS);
    eo_data_ref(obj, NULL);
    pan_data->wobj = obj;
@@ -5688,8 +5688,7 @@ EAPI Evas_Object *
 elm_genlist_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
@@ -6033,8 +6032,7 @@ _elm_genlist_item_new(Elm_Genlist_Data *sd,
 
    if (!itc) return NULL;
 
-   Eo *eo_it = NULL;
-   eo_add(&eo_it, ELM_GENLIST_ITEM_CLASS, sd->obj);
+   Eo *eo_it = eo_add(ELM_GENLIST_ITEM_CLASS, sd->obj);
    if (!eo_it) return NULL;
    ELM_GENLIST_ITEM_DATA_GET(eo_it, it);
 
diff --git a/src/lib/elm_gesture_layer.c b/src/lib/elm_gesture_layer.c
index 82c0eef1..27d60b7 100644
--- a/src/lib/elm_gesture_layer.c
+++ b/src/lib/elm_gesture_layer.c
@@ -3817,8 +3817,7 @@ EAPI Evas_Object *
 elm_gesture_layer_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_glview.c b/src/lib/elm_glview.c
index 3aefbfd..43d08d5 100644
--- a/src/lib/elm_glview.c
+++ b/src/lib/elm_glview.c
@@ -296,8 +296,7 @@ EAPI Evas_Object *
 elm_glview_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent, elm_obj_glview_version_constructor(obj, 
EVAS_GL_GLES_2_X));
+   Evas_Object *obj = eo_add(MY_CLASS, parent, 
elm_obj_glview_version_constructor(eoid, EVAS_GL_GLES_2_X));
    return obj;
 }
 
@@ -305,8 +304,7 @@ EAPI Evas_Object *
 elm_glview_version_add(Evas_Object *parent, Evas_GL_Context_Version version)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent, elm_obj_glview_version_constructor(obj, 
version));
+   Evas_Object *obj = eo_add(MY_CLASS, parent, 
elm_obj_glview_version_constructor(eoid, version));
    return obj;
 }
 
diff --git a/src/lib/elm_grid.c b/src/lib/elm_grid.c
index a5b12d0..957823c 100644
--- a/src/lib/elm_grid.c
+++ b/src/lib/elm_grid.c
@@ -161,8 +161,7 @@ EAPI Evas_Object *
 elm_grid_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_hover.c b/src/lib/elm_hover.c
index 01da062..22b7e3d 100644
--- a/src/lib/elm_hover.c
+++ b/src/lib/elm_hover.c
@@ -670,8 +670,7 @@ EAPI Evas_Object *
 elm_hover_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_icon.c b/src/lib/elm_icon.c
index 99d9c36..e2ec161 100644
--- a/src/lib/elm_icon.c
+++ b/src/lib/elm_icon.c
@@ -659,8 +659,7 @@ EAPI Evas_Object *
 elm_icon_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_image.c b/src/lib/elm_image.c
index 045fb8e..92aacaa 100644
--- a/src/lib/elm_image.c
+++ b/src/lib/elm_image.c
@@ -940,8 +940,7 @@ EAPI Evas_Object *
 elm_image_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_index.c b/src/lib/elm_index.c
index 808f90f..c6cf6b3 100644
--- a/src/lib/elm_index.c
+++ b/src/lib/elm_index.c
@@ -546,7 +546,7 @@ _item_new(Evas_Object *obj,
 
    ELM_INDEX_DATA_GET(obj, sd);
 
-   eo_add(&eo_item, ELM_INDEX_ITEM_CLASS, obj);
+   eo_item = eo_add(ELM_INDEX_ITEM_CLASS, obj);
    if (!eo_item) return NULL;
 
    ELM_INDEX_ITEM_DATA_GET(eo_item, it);
@@ -1221,8 +1221,7 @@ EAPI Evas_Object *
 elm_index_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_interface_atspi_accessible.c 
b/src/lib/elm_interface_atspi_accessible.c
index 1fec0a3..1e9d1a2 100644
--- a/src/lib/elm_interface_atspi_accessible.c
+++ b/src/lib/elm_interface_atspi_accessible.c
@@ -573,7 +573,7 @@ EOLIAN Eo*
 _elm_interface_atspi_accessible_root_get(Eo *class EINA_UNUSED, void *pd 
EINA_UNUSED)
 {
    if (!root)
-      eo_add(&root, ELM_ATSPI_APP_OBJECT_CLASS, NULL);
+      root = eo_add(ELM_ATSPI_APP_OBJECT_CLASS, NULL);
 
    return root;
 }
diff --git a/src/lib/elm_interface_scrollable.c 
b/src/lib/elm_interface_scrollable.c
index 1962441..14b522a 100644
--- a/src/lib/elm_interface_scrollable.c
+++ b/src/lib/elm_interface_scrollable.c
@@ -226,8 +226,7 @@ _elm_pan_gravity_get(Eo *obj EINA_UNUSED, 
Elm_Pan_Smart_Data *psd, double *x, do
 static Evas_Object *
 _elm_pan_add(Evas *evas)
 {
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_PAN_CLASS, evas);
+   Evas_Object *obj = eo_add(MY_PAN_CLASS, evas);
    return obj;
 }
 
diff --git a/src/lib/elm_inwin.c b/src/lib/elm_inwin.c
index e505bfe..1c673b7 100644
--- a/src/lib/elm_inwin.c
+++ b/src/lib/elm_inwin.c
@@ -96,8 +96,7 @@ EAPI Evas_Object *
 elm_win_inwin_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_label.c b/src/lib/elm_label.c
index 1f2ff63..6887a5f 100644
--- a/src/lib/elm_label.c
+++ b/src/lib/elm_label.c
@@ -404,8 +404,7 @@ EAPI Evas_Object *
 elm_label_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_layout.c b/src/lib/elm_layout.c
index 389f95a..8058b83 100644
--- a/src/lib/elm_layout.c
+++ b/src/lib/elm_layout.c
@@ -1771,8 +1771,7 @@ EAPI Evas_Object *
 elm_layout_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c
index 225f892..14164dc 100644
--- a/src/lib/elm_list.c
+++ b/src/lib/elm_list.c
@@ -2284,8 +2284,7 @@ _item_new(Evas_Object *obj,
           Evas_Smart_Cb func,
           const void *data)
 {
-   Eo *eo_it = NULL;
-   eo_add(&eo_it, ELM_LIST_ITEM_CLASS, obj);
+   Eo *eo_it = eo_add(ELM_LIST_ITEM_CLASS, obj);
    if (!eo_it) return NULL;
    ELM_LIST_ITEM_DATA_GET(eo_it, it);
 
@@ -2542,8 +2541,7 @@ EAPI Evas_Object *
 elm_list_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_map.c b/src/lib/elm_map.c
index ecc75dc..b4f9152 100644
--- a/src/lib/elm_map.c
+++ b/src/lib/elm_map.c
@@ -4062,7 +4062,7 @@ _elm_map_evas_object_smart_add(Eo *obj, Elm_Map_Data 
*priv)
    elm_interface_scrollable_animate_stop_cb_set(obj, _scroll_animate_stop_cb);
    elm_interface_scrollable_scroll_cb_set(obj, _scroll_cb);
 
-   eo_add(&priv->pan_obj, MY_PAN_CLASS, evas_object_evas_get(obj));
+   priv->pan_obj = eo_add(MY_PAN_CLASS, evas_object_evas_get(obj));
    pan_data = eo_data_scope_get(priv->pan_obj, MY_PAN_CLASS);
    eo_data_ref(obj, NULL);
    pan_data->wobj = obj;
@@ -4213,8 +4213,7 @@ EAPI Evas_Object *
 elm_map_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_mapbuf.c b/src/lib/elm_mapbuf.c
index 2bd01da..b06dd3f 100644
--- a/src/lib/elm_mapbuf.c
+++ b/src/lib/elm_mapbuf.c
@@ -286,8 +286,7 @@ EAPI Evas_Object *
 elm_mapbuf_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_menu.c b/src/lib/elm_menu.c
index f8d3e4c..ee31bcc 100644
--- a/src/lib/elm_menu.c
+++ b/src/lib/elm_menu.c
@@ -781,8 +781,7 @@ EAPI Evas_Object *
 elm_menu_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
@@ -1021,7 +1020,7 @@ _elm_menu_item_add(Eo *obj, Elm_Menu_Data *sd, 
Elm_Object_Item *parent, const ch
    elm_interface_atspi_accessible_type_set(icon_obj, ELM_ATSPI_TYPE_DISABLED);
    if (!icon_obj) return NULL;
 
-   eo_add(&eo_item, ELM_MENU_ITEM_CLASS, obj);
+   eo_item = eo_add(ELM_MENU_ITEM_CLASS, obj);
    if (!eo_item)
      {
         evas_object_del(icon_obj);
@@ -1109,7 +1108,7 @@ _elm_menu_item_separator_add(Eo *obj, Elm_Menu_Data *sd, 
Elm_Object_Item *eo_p_i
    ELM_MENU_ITEM_DATA_GET(eo_subitem, subitem);
    if (subitem->separator) return NULL;
 
-   eo_add(&eo_subitem, ELM_MENU_ITEM_CLASS, obj);
+   eo_subitem = eo_add(ELM_MENU_ITEM_CLASS, obj);
    if (!eo_subitem) return NULL;
 
    subitem = eo_data_scope_get(eo_subitem, ELM_MENU_ITEM_CLASS);
diff --git a/src/lib/elm_notify.c b/src/lib/elm_notify.c
index 59860d7..4a22425 100644
--- a/src/lib/elm_notify.c
+++ b/src/lib/elm_notify.c
@@ -464,8 +464,7 @@ EAPI Evas_Object *
 elm_notify_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_panel.c b/src/lib/elm_panel.c
index 95a52e4..692649a 100644
--- a/src/lib/elm_panel.c
+++ b/src/lib/elm_panel.c
@@ -1160,8 +1160,7 @@ EAPI Evas_Object *
 elm_panel_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
 
    ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
    wd->highlight_root = EINA_TRUE;
diff --git a/src/lib/elm_panes.c b/src/lib/elm_panes.c
index 197a666..2e249e0 100644
--- a/src/lib/elm_panes.c
+++ b/src/lib/elm_panes.c
@@ -321,8 +321,7 @@ EAPI Evas_Object *
 elm_panes_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_photo.c b/src/lib/elm_photo.c
index e1bb05c..ada1590 100644
--- a/src/lib/elm_photo.c
+++ b/src/lib/elm_photo.c
@@ -296,8 +296,7 @@ EAPI Evas_Object *
 elm_photo_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_photocam.c b/src/lib/elm_photocam.c
index bf99468..31acf63 100644
--- a/src/lib/elm_photocam.c
+++ b/src/lib/elm_photocam.c
@@ -1414,7 +1414,7 @@ _elm_photocam_evas_object_smart_add(Eo *obj, 
Elm_Photocam_Data *priv)
 
    elm_interface_scrollable_bounce_allow_set(obj, bounce, bounce);
 
-   eo_add(&priv->pan_obj, MY_PAN_CLASS, evas_object_evas_get(obj));
+   priv->pan_obj = eo_add(MY_PAN_CLASS, evas_object_evas_get(obj));
    pan_data = eo_data_scope_get(priv->pan_obj, MY_PAN_CLASS);
    eo_data_ref(obj, NULL);
    pan_data->wobj = obj;
@@ -1506,8 +1506,7 @@ EAPI Evas_Object *
 elm_photocam_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_plug.c b/src/lib/elm_plug.c
index ca435bb..a567d63 100644
--- a/src/lib/elm_plug.c
+++ b/src/lib/elm_plug.c
@@ -136,8 +136,7 @@ EAPI Evas_Object *
 elm_plug_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_prefs.c b/src/lib/elm_prefs.c
index 7f50f37..87e12e0 100644
--- a/src/lib/elm_prefs.c
+++ b/src/lib/elm_prefs.c
@@ -508,8 +508,7 @@ elm_prefs_add(Evas_Object *parent)
         return NULL;
      }
 
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_progressbar.c b/src/lib/elm_progressbar.c
index 7860f26..a001fac 100644
--- a/src/lib/elm_progressbar.c
+++ b/src/lib/elm_progressbar.c
@@ -324,8 +324,7 @@ EAPI Evas_Object *
 elm_progressbar_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_radio.c b/src/lib/elm_radio.c
index 923f1b9..39576cf 100644
--- a/src/lib/elm_radio.c
+++ b/src/lib/elm_radio.c
@@ -267,8 +267,7 @@ EAPI Evas_Object *
 elm_radio_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_route.c b/src/lib/elm_route.c
index e9989b7..d5117be 100644
--- a/src/lib/elm_route.c
+++ b/src/lib/elm_route.c
@@ -178,8 +178,7 @@ EAPI Evas_Object *
 elm_route_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_scroller.c b/src/lib/elm_scroller.c
index 545d347..91fa297 100644
--- a/src/lib/elm_scroller.c
+++ b/src/lib/elm_scroller.c
@@ -945,8 +945,7 @@ EAPI Evas_Object *
 elm_scroller_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_segment_control.c b/src/lib/elm_segment_control.c
index 3dcc40a..d77b932 100644
--- a/src/lib/elm_segment_control.c
+++ b/src/lib/elm_segment_control.c
@@ -557,7 +557,7 @@ _item_new(Evas_Object *obj,
 {
    Eo *eo_item;
 
-   eo_add(&eo_item, ELM_SEGMENT_CONTROL_ITEM_CLASS, obj);
+   eo_item = eo_add(ELM_SEGMENT_CONTROL_ITEM_CLASS, obj);
    if (!eo_item) return NULL;
 
    ELM_SEGMENT_ITEM_DATA_GET(eo_item, it);
@@ -697,8 +697,7 @@ EAPI Evas_Object *
 elm_segment_control_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_separator.c b/src/lib/elm_separator.c
index e8b04c6..2e940d9 100644
--- a/src/lib/elm_separator.c
+++ b/src/lib/elm_separator.c
@@ -62,8 +62,7 @@ EAPI Evas_Object *
 elm_separator_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_slider.c b/src/lib/elm_slider.c
index fd9d78c..37ea643 100644
--- a/src/lib/elm_slider.c
+++ b/src/lib/elm_slider.c
@@ -952,8 +952,7 @@ EAPI Evas_Object *
 elm_slider_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_slideshow.c b/src/lib/elm_slideshow.c
index 2154b7c..c3d5879 100644
--- a/src/lib/elm_slideshow.c
+++ b/src/lib/elm_slideshow.c
@@ -381,8 +381,7 @@ EAPI Evas_Object *
 elm_slideshow_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
@@ -411,7 +410,7 @@ _elm_slideshow_item_add(Eo *obj, Elm_Slideshow_Data *sd, 
const Elm_Slideshow_Ite
 {
    Eo *eo_item;
 
-   eo_add(&eo_item, ELM_SLIDESHOW_ITEM_CLASS, obj);
+   eo_item = eo_add(ELM_SLIDESHOW_ITEM_CLASS, obj);
    if (!eo_item) return NULL;
 
    ELM_SLIDESHOW_ITEM_DATA_GET(eo_item, item);
@@ -432,7 +431,7 @@ _elm_slideshow_item_sorted_insert(Eo *obj, 
Elm_Slideshow_Data *sd, const Elm_Sli
 {
    Eo *eo_item;
 
-   eo_add(&eo_item, ELM_SLIDESHOW_ITEM_CLASS, obj);
+   eo_item = eo_add(ELM_SLIDESHOW_ITEM_CLASS, obj);
    if (!eo_item) return NULL;
 
    ELM_SLIDESHOW_ITEM_DATA_GET(eo_item, item);
diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c
index de25b9d..b621476 100644
--- a/src/lib/elm_spinner.c
+++ b/src/lib/elm_spinner.c
@@ -1403,8 +1403,7 @@ EAPI Evas_Object *
 elm_spinner_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_sys_notify.c b/src/lib/elm_sys_notify.c
index 5d9f369..c58659a 100644
--- a/src/lib/elm_sys_notify.c
+++ b/src/lib/elm_sys_notify.c
@@ -169,7 +169,7 @@ _elm_sys_notify_servers_set(Eo                     *obj  
EINA_UNUSED,
                        return EINA_FALSE;
                     }
 
-                  eo_add(&sd->servers[i], class_get(), NULL);
+                  sd->servers[i] = eo_add(class_get(), NULL);
                   if (EINA_UNLIKELY(!(sd->servers[i])))
                     {
                        CRI("Failed to create notification server");
@@ -201,7 +201,7 @@ _elm_sys_notify_singleton_get(Eo   *obj EINA_UNUSED,
                               void *sd  EINA_UNUSED)
 {
    if (!_singleton)
-     eo_add(&_singleton, MY_CLASS, NULL);
+     _singleton = eo_add(MY_CLASS, NULL);
    return _singleton;
 }
 
diff --git a/src/lib/elm_table.c b/src/lib/elm_table.c
index d3ffca8..93099d7 100644
--- a/src/lib/elm_table.c
+++ b/src/lib/elm_table.c
@@ -214,8 +214,7 @@ EAPI Evas_Object *
 elm_table_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_thumb.c b/src/lib/elm_thumb.c
index 5204d11..6b33e43 100644
--- a/src/lib/elm_thumb.c
+++ b/src/lib/elm_thumb.c
@@ -586,8 +586,7 @@ EAPI Evas_Object *
 elm_thumb_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_toolbar.c b/src/lib/elm_toolbar.c
index 327b227..1611969 100644
--- a/src/lib/elm_toolbar.c
+++ b/src/lib/elm_toolbar.c
@@ -2374,8 +2374,7 @@ _item_new(Evas_Object *obj,
 
    ELM_TOOLBAR_DATA_GET(obj, sd);
 
-   Eo *eo_it = NULL;
-   eo_add(&eo_it, ELM_TOOLBAR_ITEM_CLASS, obj);
+   Eo *eo_it = eo_add(ELM_TOOLBAR_ITEM_CLASS, obj);
 
    if (!eo_it) return NULL;
 
@@ -2990,8 +2989,7 @@ EAPI Evas_Object *
 elm_toolbar_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_video.c b/src/lib/elm_video.c
index f93a5da..65a5d6e 100644
--- a/src/lib/elm_video.c
+++ b/src/lib/elm_video.c
@@ -284,8 +284,7 @@ EAPI Evas_Object *
 elm_video_add(Evas_Object *parent)
 {
    EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent);
+   Evas_Object *obj = eo_add(MY_CLASS, parent);
    return obj;
 }
 
diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index 138e112..70f5392 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -3231,16 +3231,14 @@ elm_win_add(Evas_Object *parent,
             const char *name,
             Elm_Win_Type type)
 {
-   Evas_Object *obj = NULL;
-   eo_add(&obj, MY_CLASS, parent, elm_obj_win_name_set(obj, name), 
elm_obj_win_type_set(obj, type));
+   Evas_Object *obj = eo_add(MY_CLASS, parent, elm_obj_win_name_set(eoid, 
name), elm_obj_win_type_set(eoid, type));
    return obj;
 }
 
 EAPI Evas_Object *
 elm_win_fake_add(Ecore_Evas *ee)
 {
-   Eo *ret = NULL;
-   return eo_add(&ret, MY_CLASS, NULL, elm_obj_win_fake_canvas_set(ret, ee), 
elm_obj_win_name_set(ret, NULL), elm_obj_win_type_set(ret, ELM_WIN_FAKE));
+   return eo_add(MY_CLASS, NULL, elm_obj_win_fake_canvas_set(eoid, ee), 
elm_obj_win_name_set(eoid, NULL), elm_obj_win_type_set(eoid, ELM_WIN_FAKE));
 }
 
 static void
diff --git a/src/lib/elm_win_standard.c b/src/lib/elm_win_standard.c
index de0da52..c54e3b0 100644
--- a/src/lib/elm_win_standard.c
+++ b/src/lib/elm_win_standard.c
@@ -19,8 +19,7 @@ _elm_win_standard_eo_base_finalize(Eo *obj, void *pd 
EINA_UNUSED)
    if (!obj)
      return NULL;
 
-   Evas_Object *bg = NULL;
-   eo_add(&bg, ELM_BG_CLASS, obj);
+   Evas_Object *bg = eo_add(ELM_BG_CLASS, obj);
    if (!bg)
      {
         ERR("Cannot create background.");
diff --git a/src/tests/elm_test_atspi.c b/src/tests/elm_test_atspi.c
index f88b5ae..82c1564 100644
--- a/src/tests/elm_test_atspi.c
+++ b/src/tests/elm_test_atspi.c
@@ -29,8 +29,7 @@ START_TEST (elm_atspi_app_obj_name_get)
 {
    elm_init(0, NULL);
 
-   Eo* root = NULL;
-   eo_add(&root, ELM_ATSPI_APP_OBJECT_CLASS, NULL);
+   Eo* root = eo_add(ELM_ATSPI_APP_OBJECT_CLASS, NULL);
 
    ck_assert(root != NULL);
 
@@ -109,8 +108,7 @@ START_TEST (elm_atspi_role_get)
 {
    elm_init(0, NULL);
 
-   Eo* root = NULL;
-   eo_add(&root, ELM_ATSPI_APP_OBJECT_CLASS, NULL);
+   Eo* root = eo_add(ELM_ATSPI_APP_OBJECT_CLASS, NULL);
 
    Elm_Atspi_Role role;
 
@@ -151,8 +149,7 @@ START_TEST (elm_atspi_role_name_get)
 {
    elm_init(0, NULL);
 
-   Eo* root = NULL;
-   eo_add(&root, ELM_ATSPI_APP_OBJECT_CLASS, NULL);
+   Eo* root = eo_add(ELM_ATSPI_APP_OBJECT_CLASS, NULL);
 
    const char *ret = NULL;
 
@@ -169,8 +166,7 @@ START_TEST (elm_atspi_localized_role_name_get)
 {
    elm_init(0, NULL);
 
-   Eo* root = NULL;
-   eo_add(&root, ELM_ATSPI_APP_OBJECT_CLASS, NULL);
+   Eo* root = eo_add(ELM_ATSPI_APP_OBJECT_CLASS, NULL);
 
    const char *ret = NULL;
 
@@ -187,8 +183,7 @@ START_TEST (elm_atspi_description_set)
 {
    elm_init(0, NULL);
 
-   Eo* root = NULL;
-   eo_add(&root, ELM_ATSPI_APP_OBJECT_CLASS, NULL);
+   Eo* root = eo_add(ELM_ATSPI_APP_OBJECT_CLASS, NULL);
 
    const char *ret = NULL;
 
@@ -234,8 +229,7 @@ START_TEST (elm_atspi_children_and_parent)
    elm_init(0, NULL);
 
    generate_app();
-   Eo* root = NULL;
-   eo_add(&root, ELM_ATSPI_APP_OBJECT_CLASS, NULL);
+   Eo* root = eo_add(ELM_ATSPI_APP_OBJECT_CLASS, NULL);
 
    Eina_List *child_list = NULL;
 
@@ -262,8 +256,7 @@ START_TEST (elm_atspi_children_and_parent2)
    elm_init(0, NULL);
 
    generate_app();
-   Eo* root = NULL;
-   eo_add(&root, ELM_ATSPI_APP_OBJECT_CLASS, NULL);
+   Eo* root = eo_add(ELM_ATSPI_APP_OBJECT_CLASS, NULL);
 
    Eo *win = NULL;
 

-- 


Reply via email to