[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[fluid-dev] fluidsyth-1.0.3 stack overflow fix
From: |
S.Pavlishin |
Subject: |
[fluid-dev] fluidsyth-1.0.3 stack overflow fix |
Date: |
Tue, 26 Aug 2003 17:36:24 +0700 |
Hello.
This is the patch to fix stack overflow when close application.
---
Index: src/fluid_midi.c
===================================================================
RCS file: /cvsroot/fluid/fluidsynth/src/fluid_midi.c,v
retrieving revision 1.2
diff -u -r1.2 fluid_midi.c
--- src/fluid_midi.c 3 Apr 2003 21:32:56 -0000 1.2
+++ src/fluid_midi.c 26 Aug 2003 10:31:38 -0000
@@ -681,12 +681,13 @@
/*
* delete_fluid_midi_event
+ *
+ * XXX do not use recursion to delete linked list
+ * because it causes stack overflow
+ *
*/
int delete_fluid_midi_event(fluid_midi_event_t* evt)
{
- if (evt->next != NULL) {
- delete_fluid_midi_event(evt->next);
- }
FLUID_FREE(evt);
return FLUID_OK;
}
@@ -881,9 +882,17 @@
if (track->name != NULL) {
FLUID_FREE(track->name);
}
- if (track->first != NULL) {
- delete_fluid_midi_event(track->first);
+
+ /*
+ * clear single-linked list
+ */
+ while(track->first != NULL) {
+ fluid_midi_event_t *event = track->first;
+ track->first = event->next;
+
+ delete_fluid_midi_event(event);
}
+
FLUID_FREE(track);
return FLUID_OK;
}
---
Regards,
Sergey Pavlishin.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [fluid-dev] fluidsyth-1.0.3 stack overflow fix,
S.Pavlishin <=