summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2000-08-22 22:11:37 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2000-08-22 22:11:37 +0000
commit48cb8462303249406c69368db5aa5cf39cea1c3f (patch)
tree96aba33c0b0152ac52a7ffcdfb9fa116557efa64
parent08c6484b6bd0f8f70dac672862b10ffe7817ba9e (diff)
downloadirssi-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.c5
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);
}