1. 13 Jun, 2018 8 commits
  2. 12 Jun, 2018 4 commits
  3. 11 Jun, 2018 3 commits
    • Lucas Molas's avatar
      unixfs: integrate `pb.Data` into `FSNode` · 934b8b0d
      Lucas Molas authored
      To avoid duplicating fields and making the code easier to follow.
      
      Remove all of `FSNode` previous fields in favor on a single `pb.Data` structure
      that is not exported. Accessor methods are added only for the necessary internal
      fields. This takes up more memory, `pb.Data` is always created inside `FSNode`
      and it stays there instead of just being created and destroyed during the
      (un)marshal operations.
      
      The removed fields `Data`, `blocksizes` and `Type` had a direct counterpart in
      the embedded `pb.Data` structure, in contrast (only) the `subtotal` field
      doesn't have one, it was used as a temporary accumulator to track the
      `Filesize`, which is now being kept updated on every modification (to ensure the
      entire `FSNode` is always at a valid state), so `subtotal` could just be removed
      without the addition of any other field (this temporary accumulator  was
      obscuring how `Filesize` was computed).
      
      To keep `Filesize` up to date a method was added (`UpdateFilesize()`) to adjust
      its value in the two places where the file size could be modified, when changing
      its data (in `SetData()`, accessor method added) and when adding or removing
      child nodes (in `AddBlockSize()` and `RemoveBlockSize()`).
      
      A constructor method was added (`NewFSNode()`) to initialize the required
      fields, like `Type` which is explicitly set, this deprecates the previous
      methodology of just calling `new(FSNode)` and relying in the default value of
      `pb.Data_DataType` (`Data_Raw`) to avoid an explicit assignment. Also,
      `Filesize` is initialized to avoid being left with a `nil` value before
      marshaling empty nodes, which would result in a different hash from previous
      versions, to be backwards compatible. Previous versions of `GetBytes()` always
      set the `Filesize` value, even though it is reflected as an `optional` field in
      the `.proto` file (this may be an inaccurate field rule).
      
      Without the duplicated fields the functions `GetBytes()` and `FSNodeFromBytes()`
      are now reduced to simple `Marshal()` and `Unmarshal()` operations respectively.
      
      License: MIT
      Signed-off-by: default avatarLucas Molas <schomatis@gmail.com>
      934b8b0d
    • Whyrusleeping's avatar
      Merge pull request #5093 from ipfs/update/dist · c224ba1d
      Whyrusleeping authored
      Update dist_root
      c224ba1d
    • Whyrusleeping's avatar
      Merge pull request #5100 from ipfs/gx/update-stuff · 08fb11fa
      Whyrusleeping authored
      gx update go-log, sys, go-crypto
      08fb11fa
  4. 09 Jun, 2018 1 commit
  5. 08 Jun, 2018 1 commit
  6. 07 Jun, 2018 3 commits
  7. 06 Jun, 2018 4 commits
  8. 05 Jun, 2018 5 commits
  9. 04 Jun, 2018 1 commit
  10. 03 Jun, 2018 8 commits
  11. 02 Jun, 2018 2 commits