From 1e9b9b9a3e1efe07c5299e764e053364209709e9 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Fri, 3 Jul 2015 17:27:03 -0700 Subject: [PATCH] Base64: Fix a little differently. Change-Id: I394a1c99e1ecf87b4e236cf0aced5f9429364ace --- src/Base64.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/Base64.cpp b/src/Base64.cpp index b4bdbd962f..d97b7011a7 100644 --- a/src/Base64.cpp +++ b/src/Base64.cpp @@ -126,16 +126,15 @@ void Base64Encode(llvm::StringRef plain, std::string* encoded) { std::size_t len = plain.size(); encoded->reserve(((len + 2) / 3 * 4) + 1); - std::size_t i = 0; - if (len >= 2) - for (; i < len - 2; i += 3) { - (*encoded) += basis_64[(plain[i] >> 2) & 0x3F]; - (*encoded) += - basis_64[((plain[i] & 0x3) << 4) | ((int)(plain[i + 1] & 0xF0) >> 4)]; - (*encoded) += basis_64[((plain[i + 1] & 0xF) << 2) | - ((int)(plain[i + 2] & 0xC0) >> 6)]; - (*encoded) += basis_64[plain[i + 2] & 0x3F]; - } + std::size_t i; + for (i = 0; (i + 2) < len; i += 3) { + (*encoded) += basis_64[(plain[i] >> 2) & 0x3F]; + (*encoded) += + basis_64[((plain[i] & 0x3) << 4) | ((int)(plain[i + 1] & 0xF0) >> 4)]; + (*encoded) += basis_64[((plain[i + 1] & 0xF) << 2) | + ((int)(plain[i + 2] & 0xC0) >> 6)]; + (*encoded) += basis_64[plain[i + 2] & 0x3F]; + } if (i < len) { (*encoded) += basis_64[(plain[i] >> 2) & 0x3F]; if (i == (len - 1)) {