src: change macro to fn

Change base64_encoded_size and unbase64 to inline functions. The
base64_encoded_size is a constexpr to be used in function declarations.

PR-URL: https://github.com/nodejs/node/pull/23603
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
This commit is contained in:
Gino Notto 2018-10-12 11:34:32 -07:00 committed by Ruben Bridgewater
parent febb7656e3
commit 17c35a6297
No known key found for this signature in database
GPG Key ID: F07496B3EB3C1762

View File

@ -10,8 +10,9 @@
namespace node { namespace node {
//// Base 64 //// //// Base 64 ////
#define base64_encoded_size(size) ((size + 2 - ((size + 2) % 3)) / 3 * 4) static inline constexpr size_t base64_encoded_size(size_t size) {
return ((size + 2 - ((size + 2) % 3)) / 3 * 4);
}
// Doesn't check for padding at the end. Can be 1-2 bytes over. // Doesn't check for padding at the end. Can be 1-2 bytes over.
static inline size_t base64_decoded_size_fast(size_t size) { static inline size_t base64_decoded_size_fast(size_t size) {
@ -48,8 +49,9 @@ size_t base64_decoded_size(const TypeName* src, size_t size) {
extern const int8_t unbase64_table[256]; extern const int8_t unbase64_table[256];
#define unbase64(x) \ inline static int8_t unbase64(uint8_t x) {
static_cast<uint8_t>(unbase64_table[static_cast<uint8_t>(x)]) return unbase64_table[x];
}
template <typename TypeName> template <typename TypeName>