mirror of
https://github.com/anope/anope.git
synced 2026-07-08 17:43:13 +02:00
Fixed passing invalid channel pointer to OnPartChannel if the last user in a channel parted, now we use NULL and just give it the channel name
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2586 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
+4
-2
@@ -640,9 +640,11 @@ class CoreExport Module
|
||||
|
||||
/** Called when a user parts a channel
|
||||
* @param u The user
|
||||
* @param c The channel
|
||||
* @param c The channel, may be NULL if the channel no longer exists
|
||||
* @param channel The channel name
|
||||
* @param msg The part reason
|
||||
*/
|
||||
virtual void OnPartChannel(User *u, Channel *c, const std::string &msg) { }
|
||||
virtual void OnPartChannel(User *u, Channel *c, const std::string &channel, const std::string &msg) { }
|
||||
|
||||
/** Called before a user joins a channel
|
||||
* @param u The user
|
||||
|
||||
+3
-2
@@ -873,7 +873,7 @@ void do_join(const char *source, int ac, const char **av)
|
||||
channame = sstrdup(c->chan->name);
|
||||
FOREACH_MOD(I_OnPrePartChannel, OnPrePartChannel(user, c->chan));
|
||||
chan_deluser(user, c->chan);
|
||||
FOREACH_MOD(I_OnPartChannel, OnPartChannel(user, c->chan, ""));
|
||||
FOREACH_MOD(I_OnPartChannel, OnPartChannel(user, findchan(channame), channame, ""));
|
||||
delete [] channame;
|
||||
delete c;
|
||||
c = nextc;
|
||||
@@ -1017,10 +1017,11 @@ void do_part(const char *source, int ac, const char **av)
|
||||
return;
|
||||
}
|
||||
FOREACH_MOD(I_OnPrePartChannel, OnPrePartChannel(user, c->chan));
|
||||
std::string ChannelName = c->chan->name;
|
||||
|
||||
chan_deluser(user, c->chan);
|
||||
|
||||
FOREACH_MOD(I_OnPartChannel, OnPartChannel(user, c->chan, av[1] ? av[1] : ""));
|
||||
FOREACH_MOD(I_OnPartChannel, OnPartChannel(user, findchan(ChannelName.c_str()), ChannelName, av[1] ? av[1] : ""));
|
||||
|
||||
if (c->next)
|
||||
c->next->prev = c->prev;
|
||||
|
||||
Reference in New Issue
Block a user