more optimizations
This commit is contained in:
parent
6a371b988d
commit
9ece3ff393
1 changed files with 4 additions and 3 deletions
|
@ -82,9 +82,10 @@ module Net
|
||||||
# this can throw TypeErrors and other nasties.
|
# this can throw TypeErrors and other nasties.
|
||||||
#
|
#
|
||||||
def read_ber syntax=nil
|
def read_ber syntax=nil
|
||||||
return nil if eof?
|
# don't bother with this line, since IO#getc by definition returns nil on eof.
|
||||||
|
#return nil if eof?
|
||||||
|
|
||||||
id = getc # don't trash this value, we'll use it later
|
id = getc or return nil # don't trash this value, we'll use it later
|
||||||
tag = id & 31
|
tag = id & 31
|
||||||
tag < 31 or raise BerError.new( "unsupported tag encoding: #{id}" )
|
tag < 31 or raise BerError.new( "unsupported tag encoding: #{id}" )
|
||||||
tagclass = TagClasses[ id >> 6 ]
|
tagclass = TagClasses[ id >> 6 ]
|
||||||
|
@ -97,7 +98,7 @@ module Net
|
||||||
# Replaced the inject because it profiles hot.
|
# Replaced the inject because it profiles hot.
|
||||||
#j = (0...(n & 127)).inject(0) {|mem,x| mem = (mem << 8) + getc}
|
#j = (0...(n & 127)).inject(0) {|mem,x| mem = (mem << 8) + getc}
|
||||||
j = 0
|
j = 0
|
||||||
(n & 127).times {j = (j << 8) + getc}
|
read( n & 127 ).each_byte {|n1| j = (j << 8) + n1}
|
||||||
[1 + (n & 127), j]
|
[1 + (n & 127), j]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue