00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include "CoinHelperFunctions.hpp"
00011 #ifndef BonArraysHelpers_H
00012 #define BonArraysHelpers_H
00013
00014 namespace Bonmin {
00015 template <class X> void
00016 resizeAndCopyArray(X *& array, unsigned int oldSize, unsigned int newSize){
00017 if(newSize == 0){
00018 if(oldSize > 0){
00019 delete [] array;
00020 array = NULL;
00021 }
00022 return;
00023 }
00024 X * buffy = new X[newSize];
00025 if(oldSize > 0){
00026 if(oldSize < newSize)
00027 CoinCopyN(array, oldSize, buffy);
00028 else
00029 CoinCopyN(array, newSize, buffy);
00030 delete [] array;
00031 }
00032 array = buffy;
00033 }
00034
00035 template <class X> void
00036 resizeAndCopyArray(X *& array, unsigned int oldSize, unsigned int newSize,
00037 unsigned int& capacity){
00038 if(newSize > capacity){
00039 X * buffy = new X[newSize];
00040 if(oldSize > 0){
00041 CoinCopyN(array, oldSize, buffy);
00042 delete [] array;
00043 }
00044 array = buffy;
00045 }
00046 else {
00047 newSize = oldSize;
00048 }
00049 }
00050 }
00051 #endif
00052