anchor.diff:    {$ifNdef CPFLIB}
       FCallAddress := ReturnAddress;
     {$endif}
  +
  +  // tile weigths
  +  FWeights.Current.Release(FCallAddress);
  +  FWeights.Default.Release(FCallAddress);
   
     // internal buffers
     FStartPoints.Buffer.Free;
  
positive.code:   MemoryManager: {$if Defined(FPC) or (CompilerVersion < 18)}TMemoryManager{$else}TMemoryManagerEx{$ifend};
  {$endif}
  
  
  { ECrystalPathFinding }
  
  
negative.code:   {$endif}
  {$endif}
  end;
  
  procedure RaiseInvalidTile(const Tile, HighTile: TPathMapTile; const Address: Pointer);
  begin
    CPFExceptionFmt('Invalid tile %d, high tile is %d', [Tile, HighTile], Address);
  end;
  
  
  function CPFAlloc(const Size: NativeUInt; const Address: Pointer): Pointer;
  begin
  