Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: rubinius/rubinius
base: 737fee60ab5d
Choose a base ref
...
head repository: rubinius/rubinius
compare: 3c7b6018dffa
Choose a head ref
  • 3 commits
  • 3 files changed
  • 1 contributor

Commits on Jun 9, 2015

  1. Copy the full SHA
    a8494c2 View commit details
    Browse the repository at this point in the history
  2. Added Bignum specs for unmarshaling 32-bit Bignums on 64-bit platforms

    When a 32-bit platform marshals a Bignum, that same number may be
    unmarshaled as a Fixnum on 64-bit platforms. We need to ensure that
    it still unmarshals correctly on 64-bit platforms.
    
    We ran into the following case:
    
      val = 1433868532 # a Bignum on 32-bit platforms, Fixnum on 64-bit
      arr = [val, val]
      Marshal.dump(arr)
    
    where `arr` was being dumped by a 32-bit platform, and loaded on
    a 64-bit platform, where it threw "dump format error (unlinked)"
    because a Bignum is not an ImmediateValue but a Fixnum is.
    Since `val` is a Fixnum on 64-bit machines, it was being counted
    as an ImmediateValue, and not being added to Marshal's @objects
    table when it should have been.
    sshao committed Jun 9, 2015
    Copy the full SHA
    12a8583 View commit details
    Browse the repository at this point in the history
  3. Copy the full SHA
    3c7b601 View commit details
    Browse the repository at this point in the history