# Interface: com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEStackManager

Element of an [IR context](com.pnfsoftware.jeb.core.units.code.asm.decompiler.IERoutineContext.md) providing support for creating local  [vars](com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar.md) representing stack variables.

## Abstract Method: canClearNativeStack
- parameter: `addressBegin`, type: `long`
- parameter: `addressEnd`, type: `long`
- return type: `boolean`


## Abstract Method: canCreateVariable
- parameter: `offset`, type: `long`
- parameter: `bitsize`, type: `int`
- return type: `boolean`


## Abstract Method: clearNativeStack
- parameter: `addressBegin`, type: `long`
- parameter: `addressEnd`, type: `long`


## Abstract Method: createPureStackItem
- parameter: `offset`, type: `long`
- parameter: `bitsize`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar`

Description: Create a pure [IEVar](com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar.md), regardless of a referenced native stack.
parameter: offset: 
parameter: bitsize: 
return: 

## Abstract Method: createStackItem
- parameter: `preferredOffset`, type: `long`
- parameter: `preferredBitsize`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar`

Description: Create a new stack variable. May return null, may be at different offset and/or with a  different size. The [IEVar](com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar.md) created may be larger than the actual hit size\!\! eg, native  item is int64, on a 32\-bit slot stack. A corresponding native stack item will be created.  This method may fail if existing native items conflict with the requested creation.
parameter: preferredOffset: relative stack offset in bytes
parameter: preferredBitsize: requested variable size in bits \- must be a multiple of 2
return: the [IEVar](com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar.md), null on error

## Abstract Method: getActualStackItemType
- parameter: `offset`, type: `long`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardType`

Description: 
parameter: offset: 
return: 

## Abstract Method: getHighestVariableOffset
- return type: `java.lang.Long`


## Abstract Method: getHighestVariableOffsetEnd
- return type: `java.lang.Long`


## Abstract Method: getLowestVariableOffset
- return type: `java.lang.Long`


## Abstract Method: getNormalSlotBitsize
- return type: `int`


## Abstract Method: getNormalSlotSize
- return type: `int`


## Abstract Method: getRoutineContext
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.IERoutineContext`


## Abstract Method: getVariable
- parameter: `offset`, type: `long`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar`


## Abstract Method: getVariableAtSlot
- parameter: `index`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar`


## Abstract Method: getVariables
- return type: `java.util.Collection<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar>`


## Abstract Method: hasVariables
- return type: `boolean`


## Abstract Method: removeVariable
- parameter: `var`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar`


## Abstract Method: removeVariable
- parameter: `offset`, type: `long`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar`


