package com.sleepycat.je.dbi; public class INList { private boolean updateMemoryUsage; INList( EnvironmentImpl envImpl){ updateMemoryUsage=true; } /** * Used only by tree verifier when validating INList. Must be called with * orig.majorLatch acquired. */ INList( INList orig, EnvironmentImpl envImpl) throws DatabaseException { updateMemoryUsage=false; } protected void hook346( IN in) throws DatabaseException { if (updateMemoryUsage) { envImpl.getMemoryBudget().updateTreeMemoryUsage(in.getAccumulatedDelta() - in.getInMemorySize()); in.setInListResident(false); } original(in); } /** * Clear the entire list during recovery and at shutdown. */ public void clear() throws DatabaseException { original(); if (updateMemoryUsage) { envImpl.getMemoryBudget().refreshTreeMemoryUsage(0); } } @MethodObject static class INList_addAndSetMemory { void execute(){ original(); if (_this.updateMemoryUsage) { mb=_this.envImpl.getMemoryBudget(); mb.updateTreeMemoryUsage(in.getInMemorySize()); in.setInListResident(true); } } } }