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: pschraut/UnityHeapExplorer
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: KSPModdingLibs/UnityHeapExplorer
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: dev
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 11 commits
  • 82 files changed
  • 3 contributors

Commits on Jan 21, 2023

  1. Refactoring and fixing of HeapExplorer

    * Introduced the `Option<A>` type to represent values that might not be there.
      * Replaced values representing failure (like `-1`) with `Option` to indicate the possibility of failure.
    
    * Replaced possibly-invalid types with `Option`s. Now if you if have an instance - it's guaranteed to be valid.
    
    * Replaced magic values (like using positive integers for managed object indexes and negative integers for static object indexes) with proper semantic types to help with code clarity.
    
    * Replaced dangerous numeric casts that could under/overflow with typesafe alternatives (`PInt` positive 32bit integer type) that guarantee no such things can happen.
    
    * Replaced instances of `List` which were being used as stacks with `Stack`.
    
    * Replaced as many fields in objects as possible with readonly ones to indicate that we have no intent of changing them after the object is constructed. This is a part of 'objects should stay valid after construction' philosophy.
    
    * Added logging for potentially dangerous operations (like int -> uint).
    
    * Replaced primitive loop guards with cycle tracking that tracks seen objects. This eliminates the false positives and errors out sooner if we actually have an error.
    
    * Replaced places where things got cancelled silently with emitting warnings / errors. Failures should never be silent.
    
    * Fixed algorithm that checks if a type contains reference types: it didn't account for nested value-types which eventually have reference types in them and only looked for reference types in the first level.
    
    * Fixed bad lookups in `PackedCoreTypes`. Also made `PackedCoreTypes` to be fully initialized, without any missing entries.
    
    * Added a warning about the inability to crawl the `[ThreadStatic]` variables.
    
    * Improved search speed by:
      * caching search results.
      * downcasing everything before the search and then using fast ordinal string comparisons instead of slower `OrdinalIgnoreCase` comparisons.
    
    * Improved documentation by adding new docstrings and converting existing docstrings into proper XMLDocs. Now IDEs and tools can properly render the documentation.
    
    * Rewrote a part of code using C# 7.3 (supported since Unity 2019) to enhance readability.
    
    * bumped version to 4.1.2
    
    * Added capability to copy the root path as text in "Find GC roots" window.
    
    * Added information about source fields that are pointing to the object in "Find GC roots" window.
    
    * Added progress reporting to Unity when a memory snapshot is being converted from the Unity format to our format.
    arturaz committed Jan 21, 2023
    Configuration menu
    Copy the full SHA
    5f59252 View commit details
    Browse the repository at this point in the history

Commits on Jan 22, 2023

  1. Fix reading old data files

    The old data files contain fields serialized with `-1` offsets. We know these are invalid and should be skipped during reading.
    arturaz committed Jan 22, 2023
    Configuration menu
    Copy the full SHA
    53954da View commit details
    Browse the repository at this point in the history
  2. Fix tests compilation.

    arturaz committed Jan 22, 2023
    Configuration menu
    Copy the full SHA
    d96fbe1 View commit details
    Browse the repository at this point in the history
  3. Mark field as readonly.

    arturaz committed Jan 22, 2023
    Configuration menu
    Copy the full SHA
    4fecbdc View commit details
    Browse the repository at this point in the history

Commits on Feb 3, 2023

  1. Fixed an exception when taking a snapshot because arrayRank was bei…

    …ng read for non-array types.
    
    Now instead of having `bool isArray` and `PInt arrayRank` we have one field `Option<PInt> arrayRank` which makes sure we are not capable of representing the illegal state.
    arturaz committed Feb 3, 2023
    Configuration menu
    Copy the full SHA
    d063659 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    538b429 View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2023

  1. Configuration menu
    Copy the full SHA
    7bfb34f View commit details
    Browse the repository at this point in the history

Commits on Feb 20, 2023

  1. Fix for Unity 2022.2

    astro75 committed Feb 20, 2023
    Configuration menu
    Copy the full SHA
    9979cb7 View commit details
    Browse the repository at this point in the history

Commits on Feb 26, 2023

  1. Merge pull request #1 from astro75/unity-2022.2

    Fix for Unity 2022.2
    arturaz authored Feb 26, 2023
    Configuration menu
    Copy the full SHA
    892fe5a View commit details
    Browse the repository at this point in the history

Commits on Feb 28, 2023

  1. Fix compilation and tests for Unity 2019.

    Tested with Unity 2019.4.40f1.
    arturaz committed Feb 28, 2023
    Configuration menu
    Copy the full SHA
    c2be5a9 View commit details
    Browse the repository at this point in the history

Commits on Mar 17, 2024

  1. Merge pull request #1 from arturaz/refactor-and-fix

    From arturaz - Refactor and fix
    JonnyOThan authored Mar 17, 2024
    Configuration menu
    Copy the full SHA
    c844e73 View commit details
    Browse the repository at this point in the history
Loading