diff options
author | in2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2003-10-05 09:03:12 +0800 |
---|---|---|
committer | in2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2003-10-05 09:03:12 +0800 |
commit | 3eced116f16e16fdf08c65c189ac7b2c1cd83232 (patch) | |
tree | f1d89dd97ce9a78c9b7034cd1d0d88f66183ef84 /mbbsd/talk.c | |
parent | 2e0a596fcdfbb85c327cc2ede3648f10ef113d2b (diff) | |
download | pttbbs-3eced116f16e16fdf08c65c189ac7b2c1cd83232.tar pttbbs-3eced116f16e16fdf08c65c189ac7b2c1cd83232.tar.gz pttbbs-3eced116f16e16fdf08c65c189ac7b2c1cd83232.tar.bz2 pttbbs-3eced116f16e16fdf08c65c189ac7b2c1cd83232.tar.lz pttbbs-3eced116f16e16fdf08c65c189ac7b2c1cd83232.tar.xz pttbbs-3eced116f16e16fdf08c65c189ac7b2c1cd83232.tar.zst pttbbs-3eced116f16e16fdf08c65c189ac7b2c1cd83232.zip |
use bsearch in login_friend_online()
save cpu but increase SHM_t (sizeof(short) * MAX_ACTIVE) bytes
WARNING: SHM_t has been changed
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1212 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/talk.c')
-rw-r--r-- | mbbsd/talk.c | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/mbbsd/talk.c b/mbbsd/talk.c index a576fbf4..9633570d 100644 --- a/mbbsd/talk.c +++ b/mbbsd/talk.c @@ -155,33 +155,20 @@ modestring(userinfo_t * uentp, int simple) int set_friend_bit(userinfo_t * me, userinfo_t * ui) { - int unum, *myfriends, hit = 0, n; + int unum, *myfriends, hit = 0; /* 判斷對方是否為我的朋友 ? */ - unum = ui->uid; - myfriends = me->friend; - while ((n = *myfriends++)) { - if (unum == n) { - hit = IFH; - break; - } - } + if( intbsearch(ui->uid, me->friend, me->nFriends) ) + hit = IFH; /* 判斷我是否為對方的朋友 ? */ - myfriends = ui->friend; - while ((unum = *myfriends++)) { - if (unum == me->uid) { - hit |= HFM; - break; - } - } + if( intbsearch(me->uid, ui->friend, ui->nFriends) ) + hit |= HFM; /* 判斷對方是否為我的仇人 ? */ - - unum = ui->uid; myfriends = me->reject; - while ((n = *myfriends++)) { - if (unum == n) { + while ((unum = *myfriends++)) { + if (unum == ui->uid) { hit |= IRH; break; } |