summaryrefslogtreecommitdiffstats
path: root/mbbsd/board.c
diff options
context:
space:
mode:
authorkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2007-05-27 22:08:24 +0800
committerkcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2007-05-27 22:08:24 +0800
commitcfeb386b61341ef5dd85a5320f5854e724e2bdf6 (patch)
tree7a935d79f8c788ca7696279b1a3aa1f519e551fd /mbbsd/board.c
parenta8ac9d593f193d06a2dff50bb91f81bfee6b9a94 (diff)
downloadpttbbs-cfeb386b61341ef5dd85a5320f5854e724e2bdf6.tar
pttbbs-cfeb386b61341ef5dd85a5320f5854e724e2bdf6.tar.gz
pttbbs-cfeb386b61341ef5dd85a5320f5854e724e2bdf6.tar.bz2
pttbbs-cfeb386b61341ef5dd85a5320f5854e724e2bdf6.tar.lz
pttbbs-cfeb386b61341ef5dd85a5320f5854e724e2bdf6.tar.xz
pttbbs-cfeb386b61341ef5dd85a5320f5854e724e2bdf6.tar.zst
pttbbs-cfeb386b61341ef5dd85a5320f5854e724e2bdf6.zip
* rewrite namecomplete2. Avoid small allocation, e.g. linked list,
since some allocator, e.g. dielibc, may not return memory to OS. This saves about 1gb memory for ptt. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3517 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/board.c')
-rw-r--r--mbbsd/board.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/mbbsd/board.c b/mbbsd/board.c
index bb23d3ba..8a228287 100644
--- a/mbbsd/board.c
+++ b/mbbsd/board.c
@@ -410,17 +410,18 @@ search_board(void)
{
int num;
char genbuf[IDLEN + 2];
+ struct NameList namelist;
+
move(0, 0);
clrtoeol();
- CreateNameList();
+ NameList_init(&namelist);
assert(brdnum<=nbrdsize);
for (num = 0; num < brdnum; num++)
if (!IS_LISTING_FAV() ||
(nbrd[num].myattr & NBRD_BOARD && HasBoardPerm(B_BH(&nbrd[num]))) )
- AddNameList(B_BH(&nbrd[num])->brdname);
- namecomplete(MSG_SELECT_BOARD, genbuf);
- FreeNameList();
- toplev = NULL;
+ NameList_add(&namelist, B_BH(&nbrd[num])->brdname);
+ namecomplete2(&namelist, MSG_SELECT_BOARD, genbuf);
+ NameList_delete(&namelist);
#ifdef DEBUG
vmsg(genbuf);