Fix HypergridLinker.Check4096()
Make the optimization with IEnumerable.Except() in Check4096 actually work by providing an appropriate equality definition for GridRegion objects.0.7-post-fixes
parent
880857d8ca
commit
fc3e7fe700
|
@ -97,7 +97,7 @@ namespace OpenSim.Services.Interfaces
|
||||||
int GetRegionFlags(UUID scopeID, UUID regionID);
|
int GetRegionFlags(UUID scopeID, UUID regionID);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class GridRegion
|
public class GridRegion : Object
|
||||||
{
|
{
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -225,6 +225,33 @@ namespace OpenSim.Services.Interfaces
|
||||||
EstateOwner = ConvertFrom.EstateOwner;
|
EstateOwner = ConvertFrom.EstateOwner;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# region Definition of equality
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Define equality as two regions having the same, non-zero UUID.
|
||||||
|
/// </summary>
|
||||||
|
public bool Equals(GridRegion region)
|
||||||
|
{
|
||||||
|
if ((object)region == null)
|
||||||
|
return false;
|
||||||
|
// Return true if the non-zero UUIDs are equal:
|
||||||
|
return (RegionID != UUID.Zero) && RegionID.Equals(region.RegionID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Equals(Object obj)
|
||||||
|
{
|
||||||
|
if (obj == null)
|
||||||
|
return false;
|
||||||
|
return Equals(obj as GridRegion);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int GetHashCode()
|
||||||
|
{
|
||||||
|
return RegionID.GetHashCode() ^ TerrainImage.GetHashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
/// <value>
|
/// <value>
|
||||||
/// This accessor can throw all the exceptions that Dns.GetHostAddresses can throw.
|
/// This accessor can throw all the exceptions that Dns.GetHostAddresses can throw.
|
||||||
///
|
///
|
||||||
|
|
Loading…
Reference in New Issue