// // aegis - project change supervisor // Copyright (C) 2007, 2008 Peter Miller // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see // . // #include // // If this was a list then the global destructor could // clean up after us, reducing memory leak reports from valgrind.. // size_t user_ty::pool_nusers_max; size_t user_ty::pool_nusers; user_ty::pointer *user_ty::pool_user; user_ty::pointer user_ty::pool_find(int uid) { for (size_t j = 0; j < pool_nusers; ++j) { user_ty::pointer up = pool_user[j]; if (up->get_uid() == uid) return up; } return user_ty::pointer(); } void user_ty::pool_add(user_ty::pointer up) { if (pool_nusers >= pool_nusers_max) { pool_nusers_max = pool_nusers_max * 2 + 4; user_ty::pointer *new_user = new user_ty::pointer [pool_nusers_max]; for (size_t k = 0; k < pool_nusers; ++k) new_user[k] = pool_user[k]; delete [] pool_user; pool_user = new_user; } pool_user[pool_nusers++] = up; }