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: d7999e9fa974
Choose a base ref
...
head repository: rubinius/rubinius
compare: 59c7334d0187
Choose a head ref
  • 2 commits
  • 2 files changed
  • 1 contributor

Commits on Jun 10, 2015

  1. 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 10, 2015
    Copy the full SHA
    9cdf5ad View commit details
    Browse the repository at this point in the history
  2. Copy the full SHA
    59c7334 View commit details
    Browse the repository at this point in the history