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
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 737fee60ab5d
Choose a base ref
...
head repository: rubinius/rubinius
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
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
  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
  3. Copy the full SHA
    3c7b601 View commit details
Loading