nis-util  1.0.D108
lib/rcstring/accumulator/grow.cc
Go to the documentation of this file.
00001 //
00002 // nis-util - NIS Administration Utilities
00003 // Copyright (C) 2012 Peter Miller
00004 //
00005 // This program is free software; you can redistribute it and/or modify
00006 // it under the terms of the GNU General Public License as published by
00007 // the Free Software Foundation; either version 2 of the License, or (at
00008 // your option) any later version.
00009 //
00010 // This program is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 // General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU General Public License along
00016 // with this program. If not, see <http://www.gnu.org/licenses/>.
00017 //
00018 
00019 #include <lib/ac/string.h>
00020 
00021 #include <lib/rcstring/accumulator.h>
00022 
00023 
00024 void
00025 rcstring_accumulator::grow(size_t this_big)
00026 {
00027     if (data_size < this_big)
00028     {
00029         size_t new_data_alloc = data_size ? data_size : 16;
00030         while (new_data_alloc < this_big)
00031             new_data_alloc *= 2;
00032         char *new_data = new char [new_data_alloc];
00033         memcpy(new_data, data, data_size);
00034         delete [] data;
00035         data = new_data;
00036         data_alloc = new_data_alloc;
00037     }
00038 }
00039 
00040 
00041 // vim: set ts=8 sw=4 et :