# Code Review: RubyArrayPack

**URL:** <https://www.ruby-forum.com/t/code-review-rubyarraypack/138318>\
**Category:** IronRuby\
**Created:** [May 22, 2008, 12:16am UTC](https://www.ruby-forum.com/t/code-review-rubyarraypack/138318 "2008-05-22T00:16:20Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![curthibbs](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ac91a4/32.png) [@curthibbs](https://www.ruby-forum.com/u/curthibbs)\
**Post date:** [May 22, 2008, 12:16am UTC](https://www.ruby-forum.com/t/code-review-rubyarraypack/138318/1 "2008-05-22T00:16:20Z")

</div>

tfpt review /shelveset:RubyArrayPack;REDMOND\curth

Significant subset of Array.pack and String.unpack

---

<div class="post-metadata">

**Author:** ![curthibbs](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ac91a4/32.png) [@curthibbs](https://www.ruby-forum.com/u/curthibbs)\
**Post date:** [May 22, 2008, 12:25am UTC](https://www.ruby-forum.com/t/code-review-rubyarraypack/138318/2 "2008-05-22T00:25:43Z")

</div>

What is MRI behavior if I return a number that doesn’t fit in sbyte?

writer.Write((sbyte)Protocols.CastToFixnum(context, self[i + j]));

Does it silently overflow? If so, we should use unchecked() region.

Other than that looks good.

Tomas

---

<div class="post-metadata">

**Author:** ![curthibbs](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ac91a4/32.png) [@curthibbs](https://www.ruby-forum.com/u/curthibbs)\
**Post date:** [May 22, 2008, 12:28am UTC](https://www.ruby-forum.com/t/code-review-rubyarraypack/138318/3 "2008-05-22T00:28:40Z")

</div>

Is the “unchecked” just a formality under C#? It’s not currently  
throwing an exception.

IronRuby:

> > > [1000].pack(‘c’)  
> > > =\> “\350”

Matz:  
irb(main):012:0\> [1000].pack(‘c’)  
=\> “\350”

---

<div class="post-metadata">

**Author:** ![curthibbs](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ac91a4/32.png) [@curthibbs](https://www.ruby-forum.com/u/curthibbs)\
**Post date:** [May 22, 2008, 12:46am UTC](https://www.ruby-forum.com/t/code-review-rubyarraypack/138318/4 "2008-05-22T00:46:50Z")

</div>

More or less. But you can also compile with /checked option and then it  
wouldn’t work.  
It’s better to mark places where you expect the overflow, because you  
usually don’t expect it.

Tomas
