From 20521654143fd9881c4215ec43c14dc62c2a8c8f Mon Sep 17 00:00:00 2001 From: Olivier Poitrey Date: Mon, 29 Mar 2021 13:20:35 +0200 Subject: [PATCH] Avoid some useless allocs --- lib/netmask.coffee | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/netmask.coffee b/lib/netmask.coffee index a56ee8e..b872bd4 100644 --- a/lib/netmask.coffee +++ b/lib/netmask.coffee @@ -23,6 +23,13 @@ ip2long = (ip) -> b.unshift(0) return (b[0] << 24 | b[1] << 16 | b[2] << 8 | b[3]) >>> 0 +chr = (b) -> + return b.charCodeAt(0) + +chr0 = chr('0') +chra = chr('a') +chrA = chr('A') + atob = (s) -> n = 0 base = 10 @@ -37,15 +44,14 @@ atob = (s) -> base = 8 dmax = '7' start = i - chr = (b) -> return b.charCodeAt(0) while s.length > 0 if '0' <= s[i] and s[i] <= dmax - n = n*base + (chr(s[i])-chr('0')) + n = n*base + (chr(s[i])-chr0) else if base == 16 if 'a' <= s[i] and s[i] <= 'f' - n = n*base + (10+chr(s[i])-chr('a')) + n = n*base + (10+chr(s[i])-chra) else if 'A' <= s[i] and s[i] <= 'F' - n = n*base + (10+chr(s[i])-chr('A')) + n = n*base + (10+chr(s[i])-chrA) else break else