protected IRubyObject internalRotateBang(ThreadContext context, int cnt) { modify(); try { if(cnt != 0) { IRubyObject[] ptr = values; int len = realLength; if(len > 0 && (cnt = rotateCount(cnt, len)) > 0) { --len; if(cnt < len) aryReverse(ptr, begin + cnt, ptr, begin + len); if(--cnt > 0) aryReverse(ptr, begin, ptr, begin + cnt); if(len > 0) aryReverse(ptr, begin, ptr, begin + len); return this; } } } catch (ArrayIndexOutOfBoundsException ex) { throw concurrentModification(context.runtime, ex); } return context.nil; }
protected IRubyObject internalRotateBang(ThreadContext context, int cnt) { modify(); try { if(cnt != 0) { IRubyObject[] ptr = values; int len = realLength; if(len > 0 && (cnt = rotateCount(cnt, len)) > 0) { --len; if(cnt < len) aryReverse(ptr, begin + cnt, ptr, begin + len); if(--cnt > 0) aryReverse(ptr, begin, ptr, begin + cnt); if(len > 0) aryReverse(ptr, begin, ptr, begin + len); return this; } } } catch (ArrayIndexOutOfBoundsException ex) { throw concurrentModification(context.runtime, ex); } return context.nil; }
private IRubyObject internalRotateBang(ThreadContext context, int cnt) { modify(); try { if(cnt != 0) { IRubyObject[] ptr = values; int len = realLength; if(len > 0 && (cnt = rotateCount(cnt, len)) > 0) { --len; if(cnt < len) aryReverse(ptr, begin + cnt, ptr, begin + len); if(--cnt > 0) aryReverse(ptr, begin, ptr, begin + cnt); if(len > 0) aryReverse(ptr, begin, ptr, begin + len); return this; } } } catch (ArrayIndexOutOfBoundsException aioob) { concurrentModification(); } return context.runtime.getNil(); }
private IRubyObject internalRotateBang(ThreadContext context, int cnt) { modify(); try { if(cnt != 0) { IRubyObject[] ptr = values; int len = realLength; if(len > 0 && (cnt = rotateCount(cnt, len)) > 0) { --len; if(cnt < len) aryReverse(ptr, begin + cnt, ptr, begin + len); if(--cnt > 0) aryReverse(ptr, begin, ptr, begin + cnt); if(len > 0) aryReverse(ptr, begin, ptr, begin + len); return this; } } } catch (ArrayIndexOutOfBoundsException aioob) { concurrentModification(); } return context.runtime.getNil(); }