Revert "efl_add_ref - fis to use efl_add properly with a parent."

This reverts commit 2fb5cc3ad09f6aaf82b5d1131ac5ed22ed848bd4.

Most of this change where wrong as they didn't affect the destruction
of the object. efl_add_ref allow for manual handling of the lifecycle
of the object and make sure it is still alive during destructor. efl_add
will not allow you to access an object after invalidate also efl.parent.get
will always return NULL once the object is invalidated.

Differential Revision: https://phab.enlightenment.org/D6062
This commit is contained in:
Cedric BAIL 2018-04-11 10:38:21 -07:00
parent 7ce001084a
commit 73876dcbc9
19 changed files with 56 additions and 57 deletions

View File

@ -56,9 +56,9 @@ main(int argc, const char *argv[])
ecore_app_args_set(argc, argv); ecore_app_args_set(argc, argv);
out = efl_add(ECORE_AUDIO_OBJ_OUT_PULSE_CLASS, efl_main_loop_get()); out = efl_add_ref(ECORE_AUDIO_OBJ_OUT_PULSE_CLASS, NULL);
in = efl_add(ECORE_AUDIO_OBJ_IN_CLASS, efl_main_loop_get()); in = efl_add_ref(ECORE_AUDIO_OBJ_IN_CLASS, NULL);
if (!in) if (!in)
{ {
printf("error when creating ecore audio source.\n"); printf("error when creating ecore audio source.\n");

View File

@ -201,7 +201,7 @@ static void _play_finished(void *data EINA_UNUSED, const Efl_Event *event)
inputs = eina_list_remove(inputs, event->object); inputs = eina_list_remove(inputs, event->object);
ret = ecore_audio_obj_out_input_detach(out, event->object); ret = ecore_audio_obj_out_input_detach(out, event->object);
efl_del(event->object); efl_unref(event->object);
if (!ret) if (!ret)
printf("Could not detach input %s\n", name); printf("Could not detach input %s\n", name);
@ -252,7 +252,7 @@ main(int argc, const char *argv[])
{ {
if (!strncmp(argv[i], "tone:", 5)) if (!strncmp(argv[i], "tone:", 5))
{ {
in = efl_add(ECORE_AUDIO_OBJ_IN_TONE_CLASS, efl_main_loop_get()); in = efl_add_ref(ECORE_AUDIO_OBJ_IN_TONE_CLASS, NULL);
if (!in) if (!in)
{ {
printf("error when creating ecore audio source.\n"); printf("error when creating ecore audio source.\n");
@ -276,7 +276,7 @@ main(int argc, const char *argv[])
} }
else else
{ {
in = efl_add(ECORE_AUDIO_OBJ_IN_SNDFILE_CLASS, efl_main_loop_get()); in = efl_add_ref(ECORE_AUDIO_OBJ_IN_SNDFILE_CLASS, NULL);
if (!in) if (!in)
{ {
printf("error when creating ecore audio source.\n"); printf("error when creating ecore audio source.\n");
@ -307,7 +307,7 @@ main(int argc, const char *argv[])
printf("Start: %s (%0.2fs)\n", name, length); printf("Start: %s (%0.2fs)\n", name, length);
out = efl_add(ECORE_AUDIO_OBJ_OUT_PULSE_CLASS, efl_main_loop_get()); out = efl_add_ref(ECORE_AUDIO_OBJ_OUT_PULSE_CLASS, NULL);
ret = ecore_audio_obj_out_input_attach(out, in); ret = ecore_audio_obj_out_input_attach(out, in);
if (!ret) if (!ret)
printf("Could not attach input %s\n", name); printf("Could not attach input %s\n", name);

View File

@ -24,8 +24,8 @@ static void _play_finished(void *data EINA_UNUSED, const Efl_Event *event)
printf("Done: %s\n", name); printf("Done: %s\n", name);
ecore_audio_obj_in_output_get(event->object, &out); ecore_audio_obj_in_output_get(event->object, &out);
efl_del(event->object); efl_unref(event->object);
efl_del(out); efl_unref(out);
ecore_main_loop_quit(); ecore_main_loop_quit();
@ -49,31 +49,31 @@ main(int argc, char *argv[])
ecore_audio_init(); ecore_audio_init();
in = efl_add(ECORE_AUDIO_OBJ_IN_SNDFILE_CLASS, efl_main_loop_get()); in = efl_add_ref(ECORE_AUDIO_OBJ_IN_SNDFILE_CLASS, NULL);
efl_name_set(in, basename(argv[1])); efl_name_set(in, basename(argv[1]));
ret = ecore_audio_obj_source_set(in, argv[1]); ret = ecore_audio_obj_source_set(in, argv[1]);
if (!ret) { if (!ret) {
printf("Could not set %s as input\n", argv[1]); printf("Could not set %s as input\n", argv[1]);
efl_del(in); efl_unref(in);
return 1; return 1;
} }
efl_event_callback_add(in, ECORE_AUDIO_EV_IN_STOPPED, _play_finished, NULL); efl_event_callback_add(in, ECORE_AUDIO_EV_IN_STOPPED, _play_finished, NULL);
out = efl_add(ECORE_AUDIO_OBJ_OUT_SNDFILE_CLASS, efl_main_loop_get()); out = efl_add_ref(ECORE_AUDIO_OBJ_OUT_SNDFILE_CLASS, NULL);
ret = ecore_audio_obj_source_set(out, argv[2]); ret = ecore_audio_obj_source_set(out, argv[2]);
if (!ret) { if (!ret) {
printf("Could not set %s as output\n", argv[2]); printf("Could not set %s as output\n", argv[2]);
efl_del(in); efl_unref(in);
efl_del(out); efl_unref(out);
return 1; return 1;
} }
ret = ecore_audio_obj_out_input_attach(out, in); ret = ecore_audio_obj_out_input_attach(out, in);
if (!ret) { if (!ret) {
printf("Could not attach input\n"); printf("Could not attach input\n");
efl_del(out); efl_unref(out);
efl_del(in); efl_unref(in);
return 1; return 1;
} }

View File

@ -110,7 +110,7 @@ main(void)
ctxt.enterer = ecore_idle_enterer_add(_enterer_cb, &ctxt); ctxt.enterer = ecore_idle_enterer_add(_enterer_cb, &ctxt);
ctxt.exiter = ecore_idle_exiter_add(_exiter_cb, &ctxt); ctxt.exiter = ecore_idle_exiter_add(_exiter_cb, &ctxt);
ctxt.idler = ecore_idler_add(_idler_cb, &ctxt); ctxt.idler = ecore_idler_add(_idler_cb, &ctxt);
// ctxt.idler = efl_add(ECORE_IDLER_CLASS, efl_main_loop_get(), ecore_idler_constructor(efl_added, _idler_cb, &ctxt)); // ctxt.idler = efl_add_ref(ECORE_IDLER_CLASS, NULL, ecore_idler_constructor(efl_added, _idler_cb, &ctxt));
ctxt.handler = ecore_event_handler_add(_event_type, ctxt.handler = ecore_event_handler_add(_event_type,
_event_handler_cb, _event_handler_cb,
&ctxt); &ctxt);

View File

@ -48,9 +48,9 @@ main(void)
poller2 = ecore_poller_add(ECORE_POLLER_CORE, 8, _poller_print_cb, str2); poller2 = ecore_poller_add(ECORE_POLLER_CORE, 8, _poller_print_cb, str2);
poller3 = ecore_poller_add(ECORE_POLLER_CORE, 30, _poller_quit_cb, str3); poller3 = ecore_poller_add(ECORE_POLLER_CORE, 30, _poller_quit_cb, str3);
// poller1 = efl_add(ECORE_POLLER_CLASS, efl_main_loop_get(), // ecore_poller_constructor(efl_added, ECORE_POLLER_CORE, 4, _poller_print_cb, str1)); // poller1 = efl_add_ref(ECORE_POLLER_CLASS, NULL, // ecore_poller_constructor(efl_added, ECORE_POLLER_CORE, 4, _poller_print_cb, str1));
// poller2 = efl_add(ECORE_POLLER_CLASS, efl_main_loop_get(), // ecore_poller_constructor(efl_added, ECORE_POLLER_CORE, 8, _poller_print_cb, str2)); // poller2 = efl_add_ref(ECORE_POLLER_CLASS, NULL, // ecore_poller_constructor(efl_added, ECORE_POLLER_CORE, 8, _poller_print_cb, str2));
// poller3 = efl_add(ECORE_POLLER_CLASS, efl_main_loop_get(), // ecore_poller_constructor(efl_added, ECORE_POLLER_CORE, 20, _poller_quit_cb, str3)); // poller3 = efl_add_ref(ECORE_POLLER_CLASS, NULL, // ecore_poller_constructor(efl_added, ECORE_POLLER_CORE, 20, _poller_quit_cb, str3));
ecore_main_loop_begin(); ecore_main_loop_begin();
@ -61,9 +61,9 @@ main(void)
// ecore_poller_interval_set(poller2, 16, NULL); // ecore_poller_interval_set(poller2, 16, NULL);
ecore_main_loop_begin(); ecore_main_loop_begin();
// efl_del(poller1); // efl_unref(poller1);
// efl_del(poller2); // efl_unref(poller2);
// efl_del(poller3); // efl_unref(poller3);
ecore_poller_del(poller1); ecore_poller_del(poller1);
ecore_poller_del(poller2); ecore_poller_del(poller2);
ecore_poller_del(poller3); ecore_poller_del(poller3);

View File

@ -452,7 +452,7 @@ efl_main(void *data EINA_UNUSED,
if (strcmp(input_fname, ":stdin:") == 0) if (strcmp(input_fname, ":stdin:") == 0)
{ {
input = efl_add(EFL_IO_STDIN_CLASS, ev->object, input = efl_add_ref(EFL_IO_STDIN_CLASS, NULL,
efl_event_callback_array_add(efl_added, input_cbs(), NULL)); efl_event_callback_array_add(efl_added, input_cbs(), NULL));
if (!input) if (!input)
{ {
@ -662,7 +662,7 @@ efl_main(void *data EINA_UNUSED,
else else
{ {
/* regular file, open with flags: read-only and close-on-exec */ /* regular file, open with flags: read-only and close-on-exec */
input = efl_add(EFL_IO_FILE_CLASS, ev->object, input = efl_add_ref(EFL_IO_FILE_CLASS, NULL,
efl_file_set(efl_added, input_fname, NULL), /* mandatory */ efl_file_set(efl_added, input_fname, NULL), /* mandatory */
efl_io_file_flags_set(efl_added, O_RDONLY), /* default */ efl_io_file_flags_set(efl_added, O_RDONLY), /* default */
efl_io_closer_close_on_exec_set(efl_added, EINA_TRUE), /* recommended, set *after* flags, or include O_CLOEXEC in flags -- be careful with _WIN32 that doesn't support it. */ efl_io_closer_close_on_exec_set(efl_added, EINA_TRUE), /* recommended, set *after* flags, or include O_CLOEXEC in flags -- be careful with _WIN32 that doesn't support it. */
@ -679,7 +679,7 @@ efl_main(void *data EINA_UNUSED,
if (strcmp(output_fname, ":stdout:") == 0) if (strcmp(output_fname, ":stdout:") == 0)
{ {
output = efl_add(EFL_IO_STDOUT_CLASS, ev->object, output = efl_add_ref(EFL_IO_STDOUT_CLASS, NULL,
efl_event_callback_array_add(efl_added, output_cbs(), NULL) /* optional */ efl_event_callback_array_add(efl_added, output_cbs(), NULL) /* optional */
); );
if (!output) if (!output)
@ -691,7 +691,7 @@ efl_main(void *data EINA_UNUSED,
} }
else if (strcmp(output_fname, ":stderr:") == 0) else if (strcmp(output_fname, ":stderr:") == 0)
{ {
output = efl_add(EFL_IO_STDERR_CLASS, ev->object, output = efl_add_ref(EFL_IO_STDERR_CLASS, NULL,
efl_event_callback_array_add(efl_added, output_cbs(), NULL) /* optional */ efl_event_callback_array_add(efl_added, output_cbs(), NULL) /* optional */
); );
if (!output) if (!output)
@ -718,7 +718,7 @@ efl_main(void *data EINA_UNUSED,
* When finished get the efl_io_buffer_slice_get(), see * When finished get the efl_io_buffer_slice_get(), see
* _copier_done(). * _copier_done().
*/ */
output = efl_add(EFL_IO_BUFFER_CLASS, ev->object, output = efl_add_ref(EFL_IO_BUFFER_CLASS, NULL,
efl_event_callback_array_add(efl_added, output_cbs(), NULL), /* optional */ efl_event_callback_array_add(efl_added, output_cbs(), NULL), /* optional */
efl_event_callback_array_add(efl_added, output_buffer_cbs(), NULL) /* optional */ efl_event_callback_array_add(efl_added, output_buffer_cbs(), NULL) /* optional */
); );
@ -938,7 +938,7 @@ efl_main(void *data EINA_UNUSED,
/* regular file, open with flags: write-only, close-on-exec, /* regular file, open with flags: write-only, close-on-exec,
* create if did not exist and truncate if exist. * create if did not exist and truncate if exist.
*/ */
output = efl_add(EFL_IO_FILE_CLASS, ev->object, output = efl_add_ref(EFL_IO_FILE_CLASS, NULL,
efl_file_set(efl_added, output_fname, NULL), /* mandatory */ efl_file_set(efl_added, output_fname, NULL), /* mandatory */
efl_io_file_flags_set(efl_added, O_WRONLY | O_CREAT | O_TRUNC), /* mandatory for write */ efl_io_file_flags_set(efl_added, O_WRONLY | O_CREAT | O_TRUNC), /* mandatory for write */
efl_io_closer_close_on_exec_set(efl_added, EINA_TRUE), /* recommended, set *after* flags, or include O_CLOEXEC in flags -- be careful with _WIN32 that doesn't support it. */ efl_io_closer_close_on_exec_set(efl_added, EINA_TRUE), /* recommended, set *after* flags, or include O_CLOEXEC in flags -- be careful with _WIN32 that doesn't support it. */

View File

@ -258,7 +258,7 @@ efl_main(void *data EINA_UNUSED,
* the line_delimiter, then wait for a reply from the server, then * the line_delimiter, then wait for a reply from the server, then
* write another. * write another.
*/ */
send_queue = efl_add(EFL_IO_QUEUE_CLASS, ev->object, send_queue = efl_add_ref(EFL_IO_QUEUE_CLASS, NULL,
efl_name_set(efl_added, "send_queue"), efl_name_set(efl_added, "send_queue"),
efl_io_queue_limit_set(efl_added, buffer_limit)); efl_io_queue_limit_set(efl_added, buffer_limit));
if (!send_queue) if (!send_queue)
@ -279,7 +279,7 @@ efl_main(void *data EINA_UNUSED,
* Our example's usage is to peek its data with slice_get() then * Our example's usage is to peek its data with slice_get() then
* clear(). * clear().
*/ */
receive_queue = efl_add(EFL_IO_QUEUE_CLASS, ev->object, receive_queue = efl_add_ref(EFL_IO_QUEUE_CLASS, NULL,
efl_name_set(efl_added, "receive_queue"), efl_name_set(efl_added, "receive_queue"),
efl_io_queue_limit_set(efl_added, buffer_limit), efl_io_queue_limit_set(efl_added, buffer_limit),
efl_event_callback_add(efl_added, EFL_IO_QUEUE_EVENT_SLICE_CHANGED, _receiver_data, NULL)); efl_event_callback_add(efl_added, EFL_IO_QUEUE_EVENT_SLICE_CHANGED, _receiver_data, NULL));
@ -359,9 +359,9 @@ efl_main(void *data EINA_UNUSED,
error_sender: error_sender:
efl_del(dialer); efl_del(dialer);
error_dialer: error_dialer:
efl_del(receive_queue); efl_unref(receive_queue);
error_receive_queue: error_receive_queue:
efl_del(send_queue); efl_unref(send_queue);
end: end:
EINA_LIST_FREE(commands, cmd) EINA_LIST_FREE(commands, cmd)
{ {

View File

@ -350,11 +350,11 @@ _server_client_add(void *data EINA_UNUSED, const Efl_Event *event)
return; return;
} }
send_buffer = efl_add(EFL_IO_BUFFER_CLASS, efl_main_loop_get(), send_buffer = efl_add_ref(EFL_IO_BUFFER_CLASS, NULL,
efl_io_buffer_adopt_readonly(efl_added, hello_world_slice)); efl_io_buffer_adopt_readonly(efl_added, hello_world_slice));
/* Unlimited buffer to store the received data. */ /* Unlimited buffer to store the received data. */
recv_buffer = efl_add(EFL_IO_BUFFER_CLASS, efl_main_loop_get()); recv_buffer = efl_add_ref(EFL_IO_BUFFER_CLASS, NULL);
/* an input copier that takes data from send_buffer and pushes to client */ /* an input copier that takes data from send_buffer and pushes to client */
d->send_copier = efl_add(EFL_IO_COPIER_CLASS, efl_parent_get(client), d->send_copier = efl_add(EFL_IO_COPIER_CLASS, efl_parent_get(client),
@ -712,7 +712,7 @@ efl_main(void *data EINA_UNUSED,
cipher = EFL_NET_SSL_CIPHER_TLSV1_2; cipher = EFL_NET_SSL_CIPHER_TLSV1_2;
} }
ssl_ctx = efl_add(EFL_NET_SSL_CONTEXT_CLASS, efl_main_loop_get(), ssl_ctx = efl_add_ref(EFL_NET_SSL_CONTEXT_CLASS, NULL,
efl_net_ssl_context_certificates_set(efl_added, eina_list_iterator_new(certificates)), efl_net_ssl_context_certificates_set(efl_added, eina_list_iterator_new(certificates)),
efl_net_ssl_context_private_keys_set(efl_added, eina_list_iterator_new(private_keys)), efl_net_ssl_context_private_keys_set(efl_added, eina_list_iterator_new(private_keys)),
efl_net_ssl_context_certificate_revocation_lists_set(efl_added, eina_list_iterator_new(crls)), efl_net_ssl_context_certificate_revocation_lists_set(efl_added, eina_list_iterator_new(crls)),

View File

@ -520,7 +520,7 @@ efl_main(void *data EINA_UNUSED,
cipher = EFL_NET_SSL_CIPHER_TLSV1_2; cipher = EFL_NET_SSL_CIPHER_TLSV1_2;
} }
ssl_ctx = efl_add(EFL_NET_SSL_CONTEXT_CLASS, ev->object, ssl_ctx = efl_add_ref(EFL_NET_SSL_CONTEXT_CLASS, NULL,
efl_net_ssl_context_certificates_set(efl_added, eina_list_iterator_new(certificates)), efl_net_ssl_context_certificates_set(efl_added, eina_list_iterator_new(certificates)),
efl_net_ssl_context_private_keys_set(efl_added, eina_list_iterator_new(private_keys)), efl_net_ssl_context_private_keys_set(efl_added, eina_list_iterator_new(private_keys)),
efl_net_ssl_context_certificate_revocation_lists_set(efl_added, eina_list_iterator_new(crls)), efl_net_ssl_context_certificate_revocation_lists_set(efl_added, eina_list_iterator_new(crls)),

View File

@ -311,7 +311,7 @@ efl_terminate(void *data EINA_UNUSED,
efl_del(dialer); efl_del(dialer);
dialer = NULL; dialer = NULL;
efl_del(ssl_ctx); efl_unref(ssl_ctx);
ssl_ctx = NULL; ssl_ctx = NULL;
EINA_LIST_FREE(pending_send, str) free(str); EINA_LIST_FREE(pending_send, str) free(str);
@ -456,7 +456,7 @@ efl_main(void *data EINA_UNUSED,
/* create a new SSL context with command line configurations. /* create a new SSL context with command line configurations.
* another option would be to use the default dialer context */ * another option would be to use the default dialer context */
#ifndef USE_DEFAULT_CONTEXT #ifndef USE_DEFAULT_CONTEXT
ssl_ctx = efl_add(EFL_NET_SSL_CONTEXT_CLASS, ev->object, ssl_ctx = efl_add_ref(EFL_NET_SSL_CONTEXT_CLASS, NULL,
efl_net_ssl_context_certificates_set(efl_added, eina_list_iterator_new(certificates)), efl_net_ssl_context_certificates_set(efl_added, eina_list_iterator_new(certificates)),
efl_net_ssl_context_private_keys_set(efl_added, eina_list_iterator_new(private_keys)), efl_net_ssl_context_private_keys_set(efl_added, eina_list_iterator_new(private_keys)),
efl_net_ssl_context_certificate_revocation_lists_set(efl_added, eina_list_iterator_new(crls)), efl_net_ssl_context_certificate_revocation_lists_set(efl_added, eina_list_iterator_new(crls)),
@ -528,7 +528,7 @@ efl_main(void *data EINA_UNUSED,
efl_io_closer_close(dialer); /* just del won't do as ssl has an extra ref */ efl_io_closer_close(dialer); /* just del won't do as ssl has an extra ref */
efl_del(dialer); efl_del(dialer);
no_ssl_ctx: no_ssl_ctx:
efl_del(ssl_ctx); efl_unref(ssl_ctx);
end: end:
EINA_LIST_FREE(pending_send, str) free(str); EINA_LIST_FREE(pending_send, str) free(str);

View File

@ -227,7 +227,7 @@ efl_terminate(void *data EINA_UNUSED,
efl_del(server); efl_del(server);
server = NULL; server = NULL;
efl_del(ssl_ctx); efl_unref(ssl_ctx);
ssl_ctx = NULL; ssl_ctx = NULL;
EINA_LIST_FREE(certificates, str) free(str); EINA_LIST_FREE(certificates, str) free(str);
@ -301,7 +301,7 @@ efl_main(void *data EINA_UNUSED,
cipher = EFL_NET_SSL_CIPHER_TLSV1_2; cipher = EFL_NET_SSL_CIPHER_TLSV1_2;
} }
ssl_ctx = efl_add(EFL_NET_SSL_CONTEXT_CLASS, ev->object, ssl_ctx = efl_add_ref(EFL_NET_SSL_CONTEXT_CLASS, NULL,
efl_net_ssl_context_certificates_set(efl_added, eina_list_iterator_new(certificates)), efl_net_ssl_context_certificates_set(efl_added, eina_list_iterator_new(certificates)),
efl_net_ssl_context_private_keys_set(efl_added, eina_list_iterator_new(private_keys)), efl_net_ssl_context_private_keys_set(efl_added, eina_list_iterator_new(private_keys)),
efl_net_ssl_context_certificate_revocation_lists_set(efl_added, eina_list_iterator_new(crls)), efl_net_ssl_context_certificate_revocation_lists_set(efl_added, eina_list_iterator_new(crls)),
@ -363,7 +363,7 @@ efl_main(void *data EINA_UNUSED,
efl_del(server); efl_del(server);
server = NULL; server = NULL;
end_ctx: end_ctx:
efl_del(ssl_ctx); efl_unref(ssl_ctx);
end: end:
EINA_LIST_FREE(certificates, str) free(str); EINA_LIST_FREE(certificates, str) free(str);

View File

@ -27,7 +27,7 @@ void
monitor_stuff(void *data) monitor_stuff(void *data)
{ {
const char *path = data; const char *path = data;
Eio_Sentry *sentry = efl_add(EIO_SENTRY_CLASS, efl_main_loop_get()); Eio_Sentry *sentry = efl_add_ref(EIO_SENTRY_CLASS, NULL);
efl_event_callback_add(sentry, EIO_SENTRY_EVENT_FILE_CREATED, (Efl_Event_Cb)&sentry_cb, NULL); efl_event_callback_add(sentry, EIO_SENTRY_EVENT_FILE_CREATED, (Efl_Event_Cb)&sentry_cb, NULL);
printf("Starting monitoring path %s\n", path); printf("Starting monitoring path %s\n", path);

View File

@ -15,8 +15,8 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev)
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
elm_app_info_set(efl_main, "elementary", "images/plant_01.jpg"); elm_app_info_set(efl_main, "elementary", "images/plant_01.jpg");
win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(), "TEST", ELM_WIN_BASIC, win = efl_add_ref(EFL_UI_WIN_CLASS, NULL, "TEST", ELM_WIN_BASIC,
efl_ui_win_autodel_set(efl_added, EINA_TRUE)); efl_ui_win_autodel_set(efl_added, EINA_TRUE));
efl_gfx_entity_size_set(win, EINA_SIZE2D(300, 400)); efl_gfx_entity_size_set(win, EINA_SIZE2D(300, 400));
scroller = efl_add(EFL_UI_SCROLLER_CLASS, win); scroller = efl_add(EFL_UI_SCROLLER_CLASS, win);

View File

@ -49,7 +49,7 @@ _make_model()
unsigned int i, s; unsigned int i, s;
char buf[256]; char buf[256];
model = efl_add(EFL_MODEL_ITEM_CLASS, efl_main_loop_get()); model = efl_add_ref(EFL_MODEL_ITEM_CLASS, NULL);
eina_value_setup(&vtext, EINA_VALUE_TYPE_STRING); eina_value_setup(&vtext, EINA_VALUE_TYPE_STRING);
for (i = 0; i < (NUM_ITEMS); i++) for (i = 0; i < (NUM_ITEMS); i++)

View File

@ -43,7 +43,7 @@ elm_main(int argc, char **argv)
if (argv[1] != NULL) dirname = argv[1]; if (argv[1] != NULL) dirname = argv[1];
else dirname = EFL_MODEL_TEST_FILENAME_PATH; else dirname = EFL_MODEL_TEST_FILENAME_PATH;
model = efl_add(EIO_MODEL_CLASS, efl_main_loop_get(), eio_model_path_set(efl_added, dirname)); model = efl_add_ref(EIO_MODEL_CLASS, NULL, eio_model_path_set(efl_added, dirname));
factory = efl_add(EFL_UI_LAYOUT_FACTORY_CLASS, win); factory = efl_add(EFL_UI_LAYOUT_FACTORY_CLASS, win);
efl_ui_model_connect(factory, "efl.text", "filename"); efl_ui_model_connect(factory, "efl.text", "filename");
efl_ui_layout_factory_theme_config(factory, "list_item", NULL, "default"); efl_ui_layout_factory_theme_config(factory, "list_item", NULL, "default");

View File

@ -173,7 +173,7 @@ _make_model()
Efl_Model_Item *model, *child; Efl_Model_Item *model, *child;
unsigned int i, len; unsigned int i, len;
model = efl_add(EFL_MODEL_ITEM_CLASS, efl_main_loop_get()); model = efl_add_ref(EFL_MODEL_ITEM_CLASS, NULL);
eina_value_setup(&vtext, EINA_VALUE_TYPE_STRING); eina_value_setup(&vtext, EINA_VALUE_TYPE_STRING);
eina_value_setup(&value, EINA_VALUE_TYPE_UCHAR); eina_value_setup(&value, EINA_VALUE_TYPE_UCHAR);

View File

@ -35,7 +35,6 @@ _cleanup_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
efl_unref(priv->fileview); efl_unref(priv->fileview);
efl_unref(priv->treeview); efl_unref(priv->treeview);
efl_unref(priv->formview); efl_unref(priv->formview);
efl_unref(priv->treemodel);
} }
static int static int
@ -125,12 +124,12 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
else dirname = EFL_MODEL_TEST_FILENAME_PATH; else dirname = EFL_MODEL_TEST_FILENAME_PATH;
//treemodel //treemodel
priv.treemodel = efl_add(EIO_MODEL_CLASS, efl_main_loop_get(), eio_model_path_set(efl_added, dirname)); priv.treemodel = efl_add(EIO_MODEL_CLASS, win, eio_model_path_set(efl_added, dirname));
eio_model_children_filter_set(priv.treemodel, NULL, _filter_cb, NULL); eio_model_children_filter_set(priv.treemodel, NULL, _filter_cb, NULL);
//treeview //treeview
genlist = elm_genlist_add(win); genlist = elm_genlist_add(win);
priv.treeview = efl_add(ELM_VIEW_LIST_CLASS, efl_main_loop_get(), elm_view_list_genlist_set(efl_added, genlist, ELM_GENLIST_ITEM_TREE, NULL)); priv.treeview = efl_add_ref(ELM_VIEW_LIST_CLASS, NULL, elm_view_list_genlist_set(efl_added, genlist, ELM_GENLIST_ITEM_TREE, NULL));
elm_view_list_property_connect(priv.treeview, "filename", "elm.text"); elm_view_list_property_connect(priv.treeview, "filename", "elm.text");
elm_view_list_property_connect(priv.treeview, "icon", "elm.swallow.icon"); elm_view_list_property_connect(priv.treeview, "icon", "elm.swallow.icon");
elm_view_list_model_set(priv.treeview, priv.treemodel); elm_view_list_model_set(priv.treeview, priv.treemodel);
@ -145,7 +144,7 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
//listview //listview
genlist = elm_genlist_add(win); genlist = elm_genlist_add(win);
priv.fileview = efl_add(ELM_VIEW_LIST_CLASS, efl_main_loop_get(), elm_view_list_genlist_set(efl_added, genlist, ELM_GENLIST_ITEM_NONE, "double_label")); priv.fileview = efl_add_ref(ELM_VIEW_LIST_CLASS, NULL, elm_view_list_genlist_set(efl_added, genlist, ELM_GENLIST_ITEM_NONE, "double_label"));
elm_view_list_property_connect(priv.fileview, "filename", "elm.text"); elm_view_list_property_connect(priv.fileview, "filename", "elm.text");
elm_view_list_property_connect(priv.fileview, "mime_type", "elm.text.sub"); elm_view_list_property_connect(priv.fileview, "mime_type", "elm.text.sub");
@ -159,7 +158,7 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
bxr = elm_box_add(win); bxr = elm_box_add(win);
_widget_init(bxr); _widget_init(bxr);
elm_object_part_content_set(vpanes, "right", bxr); elm_object_part_content_set(vpanes, "right", bxr);
priv.formview = efl_add(ELM_VIEW_FORM_CLASS, efl_main_loop_get()); priv.formview = efl_add_ref(ELM_VIEW_FORM_CLASS, NULL);
/*Label widget */ /*Label widget */
elm_view_form_widget_add(priv.formview, "filename", _label_init(win, bxr, "File Name")); elm_view_form_widget_add(priv.formview, "filename", _label_init(win, bxr, "File Name"));

View File

@ -54,8 +54,8 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(genlist); evas_object_show(genlist);
priv.filemodel = efl_add(EIO_MODEL_CLASS, efl_main_loop_get(), eio_model_path_set(efl_added, dirname)); priv.filemodel = efl_add_ref(EIO_MODEL_CLASS, NULL, eio_model_path_set(efl_added, dirname));
priv.fileview = efl_add(ELM_VIEW_LIST_CLASS, efl_main_loop_get(), elm_view_list_genlist_set(efl_added, genlist, ELM_GENLIST_ITEM_TREE, "double_label")); priv.fileview = efl_add_ref(ELM_VIEW_LIST_CLASS, NULL, elm_view_list_genlist_set(efl_added, genlist, ELM_GENLIST_ITEM_TREE, "double_label"));
elm_view_list_model_set(priv.fileview, priv.filemodel); elm_view_list_model_set(priv.fileview, priv.filemodel);
evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _cleanup_cb, &priv); evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _cleanup_cb, &priv);

View File

@ -111,10 +111,10 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
if (argv[1] != NULL) dirname = argv[1]; if (argv[1] != NULL) dirname = argv[1];
else dirname = EFL_MODEL_TEST_FILENAME_PATH; else dirname = EFL_MODEL_TEST_FILENAME_PATH;
priv->model = efl_add(EIO_MODEL_CLASS, efl_main_loop_get(), eio_model_path_set(efl_added, dirname)); priv->model = efl_add_ref(EIO_MODEL_CLASS, NULL, eio_model_path_set(efl_added, dirname));
genlist = elm_genlist_add(win); genlist = elm_genlist_add(win);
priv->fileview = efl_add(ELM_VIEW_LIST_CLASS, efl_main_loop_get(), elm_view_list_genlist_set(efl_added, genlist, ELM_GENLIST_ITEM_NONE, NULL)); priv->fileview = efl_add_ref(ELM_VIEW_LIST_CLASS, NULL, elm_view_list_genlist_set(efl_added, genlist, ELM_GENLIST_ITEM_NONE, NULL));
elm_view_list_property_connect(priv->fileview, "filename", "elm.text"); elm_view_list_property_connect(priv->fileview, "filename", "elm.text");
elm_view_list_model_set(priv->fileview, priv->model); elm_view_list_model_set(priv->fileview, priv->model);
_widget_init(genlist); _widget_init(genlist);