{\r
std::vector<unsigned char>::size_type currentdatapos=0;\r
\r
+ //reserve space for encoded data 4*input/3\r
+ encoded.reserve((4L*data.size())/3L);\r
while(currentdatapos<data.size())\r
{\r
encoded.push_back(base64chars[(data[currentdatapos]>>2 & 0x3F)]);\r
std::string::size_type encodedpos=0;\r
unsigned char currentbyte=0;\r
\r
+ // reserve space for decoded data (encoded size*3/4)\r
+ if(encoded.size()>1)\r
+ {\r
+ data.reserve((encoded.size()*3)/4);\r
+ }\r
+\r
// loop while encoded pos fits in current size\r
while(encodedpos+3<encoded.size())\r
{\r