From 4c19b81b4c652d5a6c5b47b9c081f476c0a52c91 Mon Sep 17 00:00:00 2001 From: in2 Date: Fri, 18 Feb 2005 16:03:49 +0000 Subject: in CRITICAL_MEMORY, alloc water[] when it's needed. save many memory for most users. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2521 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/mbbsd.c | 10 ++++++++++ mbbsd/var.c | 8 ++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'mbbsd') diff --git a/mbbsd/mbbsd.c b/mbbsd/mbbsd.c index 9fc9225f..262913f4 100644 --- a/mbbsd/mbbsd.c +++ b/mbbsd/mbbsd.c @@ -292,6 +292,14 @@ add_history(msgque_t * msg) { int i = 0, j, waterinit = 0; water_t *tmp; +#ifdef CRITICAL_MEMORY + if( !water ){ + water = (water_t*)malloc(sizeof(water_t) * 6); + memset(water, 0, sizeof(water_t) * 6); + water_which = &water[0]; + strlcpy(water[0].userid, " ¥þ³¡ ", sizeof(water[0].userid)); + } +#endif if (WATERMODE(WATER_ORIG) || WATERMODE(WATER_NEW)) add_history_water(&water[0], msg); if (WATERMODE(WATER_NEW) || WATERMODE(WATER_OFO)) { @@ -909,8 +917,10 @@ user_login() resolve_fcache(); /* resolve_boards(); */ numboards = SHM->Bnumber; +#ifndef CRITICAL_MEMORY memset(&water[0], 0, sizeof(water_t) * 6); strlcpy(water[0].userid, " ¥þ³¡ ", sizeof(water[0].userid)); +#endif if(getenv("SSH_CLIENT") != NULL){ char frombuf[50]; diff --git a/mbbsd/var.c b/mbbsd/var.c index dc00bd9f..1389fc6c 100644 --- a/mbbsd/var.c +++ b/mbbsd/var.c @@ -371,8 +371,8 @@ time4_t brc_list[BRC_MAXNUM]; /* read.c */ int TagNum; /* tag's number */ TagItem TagList[MAXTAGS]; /* ascending list */ -int TagBoard = -1; /* TagBoard = 0 : user's mailbox - TagBoard > 0 : bid where last taged*/ +int TagBoard = -1; /* TagBoard = 0 : user's mailbox */ + /* TagBoard > 0 : bid where last taged*/ char currdirect[64]; /* edit.c */ @@ -387,7 +387,11 @@ char local_article; char fromhost[STRLEN] = "\0"; char water_usies = 0; FILE *fp_writelog = NULL; +#ifdef CRITICAL_MEMORY +water_t *water, *swater[6], *water_which; +#else water_t water[6], *swater[6], *water_which = &water[0]; +#endif /* announce.c */ char trans_buffer[256]; -- cgit v1.2.3