diff options
author | Timo Sirainen <cras@irssi.org> | 2000-08-22 22:11:37 +0000 |
---|---|---|
committer | cras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564> | 2000-08-22 22:11:37 +0000 |
commit | 48cb8462303249406c69368db5aa5cf39cea1c3f (patch) | |
tree | 96aba33c0b0152ac52a7ffcdfb9fa116557efa64 | |
parent | 08c6484b6bd0f8f70dac672862b10ffe7817ba9e (diff) | |
download | irssi-48cb8462303249406c69368db5aa5cf39cea1c3f.zip |
Unloading perl script crashed if it has used Irssi::timeout_add().
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@620 dbcabf3a-b0e7-0310-adc4-f8d773084564
-rw-r--r-- | src/perl/irssi-perl.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/perl/irssi-perl.c b/src/perl/irssi-perl.c index 158b4a8c..0b689c79 100644 --- a/src/perl/irssi-perl.c +++ b/src/perl/irssi-perl.c @@ -199,7 +199,7 @@ static int signal_destroy_hash(void *key, GSList **list, const char *package) static int perl_script_destroy(const char *name) { - GSList *tmp; + GSList *tmp, *next; char *package; int package_len; @@ -214,9 +214,10 @@ static int perl_script_destroy(const char *name) g_hash_table_foreach_remove(last_signals, (GHRFunc) signal_destroy_hash, package); - for (tmp = perl_timeouts; tmp != NULL; tmp = tmp->next) { + for (tmp = perl_timeouts; tmp != NULL; tmp = next) { PERL_TIMEOUT_REC *rec = tmp->data; + next = tmp->next; if (strncmp(rec->func, package, package_len) == 0) perl_timeout_destroy(rec); } |