diff --git a/ext/jruby/org/jruby/ext/strscan/RubyStringScanner.java b/ext/jruby/org/jruby/ext/strscan/RubyStringScanner.java index df08af63ce..07bb1fa2a4 100644 --- a/ext/jruby/org/jruby/ext/strscan/RubyStringScanner.java +++ b/ext/jruby/org/jruby/ext/strscan/RubyStringScanner.java @@ -513,26 +513,27 @@ public IRubyObject scan_byte(ThreadContext context) { Ruby runtime = context.runtime; check(context); clearMatched(); - if (curr >= str.getByteList().getRealSize()) return context.nil; - - byte[] bytes = str.getBytes(); + ByteList byteList = str.getByteList(); + int curr = this.curr; + if (curr >= byteList.getRealSize()) return context.nil; - byte bite = bytes[curr]; + int bite = byteList.get(curr); prev = curr; - curr++; + this.curr++; setMatched(); adjustRegisters(); - return RubyFixnum.newFixnum(context.runtime, bite & 0xff); + return RubyFixnum.newFixnum(runtime, bite); } @JRubyMethod(name = "peek_byte") public IRubyObject peek_byte(ThreadContext context) { - Ruby runtime = context.runtime; check(context); - if (curr >= str.getByteList().getRealSize()) return context.nil; + ByteList byteList = str.getByteList(); + int curr = this.curr; + if (curr >= byteList.getRealSize()) return context.nil; - return RubyFixnum.newFixnum(context.runtime, (str.getBytes()[curr]) & 0xff); + return RubyFixnum.newFixnum(context.runtime, byteList.get(curr)); } @JRubyMethod(name = "peek")