Mercurial > pidgin.yaz
view plugins/crazychat/util.h @ 11734:2f6b4c544d5b
[gaim-migrate @ 14025]
Is there a reason these were done using a g_timeout? It was causing a
crash for me. To reproduce:
1. Sign on an IRC account on freenode with a nick that is registered
with nickserv
2. You are sent messages from 2 people: nickserv and I think memoserv
3. Without looking at the second tab, close the conversation window
From the bt, it looked like the window would get closed, then a g_timeout
would be called and passed a pointer to the now non-existant
GaimGtkWindow
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sun, 23 Oct 2005 02:41:51 +0000 |
parents | 8bcd4d4ccef6 |
children |
line wrap: on
line source
#ifndef __UTIL_H__ #define __UTIL_H__ #include <debug.h> #define SET_TIME(x) \ do { \ assert(!gettimeofday((x), NULL)); \ } while(0) #define SET_TIMEOUT(timespec, given_timeout) /* timeout is in ms */ \ do { \ struct timeval* curr = (struct timeval*)(timespec); \ unsigned int tout; \ if (given_timeout > 100) { \ tout = given_timeout; \ } else { \ tout = 100; \ } \ SET_TIME(curr); \ curr->tv_sec += (tout / 1000); \ curr->tv_usec /= 1000; /* set to ms */ \ curr->tv_usec += (tout % 1000); \ curr->tv_sec += (curr->tv_usec / 1000); \ curr->tv_usec = (curr->tv_usec % 1000); \ curr->tv_usec *= 1000000; \ } while (0) #endif /* -- gcc specific vararg macro support ... but its so nice! -- */ #ifdef _DEBUG_ #define Debug(x, args...) \ do { \ printf(x, ## args); \ gaim_debug(GAIM_DEBUG_INFO, "crazychat", x, ## args); \ } while (0) #else #define Debug(x, args...) do{}while(0) #endif