Re: [elinks-dev] dangling pointer crash in write_to_festival (was: witekfl branch status)

2007-03-07 Thread Witold Filipczyk
On Tue, Mar 06, 2007 at 11:33:44PM +0200, Kalle Olavi Niemitalo wrote:
 Witold Filipczyk [EMAIL PROTECTED] writes:
 
  This feature does not collide with screen readers.
  I just want to listen to ELinks sometimes.
 
 I tried applying the speech commits to master, but it crashes if,
 during the speech, I close the tab and thereby cause the struct
 document_view to be freed:
 
 (gdb) backtrace
 #0  0x08115569 in write_to_festival (fest=0x81938b8) at 
 /home/Kalle/src/elinks/src/viewer/text/festival.c:67
 #1  0x08115519 in read_from_festival (fest=0x81938b8) at 
 /home/Kalle/src/elinks/src/viewer/text/festival.c:45
 #2  0x080ca26b in select_loop (init=0x80c8e23 init) at 
 /home/Kalle/src/elinks/src/main/select.c:289
 #3  0x080c95af in main (argc=1, argv=0xbffc2444) at 
 /home/Kalle/src/elinks/src/main/main.c:365
 (gdb) frame
 #0  0x08115569 in write_to_festival (fest=0x81938b8) at 
 /home/Kalle/src/elinks/src/viewer/text/festival.c:67
 67  if (fest-line = doc-height)
 (gdb) print doc
 $3 = (struct document *) 0x8
 (gdb) list
 62  int len;
 63  struct document_view *doc_view = fest-doc_view;
 64  struct document *doc = doc_view-document;
 65  struct screen_char *data;
 66
 67  if (fest-line = doc-height)
 68  fest-running = 0;
 69  if (!fest-running)
 70  return;
 71
 
 This was with the following commits applied on top of
 f2fc4020934621afb9584a468bd87180059ee8c8 (in this order):
 
 4e93cbf496c82926f42c0eaf270920f126ace3f8
 9064e6323b493b5614a9bd02c25729ce2f1650bf
 f260691ac4f58e7ce0e282d7b48bddbae8f00828
 c187df9a0adcf0f9821d9b14b1dfcf43139d9bb3
 e965d07055f5dd3e046469232e4b3986fb60cbaf
 60fc3bd04fe3f85c66d1dadbc8ba4f56f576f611
 91be2ea6b89a7514b75fa31dcba6d9a5ef6c978c
 4d7c491a22c0b9a191df363504f52f8da1c639e1
 0da23da6b23d25ceb78f0229132d8efb9f3d3781
 
 I think, before the speech code is pushed to master, one should
 either
 
 - fix the bug.  A new document-view-delete event might be a
   clean way to do this.

I reset festival.doc_view in really_close_tab. Is it acceptable?

When a link is followed and the previous document was read out, the new document
is read out from the line number of the previous document.
How to handle this?

Witek
___
elinks-dev mailing list
elinks-dev@linuxfromscratch.org
http://linuxfromscratch.org/mailman/listinfo/elinks-dev


[elinks-dev] dangling pointer crash in write_to_festival (was: witekfl branch status)

2007-03-06 Thread Kalle Olavi Niemitalo
Witold Filipczyk [EMAIL PROTECTED] writes:

 This feature does not collide with screen readers.
 I just want to listen to ELinks sometimes.

I tried applying the speech commits to master, but it crashes if,
during the speech, I close the tab and thereby cause the struct
document_view to be freed:

(gdb) backtrace
#0  0x08115569 in write_to_festival (fest=0x81938b8) at 
/home/Kalle/src/elinks/src/viewer/text/festival.c:67
#1  0x08115519 in read_from_festival (fest=0x81938b8) at 
/home/Kalle/src/elinks/src/viewer/text/festival.c:45
#2  0x080ca26b in select_loop (init=0x80c8e23 init) at 
/home/Kalle/src/elinks/src/main/select.c:289
#3  0x080c95af in main (argc=1, argv=0xbffc2444) at 
/home/Kalle/src/elinks/src/main/main.c:365
(gdb) frame
#0  0x08115569 in write_to_festival (fest=0x81938b8) at 
/home/Kalle/src/elinks/src/viewer/text/festival.c:67
67  if (fest-line = doc-height)
(gdb) print doc
$3 = (struct document *) 0x8
(gdb) list
62  int len;
63  struct document_view *doc_view = fest-doc_view;
64  struct document *doc = doc_view-document;
65  struct screen_char *data;
66
67  if (fest-line = doc-height)
68  fest-running = 0;
69  if (!fest-running)
70  return;
71

This was with the following commits applied on top of
f2fc4020934621afb9584a468bd87180059ee8c8 (in this order):

4e93cbf496c82926f42c0eaf270920f126ace3f8
9064e6323b493b5614a9bd02c25729ce2f1650bf
f260691ac4f58e7ce0e282d7b48bddbae8f00828
c187df9a0adcf0f9821d9b14b1dfcf43139d9bb3
e965d07055f5dd3e046469232e4b3986fb60cbaf
60fc3bd04fe3f85c66d1dadbc8ba4f56f576f611
91be2ea6b89a7514b75fa31dcba6d9a5ef6c978c
4d7c491a22c0b9a191df363504f52f8da1c639e1
0da23da6b23d25ceb78f0229132d8efb9f3d3781

I think, before the speech code is pushed to master, one should
either

- fix the bug.  A new document-view-delete event might be a
  clean way to do this.

or

- enter the bug to bugzilla, mark the speech feature as
  experimental, and make it not be compiled in by default.

(If you want a GIT (witekfl) version in bugzilla, I can add it.)


pgp8eD8CEK37j.pgp
Description: PGP signature
___
elinks-dev mailing list
elinks-dev@linuxfromscratch.org
http://linuxfromscratch.org/mailman/listinfo/elinks-dev