Package org.spongepowered.asm.util

## Class Locals.Settings

- java.lang.Object
- - org.spongepowered.asm.util.Locals.Settings

- Enclosing class:
    Locals

      public static class Locals.Settings
      extends java.lang.Object

  Settings for `getLocalsAt` containing the tunable options for the algorithm. This exists for two purposes: Firstly, wrapping tunables up in a single object for convenience, but secondly providing some level of forward compatibility for platforms that which to provide backward compatibility to their own consumers. The `flagsCustom` field is* provided as a way of encoding arbitrary options that downstream projects may wish to use to tune their own implementations. The `flags` field is reserved for mixin internal flags to be added at a later date.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static Locals.Settings` | `DEFAULT` | Default settings.
    `static int` | `DEFAULT_FLAGS` | Default flags
    `static int` | `RESURRECT_EXPOSED_ON_LOAD` | When a LOAD grows the frame, resurrect any zombies in the exposed portion of the frame, based on the thresholds configured.
    `static int` | `RESURRECT_EXPOSED_ON_STORE` | When a STORE grows the frame, resurrect any zombies in the exposed portion of the frame, based on the thresholds configured.
    `static int` | `RESURRECT_FOR_BOGUS_TOP` | When an incoming frame contains TOP entries, these are nearly always bogus.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Settings​(int flags, int flagsCustom, int insnThreshold, int frameThreshold)` |
    `Settings​(int flags, int flagsCustom, int choppedInsnThreshold, int choppedFrameThreshold, int trimmedInsnThreshold, int trimmedFrameThreshold)` |

  - ### Method Summary

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### RESURRECT_FOR_BOGUS_TOP

          public static int RESURRECT_FOR_BOGUS_TOP

      When an incoming frame contains TOP entries, these are nearly always bogus. If we previously knew the local in that slot, resurrect it. Only resurrects TRIM zombies.

    - #### RESURRECT_EXPOSED_ON_LOAD

          public static int RESURRECT_EXPOSED_ON_LOAD

      When a LOAD grows the frame, resurrect any zombies in the exposed portion of the frame, based on the thresholds configured.

    - #### RESURRECT_EXPOSED_ON_STORE

          public static int RESURRECT_EXPOSED_ON_STORE

      When a STORE grows the frame, resurrect any zombies in the exposed portion of the frame, based on the thresholds configured.

    - #### DEFAULT_FLAGS

          public static int DEFAULT_FLAGS

      Default flags

    - #### DEFAULT

          public static Locals.Settings DEFAULT

      Default settings. CHOP zombies can be resurrected for 1 frame, TRIM zombies can be resurrected forever

  - ### Constructor Detail

    - #### Settings

          public Settings​(int flags,
                          int flagsCustom,
                          int insnThreshold,
                          int frameThreshold)

      Parameters:
        `flags` - Mixin flags
        `flagsCustom` - Platform-specific flags
        `insnThreshold` - Number of instructions that a local (regardless of death reason) is eligible for resurrection, -1 to ignore, 0 for none
        `frameThreshold` - Number of frames that a local (regardless of death reason) is eligible for resurrection,-1 to ignore, 0 for none

    - #### Settings

          public Settings​(int flags,
                          int flagsCustom,
                          int choppedInsnThreshold,
                          int choppedFrameThreshold,
                          int trimmedInsnThreshold,
                          int trimmedFrameThreshold)

      Parameters:
        `flags` - Mixin flags
        `flagsCustom` - Platform-specific flags
        `choppedInsnThreshold` - Number of instructions that a CHOPped local is eligible for resurrection, -1 to ignore, 0 for none
        `choppedFrameThreshold` - Number of frames that a CHOPped local is eligible for resurrection,-1 to ignore, 0 for none
        `trimmedInsnThreshold` - Number of instructions that a TRIMmed# local is eligible for resurrection, -1 to ignore, 0 for none
        `trimmedFrameThreshold` - Number of frames that a TRIMmed local is eligible for resurrection, -1 to ignore, 0 for none