- for (watchlist::iterator q = watches.begin(); q != watches.end(); q++)
- {
- if (q->watcher == user)
- {
- irc::string n2 = q->target.c_str();
- userrec* a = Srv->FindNick(q->target);
- if (a)
- {
- WriteServ(user->fd,"602 %s %s %s %s %lu :stopped watching",user->nick,a->nick,a->ident,a->dhost,a->age);
- }
- else
- {
- WriteServ(user->fd,"602 %s %s * * 0 :stopped watching",user->nick,q->target.c_str());
- }
- if (n1 == n2)
- {
- watches.erase(q);
- break;
- }
+ for (watchlist::iterator q = watches.begin(); q != watches.end(); q++)
+ {
+ watchentry* b = (watchentry*)(*q);
+ if (b->watcher == user)
+ {
+ irc::string n2 = b->target.c_str();
+ userrec* a = ServerInstance->FindNick(b->target);
+ if (a)
+ {
+ user->WriteServ("602 %s %s %s %s %lu :stopped watching",user->nick,a->nick,a->ident,a->dhost,a->age);
+ }
+ else
+ {
+ user->WriteServ("602 %s %s * * 0 :stopped watching",user->nick,b->target.c_str());
+ }
+ if (n1 == n2)
+ {
+ watches.erase(q);
+ delete b;
+ break;
+ }