diff options
author | in2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-03-10 21:18:07 +0800 |
---|---|---|
committer | in2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-03-10 21:18:07 +0800 |
commit | b9d50d84ccc8c070c7e38f2a9dcd1f3bb5641df5 (patch) | |
tree | e8272b4de36a873e61c40473f3b7c7a077b0500d /mbbsd/board.c | |
parent | f63fd767f682e9eb4d5a2ca37c5884e4a5441b12 (diff) | |
download | pttbbs-b9d50d84ccc8c070c7e38f2a9dcd1f3bb5641df5.tar pttbbs-b9d50d84ccc8c070c7e38f2a9dcd1f3bb5641df5.tar.gz pttbbs-b9d50d84ccc8c070c7e38f2a9dcd1f3bb5641df5.tar.bz2 pttbbs-b9d50d84ccc8c070c7e38f2a9dcd1f3bb5641df5.tar.lz pttbbs-b9d50d84ccc8c070c7e38f2a9dcd1f3bb5641df5.tar.xz pttbbs-b9d50d84ccc8c070c7e38f2a9dcd1f3bb5641df5.tar.zst pttbbs-b9d50d84ccc8c070c7e38f2a9dcd1f3bb5641df5.zip |
HOTBOARDCACHE
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1584 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/board.c')
-rw-r--r-- | mbbsd/board.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/mbbsd/board.c b/mbbsd/board.c index 9821edc5..3a47b0ed 100644 --- a/mbbsd/board.c +++ b/mbbsd/board.c @@ -543,6 +543,14 @@ load_boards(char *key) byMALLOC = 0; needREALLOC = (get_data_number(fav) != brdnum); } +#if HOTBOARDCACHE + else if( class_bid == -1 ){ + nbrd = (boardstat_t *)malloc(sizeof(boardstat_t) * SHM->nHOTs); + for( i = 0 ; i < SHM->nHOTs ; ++i ) + addnewbrdstat(SHM->HBcache[i] - SHM->bcache, + Ben_Perm(SHM->HBcache[i])); + } +#endif else { // general case nbrd = (boardstat_t *) MALLOC(sizeof(boardstat_t) * numboards); for (i = 0; i < numboards; i++) { @@ -550,10 +558,13 @@ load_boards(char *key) continue; n = (int)(bptr - bcache); if (!bptr->brdname[0] || - (bptr->brdattr & BRD_GROUPBOARD) || - !((state = Ben_Perm(bptr)) || (currmode & MODE_MENU)) || - (key[0] && !strcasestr(bptr->title, key)) || - (class_bid == -1 && bptr->nuser < 5)) + (bptr->brdattr & BRD_GROUPBOARD) || + !((state = Ben_Perm(bptr)) || (currmode & MODE_MENU)) || + (key[0] && !strcasestr(bptr->title, key)) +#ifndef HOTBOARDCACHE + || (class_bid == -1 && bptr->nuser < 5) +#endif + ) continue; addnewbrdstat(n, state); } @@ -564,9 +575,10 @@ load_boards(char *key) #endif needREALLOC = 1; } +#ifndef HOTBOARDCACHE if (class_bid == -1) qsort(nbrd, brdnum, sizeof(boardstat_t), cmpboardfriends); - +#endif } else { /* load boards of a subclass */ int childcount = bptr->childcount; nbrd = (boardstat_t *) malloc(childcount * sizeof(boardstat_t)); |