summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2019-03-27 11:25:28 -0400
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2019-03-28 09:50:42 +0100
commit12402328634feab06d0ff86ddbf5e9aa4e1f446b (patch)
tree0b84f71c795a8aef41a62c725199aba6e045aba6 /src/lib
parent9f1cd60aeba0d0a55fb5546c39888bc4afbfbfcf (diff)
downloadefl-12402328634feab06d0ff86ddbf5e9aa4e1f446b.tar.gz
elm_entry: CRI if efl_file methods are called directly on this object
eo methods should not be called on legacy objects Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D8487
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/elementary/elm_entry.c9
-rw-r--r--src/lib/elementary/elm_widget_entry.h1
2 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c
index 7acdf40a1c..e48a8c8ecb 100644
--- a/src/lib/elementary/elm_entry.c
+++ b/src/lib/elementary/elm_entry.c
@@ -4987,7 +4987,9 @@ elm_entry_file_set(Evas_Object *obj, const char *file, Elm_Text_Format format)
ELM_SAFE_FREE(sd->delay_write, ecore_timer_del);
if (sd->auto_save) _save_do(obj);
elm_obj_entry_file_text_format_set(obj, format);
+ sd->file_setting = EINA_TRUE;
ret = efl_file_simple_load(obj, file, NULL);
+ sd->file_setting = EINA_FALSE;
return ret;
}
@@ -4999,10 +5001,13 @@ _elm_entry_efl_file_unload(Eo *obj, Elm_Entry_Data *sd EINA_UNUSED)
}
EOLIAN static Eina_Error
-_elm_entry_efl_file_load(Eo *obj, Elm_Entry_Data *sd EINA_UNUSED)
+_elm_entry_efl_file_load(Eo *obj, Elm_Entry_Data *sd)
{
Eina_Error err;
+ if (!sd->file_setting)
+ CRI("EO methods should not be used directly on legacy objects!");
+
if (efl_file_loaded_get(obj)) return 0;
err = efl_file_load(efl_super(obj, MY_CLASS));
if (err) return err;
@@ -5012,6 +5017,8 @@ _elm_entry_efl_file_load(Eo *obj, Elm_Entry_Data *sd EINA_UNUSED)
EOLIAN static Eina_Error
_elm_entry_efl_file_file_set(Eo *obj, Elm_Entry_Data *sd, const char *file)
{
+ if (!sd->file_setting)
+ CRI("EO methods should not be used directly on legacy objects!");
eina_stringshare_replace(&sd->file, file);
return efl_file_set(efl_super(obj, MY_CLASS), file);
}
diff --git a/src/lib/elementary/elm_widget_entry.h b/src/lib/elementary/elm_widget_entry.h
index 0ac48282b4..db1ea7b442 100644
--- a/src/lib/elementary/elm_widget_entry.h
+++ b/src/lib/elementary/elm_widget_entry.h
@@ -116,6 +116,7 @@ struct _Elm_Entry_Data
Eina_Bool changed : 1;
Eina_Bool scroll : 1;
Eina_Bool input_panel_show_on_demand : 1;
+ Eina_Bool file_setting : 1;
};
typedef struct _Elm_Entry_Item_Provider Elm_Entry_Item_Provider;