예제 #1
0
 public virtual void Rollback(IFreespaceManager freespaceManager)
 {
     if (IsFreeOnRollback())
     {
         freespaceManager.Free(_newSlot);
     }
 }
 private void Apply(IList toFree)
 {
     for (IEnumerator slotIter = toFree.GetEnumerator(); slotIter.MoveNext();)
     {
         Slot slot = ((Slot)slotIter.Current);
         _freespaceManager.Free(slot);
     }
     toFree.Clear();
 }
예제 #3
0
 protected virtual void Free(IFreespaceManager freespaceManager, Slot slot)
 {
     if (slot.IsNull())
     {
         return;
     }
     if (freespaceManager == null)
     {
         return;
     }
     freespaceManager.Free(slot);
 }
 public virtual void Free(Slot slot)
 {
     if (slot.IsNull())
     {
         return;
     }
     // TODO: This should really be an IllegalArgumentException but old database files
     //       with index-based FreespaceManagers appear to deliver zeroed slots.
     // throw new IllegalArgumentException();
     if (_freespaceManager == null)
     {
         // Can happen on early free before freespacemanager
         // is up, during conversion.
         return;
     }
     if (DTrace.enabled)
     {
         DTrace.FileFree.LogLength(slot.Address(), slot.Length());
     }
     _freespaceManager.Free(slot);
 }
예제 #5
0
		protected virtual void Free(IFreespaceManager freespaceManager, Slot slot)
		{
			if (slot.IsNull())
			{
				return;
			}
			if (freespaceManager == null)
			{
				return;
			}
			freespaceManager.Free(slot);
		}
예제 #6
0
		public virtual void Rollback(IFreespaceManager freespaceManager)
		{
			if (IsFreeOnRollback())
			{
				freespaceManager.Free(_newSlot);
			}
		}
예제 #7
0
 public void Visit(object obj)
 {
     fm.Free((Slot)obj);
 }
 public virtual void Free(Slot slot)
 {
     _delegate.Free(_blockConverter.ToBlockedLength(slot));
 }