# Interface: com.pnfsoftware.jeb.core.units.code.asm.decompiler.INativeObjectTracker

Tracker for native underlying objects used by the decompiler or referenced by decompiled items. When underlying native objects change, current decompilations may be invalidated \(they become "stale"\).

## Method: acquire
- parameter: `item`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeItem`
- parameter: `userctx`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`


## Method: getCandidatePrototype
- parameter: `routine`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardPrototype`


## Method: getCountOfObjects
- return type: `int`


## Method: getNativeItemFromVar
- parameter: `var`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeItem`


## Method: getSymbolForNativeItem
- parameter: `item`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeItem`
- parameter: `userctx`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`
- parameter: `ectx`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.IERoutineContext`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEVar`


## Method: release
- parameter: `item`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeItem`
- parameter: `userctx`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`


## Method: releaseAllFromUser
- parameter: `userctx`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`


## Method: setCandidatePrototype
- parameter: `routine`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`
- parameter: `proto`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardPrototype`
- parameter: `guarantee`, type: `int`
- return type: `boolean`


