Sorry. previous version is incomplete.
It's a more reliable patch.

On Tue, Jan 3, 2012 at 3:21 PM, Hyoyoung Chang <hyoyo...@gmail.com> wrote:
> Dear all,
>
> sometimes removing tag string in elm_entry, segfault is ocurring.
> it seems to fail at getting format txt. but i'm not sure about it.
> if this patch's correct, plz commit it.
> thanks.
>
> --- reproduce step ---
>
> 1. run elementary_test
> 2. entries -> entry
> 3. move the cursor to last char.
> 4. press delete key until segfault
>
> --- gdb backtrace ---
>
> Starting program: /usr/local/bin/elementary_test
> [Thread debugging using libthread_db enabled]
>
> Program received signal SIGSEGV, Segmentation fault.
> _evas_textblock_node_format_remove (o=0x8202a38, n=0x0, visible_adjustment=0)
>    at evas_object_textblock.c:6416
> 6416            nnode = _NODE_FORMAT(EINA_INLIST_GET(n)->next);
> (gdb) bt
> #0  _evas_textblock_node_format_remove (o=0x8202a38, n=0x0,
>    visible_adjustment=0) at evas_object_textblock.c:6416
> #1  0x00343574 in _evas_textblock_node_format_remove_matching (o=0x8202a38,
>    fmt=0x84ea198) at evas_object_textblock.c:6356
> #2  0x0034b5c3 in evas_textblock_cursor_char_delete (cur=0x84eb5c0)
>    at evas_object_textblock.c:7516
> #3  0x0043de9f in _delete_emit (ed=0x84a1d58, c=0x84eb5c0, pos=133,
>    backspace=1 '\001', en=<optimized out>) at edje_entry.c:1029
> #4  0x0047a709 in _delete_emit (backspace=1 '\001', pos=133, c=0x84eb5c0,
>    ed=0x84a1d58, en=<optimized out>) at edje_entry.c:1005
> #5  _edje_key_down_cb (data=0x84a1d58, e=0x8440468, obj=0xb73b39f0,
>    event_info=0xbffff068) at edje_entry.c:1215
> #6  0x00303cf7 in evas_object_event_callback_call (obj=0xb73b39f0,
>    type=EVAS_CALLBACK_KEY_DOWN, event_info=0xbffff068, event_id=152924)
>    at evas_callbacks.c:224
> #7  0x0030ce05 in evas_event_feed_key_down (e=0x8440468,
>    keyname=0x84f4e60 "BackSpace", key=0x84f4e6a "BackSpace",
>    string=0x84f4e74 "\b", compose=0x84f4e74 "\b", timestamp=92336243,
>    data=0x0) at evas_events.c:1340
> #8  0x00d3c5dd in _ecore_event_evas_key (e=0x84f4e38, press=ECORE_DOWN)
>    at ecore_input_evas.c:154
> ---Type <return> to continue, or q <return> to quit---
> #9  0x003fa6b4 in _ecore_call_handler_cb (event=<optimized out>,
>    type=<optimized out>, data=0x0, func=0xd3c5f0 <ecore_event_evas_key_down>)
>    at ecore_private.h:317
> #10 _ecore_event_call () at ecore_events.c:704
> #11 0x003ff1e5 in _ecore_main_loop_iterate_internal (once_only=0)
>    at ecore_main.c:1844
> #12 0x003ff70f in ecore_main_loop_begin () at ecore_main.c:887
> #13 0x001d7044 in elm_run () at elm_main.c:836
> #14 0x08055fef in elm_main (argc=1, argv=0xbffff294) at test.c:621
> #15 0x08054959 in main (argc=1, argv=0xbffff294) at test.c:630
Index: evas/src/lib/canvas/evas_object_textblock.c
===================================================================
--- evas/src/lib/canvas/evas_object_textblock.c (리비전 66779)
+++ evas/src/lib/canvas/evas_object_textblock.c (작업 사본)
@@ -6334,7 +6334,8 @@
              size_t fstr_len;
              fstr_len = strlen(fstr);
              /* Generic popper, just pop */
-             if (((fstr[0] == ' ') && !fstr[1]) || !fstr[0])
+             if (formats &&
+                 (((fstr[0] == ' ') && !fstr[1]) || !fstr[0]))
                {
                   fnode = eina_list_data_get(formats);
                   formats = eina_list_remove_list(formats, formats);
------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to