public override void Defragment(IDefragmentContext context) { var payLoadOffSet = context.ReadInt(); if (payLoadOffSet == 0) { return; } var savedOffSet = context.Offset(); context.Seek(payLoadOffSet); var classMetadataId = context.CopyIDReturnOriginalID(); var typeHandler = CorrectTypeHandlerVersionFor(context, classMetadataId ); if (typeHandler != null) { if (IsPlainObject(typeHandler)) { context.CopySlotlessID(); } else { SeekSecondaryOffset(context, typeHandler); context.Defragment(typeHandler); } } context.Seek(savedOffSet); }
public override void Defragment(IDefragmentContext context) { int payLoadOffSet = context.ReadInt(); if (payLoadOffSet == 0) { return; } int savedOffSet = context.Offset(); context.Seek(payLoadOffSet); int classMetadataId = context.CopyIDReturnOriginalID(); ITypeHandler4 typeHandler = CorrectTypeHandlerVersionFor(context, classMetadataId ); if (typeHandler != null) { if (IsPlainObject(typeHandler)) { context.CopySlotlessID(); } else { SeekSecondaryOffset(context, typeHandler); context.Defragment(typeHandler); } } context.Seek(savedOffSet); }