anchor.diff:  {$EXTERNALSYM InterlockedCompareExchange}
   {$ifend}
   
  +procedure FreeObject(AObject: TObject); {$IFDEF HAVE_INLINE} inline;{$ENDIF}
  +
   implementation
  +
  +procedure FreeObject(AObject: TObject);
  +begin
  +{$IFDEF AUTOREFCOUNT}
  +  AObject.DisposeOf;
  +{$ELSE}
  +  AObject.Free;
  +{$ENDIF}
  +end;
   
   procedure ReleaseAttachData(pvBlock:PBufferBlock); {$IFDEF HAVE_INLINE} inline;{$ENDIF} 
   begin
  
positive.code:       0: ;
        1: FreeMem(pvBlock.data);
        2: Dispose(pvBlock.data);
        3: TObject(pvBlock.data).Free;
      else
        Assert(False, Format('BufferBlock[%s] unkown data free type:%d', [pvBlock.owner.FName, pvBlock.data_free_type]));
      end;
  
negative.code: end;
  
  
  
  
  end.
  