OK, Carsten, please help to check my code flow, Is there anything wrong? Please 
advise, thanks.


在 2019-11-29 05:16:23,"Carsten Haitzler" <[email protected]> 写道:
>On Thu, 28 Nov 2019 20:14:53 +0800 (CST) Jing  <[email protected]> said:
>
>> Thanks Carsten,
>> 
>> 
>> I did not find edje_object_del(), did you mean evas_object_del()?
>
>sorry - my typo. evas_object_del();
>
>> Here is my code flow:
>> //enter:
>> obj = edje_object_add(evas)
>> edje_object_file_set(obj, file , grup)
>> evas_object_show(obj )
>> evas_object_move()
>> evas_object_resize()
>> evas_object_focus_set()
>> evas_object_layer_set()
>> //exit:
>> evas_object_hide(obj)
>> evas_object_del(obj)
>> Is there anything wrong? Please advise, thanks.
>> 
>> At 2019-11-28 17:21:38, "Carsten Haitzler (The Rasterman)"
>> <[email protected]> wrote:
>> >On Thu, 28 Nov 2019 15:43:17 +0800 (CST) Jing  <[email protected]> said:
>> >
>> >> Thanks Hermet for you reply.
>> >> 
>> >> 
>> >> In my test, i find that if i call function 
>> >> edje_object_file_set(Edje_Object
>> >> *obj, const char *file, const char *group), even i call
>> >> evas_object_del(Edje_Object *obj); to delete the obj, the memory of my
>> >> program will keep growing, if i am not use edje_object_file_set() then 
>> >> this
>> >> issue will not exists.  Is there a way to free the memory of
>> >> edje_object_file_set() ? Please advise, thanks.
>> >
>> >Memory will be freed... is it possible you are not getting any rendering
>> >happening? e.g. if you do something like:
>> >
>> >for (i = 0; i < 100000; i++) {
>> >  o = edje_object_add(evas);
>> >  edje_object_del(o);
>> >}
>> >
>> >your memory will keep growing ad the objects will be queued for deletion
>> >after 2 more renders. you would need the main loop to go idle *AND* for
>> >there to be visible changes in the canvas needing rendering.
>> >evas_norender(evas); exists for these cases where you do a loop where you
>> >add/del objects and never show them or have them rendered (and just use the
>> >canvas as a workbench). this forces a "no rendering" render cycle that will
>> >clean up queued objects.
>> >
>> >it's exceedingly rare to do the above without having your canvas go through
>> >some rendering at some point.
>> >
>> >also edje will QUEUE signals and process them in idle time. if there is 
>> >never
>> >any idle time in the ecore mainloop then the signals will just queue up and
>> >not be processed. setting a file will produce some signals already (like
>> >"load" "").
>> >
>> >> At 2019-11-26 12:24:45, "Hermet Park" <[email protected]> wrote:
>> >> >Once object is deleted, the subsequent memory belonging to the object 
>> >> >will
>> >> >be removed as well.
>> >> >You don't need to care about it. Callbacks neither.
>> >> >
>> >> >On Mon, Nov 25, 2019 at 9:12 PM Jing <[email protected]> wrote:
>> >> >
>> >> >> Hi all,
>> >> >> I have some memory free questions when using below two functions:
>> >> >>
>> >> >>
>> >> >> 1.  EAPI Eina_Bool edje_object_file_set(Evas_Object *obj, const char
>> >> >> *file, const char *group);
>> >> >> ---  After this function done,  i will call  evas_object_del (obj) to
>> >> >> delete the obj,  anything else that i need to free ?  For example, the
>> >> >> edj file used in this funciton?
>> >> >>
>> >> >>
>> >> >> 2.  evas_object_event_callback_add(Evas_Object *eo_obj,
>> >> >> Evas_Callback_Type type, Evas_Object_Event_Cb func, const void *data)
>> >> >> ---- After this function done,  i will call  evas_object_del (obj) to
>> >> >> delete the obj,   the callback will be auto deleted after
>> >> >> evas_object_del or  i have to use
>> >> >> evas_object_event_callback_del(Evas_Object *eo_obj, Evas_Callback_Type
>> >> >> type, Evas_Object_Event_Cb func) to delete ?
>> >> >>
>> >> >>
>> >> >> Thanks.
>> >> >>
>> >> >>
>> >> >> _______________________________________________
>> >> >> enlightenment-devel mailing list
>> >> >> [email protected]
>> >> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>> >> >>
>> >> >
>> >> >
>> >> >-- 
>> >> >Regards, Hermet
>> >> >
>> >> >_______________________________________________
>> >> >enlightenment-devel mailing list
>> >> >[email protected]
>> >> >https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>> >> 
>> >> _______________________________________________
>> >> enlightenment-devel mailing list
>> >> [email protected]
>> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>> >> 
>> >
>> >
>> >-- 
>> >------------- Codito, ergo sum - "I code, therefore I am" --------------
>> >Carsten Haitzler - [email protected]
>> 
>> _______________________________________________
>> enlightenment-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
>
>-- 
>------------- Codito, ergo sum - "I code, therefore I am" --------------
>Carsten Haitzler - [email protected]

_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to